SpringBoot+SSM项目实战 苍穹外卖(09) day9作业

您所在的位置:网站首页 外卖店配送范围是多少公里 SpringBoot+SSM项目实战 苍穹外卖(09) day9作业

SpringBoot+SSM项目实战 苍穹外卖(09) day9作业

2024-07-13 03:29| 来源: 网络整理| 查看: 265

继续上一节的内容,本节是作业课,要求独立完成:用户端历史订单模块、商家端订单管理模块相关业务新功能开发和已有功能优化。

目录 作业要求 用户端历史订单模块 查询历史订单 查询订单详情 取消订单 再来一单 商家端订单管理模块 订单搜索 各个状态的订单数量统计 查询订单详情 接单 拒单 取消订单 派送订单 完成订单 校验收货地址是否超出配送范围 基于百度地图开放平台实现

作业要求

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 desc

OrderDetailMapper

/** * 根据订单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