版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务4.实现菜品购买及支付流程模块任务描述本任务将实现菜品购买及支付流程模块,功能流程为:服务员主页显示所有菜品,将菜品加入到点餐车中,完成点餐流程。知识准备1.国内支付宝支付流程如下:
注意:本系统仅实现本地支付流程,并没有调用第三方支付平台接口,上面支付流程图仅供学习参考。任务实施步骤1:实现参评购买及支付流程模块后台(1)在“com.chinasofti.ordersys.model”包中,新建OrderInfo类,用于实现订单信息模型对象。此处代码省略,请参考案例代码。(2)在“com.chinasofti.ordersys.model”包中,新建OrderVO类,用于实现订单信息视图对象。此处代码省略,请参考案例代码。(3)在“com.chinasofti.ordersys.model”包中,新建OrderDishesInfo类,用于实现订单菜品明细信息模型对象。此处代码省略,请参考案例代码。(4)在“com.chinasofti.ordersys.model”包中,新建OrderDishesVO类,用于实现订单单菜品明细信息视图对象。此处代码省略,请参考案例代码。(5)在“com.chinasofti.ordersys.model”包中,新建OrderDishes类,用于实现订单对象与订单单菜品明细关联对象。此处代码省略,请参考案例代码。(6)在“com.chinasofti.ordersys.api.waiter”包中,新建WaiterDishesController类,用于实现菜品购买及支付流程模块接口。Ø代码如下:packagecom.chinasofti.ordersys.api.waiter;
importmon.result.PageResults;importmon.security.LoginUser;importmon.security.service.TokenService;importcom.chinasofti.ordersys.model.DishesInfo;importcom.chinasofti.ordersys.model.UserInfo;importcom.chinasofti.ordersys.service.admin.DishesService;importcom.chinasofti.ordersys.service.waiter.OrderService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.web.bind.annotation.*;
importjavax.servlet.http.HttpServletRequest;importjava.util.List;/***@authorandyzheng*@title:WaiterDishesController*@projectNameordersys*@description:TODO*@date2021/4/1202:01*///@CrossOrigin("*")@RestController//@PreAuthorize("hasRole('3')")@RequestMapping("/waiter/dishes")publicclassWaiterDishesController{@AutowiredDishesServiceservice;
@AutowiredOrderServiceorderService;@AutowiredTokenServicetokenService;
@GetMapping("/getdishesbypage")publicPageResults<DishesInfo>list(Integerpage){//获取最大页码数intmaxPage=service.getMaxPage(8);//对当前的页码数进行纠错,如果小于1,则直接显示第一页的内容page=page<1?1:page;//对当前的页码数进行纠错,如果大于最大页码,则直接显示最后一页的内容page=page>maxPage?maxPage:page;//进行分页数据查询List<DishesInfo>list=service.getDishesInfoByPage(page,8);//尝试将结果结构化returnPageResults.success(list,page,maxPage);}@GetMapping("/getOrderList")publicPageResults<?>getOrderList(HttpServletRequestrequest){LoginUserloginUser=tokenService.getLoginUser(request);if(loginUser==null){returnPageResults.failure();}UserInfouser=loginUser.getUser();IntegerwaiterId=user.getUserId();returnPageResults.success(orderService.findOrderByWaiter(waiterId));}}(7)在“com.chinasofti.ordersys.api.waiter”包中,新建OrderService类,用于实现菜品购买及支付流程模块服务。/***Copyright2015ChinaSoftInternationalLtd.Allrightsreserved.*/packagecom.chinasofti.ordersys.service.waiter;
importcom.chinasofti.ordersys.mapper.OrderDishesMapper;importcom.chinasofti.ordersys.mapper.OrderMapper;importcom.chinasofti.ordersys.model.*;importmons.lang3.math.NumberUtils;importorg.springframework.beans.BeanUtils;importorg.springframework.stereotype.Service;
importjava.util.ArrayList;importjava.util.Date;importjava.util.List;
Ø代码如下:/***<p>*Title:DishesService*</p>*<p>*Description:菜品管理服务对象*</p>*<p>*Copyright:Copyright(c)2015*</p>*<p>*Company:ChinaSoftInternationalLtd.*</p>**@authoretc*@version1.0*/@ServicepublicclassOrderService{// @Autowired OrderMappermapper;
OrderDishesMapperorderDishesMapper;
publicOrderService(OrderMappermapper,OrderDishesMapperorderDishesMapper){ this.mapper=mapper; this.orderDishesMapper=orderDishesMapper; } /** * *@paramwaiterId *@return */ publicList<OrderVO>findOrderByWaiter(IntegerwaiterId){ List<OrderVO>resultList=newArrayList<>(); List<OrderDishesInfo>list=mapper.findOrderByWaiter(waiterId); if(list==null||list.size()==0){ returnresultList; } OrderVOorder=newOrderVO(); List<OrderDishesVO>orderDishesVOList=null; for(inti=0;i<list.size();i++){ OrderDishesInfoitem=list.get(i); OrderDishesVOorderDishes=newOrderDishesVO(); BeanUtils.copyProperties(item,orderDishes); if(item.getOrderId()==null|| order.getOrderId()==null|| NumberUpare(item.getOrderId(),order.getOrderId())!=0){ if(i!=0){ resultList.add(order); } order=newOrderVO(); BeanUtils.copyProperties(item,order); orderDishesVOList=newArrayList<>(); } orderDishesVOList.add(orderDishes); order.setOrderDishes(orderDishesVOList); } returnresultList; } publicOrderInfosaveOrder(intuserId){ intORDER_STATE=0; OrderInfoorderInfo=newOrderInfo(); orderInfo.setWaiterId(userId); orderInfo.setOrderBeginDate(newDate()); orderInfo.setOrderState(ORDER_STATE); orderInfo.setTableId(0); mapper.saveOrderInfo(orderInfo); returnorderInfo; }
publicvoidupdateState(intstate,intorderId){ mapper.updateOrderState(state,orderId); }
publicvoidsaveOrderDishes(intorderId,List<OrderDishesVO>orderDishes){ if(orderDishes!=null&&!orderDishes.isEmpty()){ OrderDishesorderDish=null; for(OrderDishesVOvo:orderDishes){ orderDish=newOrderDishes(); orderDish.setNum(vo.getNum()); orderDish.setOrderReference(orderId); orderDish.setDishes(vo.getDishesId()); orderDishesMapper.saveOrderDishes(orderDish); } } }}(8)在“com.chinasofti.ordersys.mapper”包中,新建OrderMapper类,用于实现订单模块持久层。Ø代码如下:packagecom.chinasofti.ordersys.mapper;
importcom.chinasofti.ordersys.model.OrderDishesInfo;importcom.chinasofti.ordersys.model.OrderInfo;importorg.apache.ibatis.annotations.*;
importjava.util.List;@MapperpublicinterfaceOrderMapper{ @Select("selecto.orderId,o.orderBeginDate,o.orderState,d.dishesId,d.dishesName,o2.num,d.dishesPrice"+ "fromorderdisheso2"+ "leftjoinorderinfooono.orderId=o2.orderReference"+ "leftjoindishesinfodond.dishesId=o2.dishes"+ "wherenotisnull(o.orderId)"+ "ando.waiterId=#{waiterId}"+ "orderbyo.orderBeginDatedesc" ) publicList<OrderDishesInfo>findOrderByWaiter(@Param("waiterId")IntegerwaiterId);
@Insert("insertintoorderinfo(orderBeginDate,orderEndDate,waiterId,orderState,tableId)"+ "values(#{info.orderBeginDate},#{info.orderEndDate},#{info.waiterId},#{info.orderState},#{info.tableId})") @Options(useGeneratedKeys=true,keyProperty="info.orderId") publicIntegersaveOrderInfo(@Param("info")OrderInfoorderInfo); @Update("updateorderinfosetorderState=#{orderState}whereorderId=#{orderId}") publicIntegerupdateOrderState(@Param("orderState")Integerstate,@Param("orderId")IntegerorderId);}(9)在“com.chinasofti.ordersys.mapper”包中,新建OrderDishesMapper类,用于实现订单与订单菜品关联持久层。Ø代码如下:packagecom.chinasofti.ordersys.mapper;
importcom.chinasofti.ordersys.model.OrderDishes;importcom.chinasofti.ordersys.model.OrderDishesInfo;importorg.apache.ibatis.annotations.*;
importjava.util.List;
@MapperpublicinterfaceOrderDishesMapper{
@Insert("insertintoorderdishes(orderReference,dishes,num)"+"values(#{info.orderReference},#{info.dishes},#{info.num})" ) @Options(useGeneratedKeys=true,keyProperty="info.odid") publicIntegersaveOrderDishes(@Param("info")OrderDishesorderDishes);}步骤2:实现点餐主页(1)在“src\api”包中,新建waiter-api.js,用于实现点餐模块API接口。(2)在“src\views\shop\”包中,新建shop.vue,用于实现点餐主页。(3)把上述views的视图组件配置到路由src\router\index.js。注意:上述代码请参考提供的项目order-sys-front,此处省略。步骤3:实现订单管理模块前端(1)在“src\views\order\”包中,新建order.vue,用于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 废片白银回收工安全文明竞赛考核试卷含答案
- 刨花板调施胶工变革管理强化考核试卷含答案
- 尿素脱蜡装置操作工操作规程评优考核试卷含答案
- 化学农药生产工安全生产意识测试考核试卷含答案
- 产后母婴常见问题及应对策略
- 2026年业主看物业合同(1篇)
- 2026年软考《信息系统监理师》考试试题及答案
- 水污染防治工作总结
- 仓库项目安全生产标准化建设方案
- 职业卫生评价合同
- 2026届广东省汕头市重点中学中考历史模拟试题含解析
- 2026中国电气装备储能科技有限公司社会招聘笔试历年参考题库附带答案详解
- JJF 2381-2026钢直尺检定仪校准规范
- 2026年德州市德城区公开招聘城市社区专职工作者(100人)笔试备考题库及答案解析
- 2026届山东省济南市高三二模语文试题(含答案)
- 织颜窗帘重塑织颜4P盈利模型
- 2026年度“市委书记进校园”佳木斯市急需紧缺专业技术人才引进286人(哈尔滨师范大学专场)笔试参考试题及答案解析
- 2025年西安交通大学辅导员招聘笔试真题附答案
- Module5Unit2Getoffthesofa课件-外研版九年级英语下册
- 2026新版人教版小学数学3三年级下册(全册)教案设计
- 特应性皮炎外用治疗与管理专家共识(2025版)
评论
0/150
提交评论