SpringBoot+SSM项目实战 苍穹外卖(09) day9作业 |
您所在的位置:网站首页 › 外卖店配送范围是多少公里 › SpringBoot+SSM项目实战 苍穹外卖(09) day9作业 |
继续上一节的内容,本节是作业课,要求独立完成:用户端历史订单模块、商家端订单管理模块相关业务新功能开发和已有功能优化。 目录 作业要求 用户端历史订单模块 查询历史订单 查询订单详情 取消订单 再来一单 商家端订单管理模块 订单搜索 各个状态的订单数量统计 查询订单详情 接单 拒单 取消订单 派送订单 完成订单 校验收货地址是否超出配送范围 基于百度地图开放平台实现 作业要求1.用户端历史订单模块: 查询历史订单 查询订单详情 取消订单 再来一单商家端订单管理模块: 订单搜索 各个状态的订单数量统计 查询订单详情 接单 拒单 取消订单 派送订单 完成订单
2.已有功能优化 优化用户下单功能,加入校验逻辑,如果用户的收货地址距离商家门店超出配送范围(配送范围为5公里内),则下单失败。 提示: 1. 基于百度地图开放平台实现 2. 注册账号—>创建应用获取AK(服务端应用)—>调用接口 3.相关接口1,相关接口2 4.商家门店地址可以配置在配置文件中,例如: sky: shop: address: 北京市海淀区上地十街10号
实战要求: 根据产品原型进行需求分析和接口设计 根据接口设计进行代码实现 分别通过swagger接口文档和前后端联调进行功能测试
用户端历史订单模块 查询历史订单 user/OrderController /** * 查询历史订单 * * @param page * @param pageSize * @param status 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 * @return */ @GetMapping("/historyOrders") @ApiOperation("用户查询历史订单") public Result page(int page, int pageSize, Integer status) { // status可缺省 使用包装类 log.info("用户历史订单分页查询,page:{},pageSize:{},status:{}", page, pageSize, status); PageResult pageResult = orderService.pageQuery(page, pageSize, status); return Result.success(pageResult); }OrderServiceImpl /** * 查询历史订单 * * @param page * @param pageSize * @param status 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 * @return */ public PageResult pageQuery(int page, int pageSize, Integer status) { PageHelper.startPage(page,pageSize); Long userId = BaseContext.getCurrentId(); OrdersPageQueryDTO ordersPageQueryDTO = new OrdersPageQueryDTO(); ordersPageQueryDTO.setStatus(status); ordersPageQueryDTO.setUserId(userId); Page pageResult = orderMapper.pagerQuery(ordersPageQueryDTO); // 查找出所有的order之后 还需要根据order的id去order_detail表中查找出相应的订单菜品 List records = new ArrayList(); if(pageResult!=null && pageResult.size()>0){ for (Orders order : pageResult) { Long orderId = order.getId(); // 查询订单明细 List orderDetailList = orderDetailMapper.getByOrderId(orderId); OrderVO orderVO = new OrderVO(); BeanUtils.copyProperties(order,orderVO); orderVO.setOrderDetailList(orderDetailList); records.add(orderVO); } } return new PageResult(pageResult.getTotal(),records); }OrderMapper /** * 分页条件查询并按下单时间排序 * @param ordersPageQueryDTO */ Page pageQuery(OrdersPageQueryDTO ordersPageQueryDTO);OrderMapper.xml select * from orders and number like concat('%',#{number},'%') and phone like concat('%',#{phone},'%') and user_id = #{userId} and status = #{status} and order_time ;= #{beginTime} and order_time ;= #{endTime} order by order_time descOrderDetailMapper /** * 根据订单id查询订单明细 * @param orderId * @return */ @Select("select * from order_detail where order_id = #{orderId}") List getByOrderId(Long orderId);测试: 查询订单详情 user/OrderController /** * 查询订单详情 * * @param id 订单id * @return */ @GetMapping("/orderDetail/{id}") @ApiOperation("用户查询订单详情") public Result details(@PathVariable Long id) { log.info("用户查询订单详情,订单id:{}", id); OrderVO orderVO = orderService.details(id); return Result.success(orderVO); }OrderServiceImpl /** * 查询订单详情 * * @param id 订单id * @return */ public OrderVO details(Long id) { Orders orders = orderMapper.getById(id); // 根据订单id查询订单 OrderVO orderVO = new OrderVO(); BeanUtils.copyProperties(orders,orderVO); // 查询该订单对应的菜品/套餐明细 List orderDetailList = orderDetailMapper.getByOrderId(id); orderVO.setOrderDetailList(orderDetailList); return orderVO; } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |