Java应用开发(中、高级)课件 任务3.4 实现菜品购买及支付流程模块_第1页
Java应用开发(中、高级)课件 任务3.4 实现菜品购买及支付流程模块_第2页
Java应用开发(中、高级)课件 任务3.4 实现菜品购买及支付流程模块_第3页
Java应用开发(中、高级)课件 任务3.4 实现菜品购买及支付流程模块_第4页
Java应用开发(中、高级)课件 任务3.4 实现菜品购买及支付流程模块_第5页
已阅读5页,还剩23页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论