xml
<insert id="addDish"> insert into dish(name,price) values(#{name},#{price}) </insert>
菜品添加的逻辑就是每次添加完菜品到Dish表后,刷新页面,调用isLogin方法判断是否延续登录状态,然后isLogin方法重新获取后台的菜单列表,然后进行展示
菜品删除功能
前端
<td> <v-btn color="primary" v-on:click="del(dish.id)">删除</v-btn> </td> //删除菜品 del(did) { if (confirm("确认删除?")) { jQuery.getJSON("/dish/del", {"id": did}, function (result) { if (result != null && result.data != null && result.data > 0) { //删除成功 alert("删除成功"); //刷新当前界面 location.href = location.href; } else { alert("抱歉,操作失败,请重试"); } }); } },
controller
//管理员删除订单的后台方法 @RequestMapping("/del") public ResponseBody<Integer> deleteDish(int id) { int data = dishMapper.del(id); return new ResponseBody<>(0, "", data); }
mapper
public int del(int id);
xml
<delete id="del"> delete from dish where id=#{id} </delete>
菜品删除的逻辑就是每次删除菜品后,刷新页面,调用isLogin方法判断是否延续登录状态,然后isLogin方法重新获取后台的菜单列表,然后进行展示
获取订单列表功能
前端
查看所有订单
<v-list-item link v-on:click="showOrder"> <v-list-item-action> <v-icon>mdi-cart-outline</v-icon> </v-list-item-action> <v-list-item-content> <v-list-item-title>查看订单</v-list-item-title> </v-list-item-content> </v-list-item> //查看所有人的订单 showOrder() { jQuery.getJSON("/order/alllist", {}, function (result) { if (result != null && result.data != null) { app.orders = result.data; // 显示订单列表窗体 app.status = 'ordersPage'; } }); }, <!-- 订单列表 --> <v-simple-table v-show="status == 'ordersPage' && login.isLogin"> <template v-slot:default> <thead> <tr> <th class="text-left">序号</th> <th class="text-left">用户</th> <th class="text-left">状态</th> <th class="text-left">时间</th> <th class="text-left">详情</th> </tr> </thead> <tbody> <tr v-for="order in orders"> <td>{{order.id}}</td> <td>{{order.uname}}</td> <td> <v-switch v-model="order.status" v-on:click="update(order.id,order.status)"></v-switch> </td> <td>{{order.createtime}}</td> <td> <v-btn color='primary' v-on:click="detail(order.id)">查看详情</v-btn> </td> </tr> </tbody> </template> </v-simple-table>
修改订单状态
//管理员修改状态 update(oid, status) { //因为选中的这个状态在前端我们显示选中为true,不选中为false,所以此处需要用三元符进行一个选择 status = status ? 1 : 0; jQuery.getJSON("/order/update", {"oid": oid, "status": status}, function (result) { if (result != null && result.data != null && result.data > 0) { alert("恭喜,状态修改成功"); } else { alert("修改失败,请重试"); } }); },
查看某个订单详情
//查看某个订单详情 detail(oid) { jQuery.getJSON("/detail/list", {"oid": oid}, function (result) { if (result != null && result.data != null) { app.curOrder = result.data; //显示订单详情页面 app.showCurOrder = true; } }); }, <!--订单详情窗口--> <v-row justify="center"> <v-dialog v-model="showCurOrder" persistent max-width="600px"> <v-simple-table> <template v-slot:default> <thead> <tr> <th class="text-left">菜品</th> <th class="text-left">价格</th> </tr> </thead> <tbody> <tr v-for="dish in curOrder"> <td>{{dish.dish.name}}</td> <td>{{dish.dish.price}}</td> </tr> <tr> <td>总金额: {{totalPrice()}}</td> <td> <v-btn color="primary" v-on:click="showCurOrder=false">关闭</v-btn> </td> </tr> </tbody> </template> </v-simple-table> </v-dialog> </v-row> //计算某个订单详情的总价 totalPrice() { let money = 0; app.curOrder.forEach(item => { money += item.dish.price; }); return money; },
controller
查看所有订单
//管理员查看所有人列表信息 @RequestMapping("/alllist") public ResponseBody<List<OrderInfo>> getAllList(HttpServletRequest request) { List<OrderInfo> orderinfo = null; orderinfo = orderInfoMapper.getAllList(); return new ResponseBody<>(0, "", orderinfo); }
修改订单状态
//管理员修改用户订单的状态 @RequestMapping("/update") public ResponseBody<Integer> updateStautus(int oid,int status) { int data = orderInfoMapper.update(oid,status); return new ResponseBody<>(0, "", data); }
查看某个订单详情
@RequestMapping("/list") public ResponseBody<List<OrderDetail>> getList(int oid){ List<OrderDetail> list = orderDetailMapper.getList(oid); return new ResponseBody<>(0,"",list); }
mapper
查看所有订单
//获取所有人的订单列表 public List<OrderInfo> getAllList();
修改订单状态
//修改订单的状态 public int update(int oid,int status);
查看某个订单详情
public List<OrderDetail> getList(int oid);
xml
查看所有订单
<select id="getAllList" resultType="com.example.ordersys.model.OrderInfo"> select o.*,u.username uname from orderinfo o left join userinfo u on o.uid=u.id order by o.id desc </select>
注意这里我们依旧使用到了联表查询,左连接
修改订单状态
<update id="update"> update orderinfo set status=#{status} where id=#{oid} </update>
查看某个订单详情
<resultMap id="BaseResultMap" type="com.example.ordersys.model.OrderDetail"> <result property="did" column="did"></result> <result property="oid" column="oid"></result> <association property="dish" columnPrefix="d_" resultMap="com.example.ordersys.mapper.DishMapper.BaseResultMap"> </association> </resultMap> <select id="getList" resultMap="BaseResultMap"> select o.*,d.name d_name,d.price d_price from orderdetail o left join dish d on o.did=d.id where o.oid=#{oid} </select>
这块的代码逻辑跟之前用户查看订单详情功能一样
退出登录功能
前端
<v-list-item link v-on:click="logout"> <v-list-item-action> <v-icon>mdi-logout</v-icon> </v-list-item-action> <v-list-item-content> <v-list-item-title>退出登录</v-list-item-title> </v-list-item-content> </v-list-item> logout() { if (confirm("是否确认退出?")) { jQuery.getJSON("/user/logout", {}, function (result) { if (result != null && result.data != null && result.data > 0) { //退出成功 alert("退出成功"); //刷新当前页面 location.href = location.href; } else { alert("抱歉,操作失败,请重试"); } }); } },
controller
/** * 退出登录 * @param request * @return */ @RequestMapping("/logout") public ResponseBody<Integer> logOut(HttpServletRequest request) { int data = 0; HttpSession session = request.getSession(false); if (session != null && session.getAttribute(AppFinal.USERINFO_SESSION_KEY) != null) { session.removeAttribute(AppFinal.USERINFO_SESSION_KEY); data = 1; } session.removeAttribute(AppFinal.USERINFO_SESSION_KEY); return new ResponseBody<>(0, "", data); }