ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

黑马苍穹外卖笔记day9

黑马苍穹外卖笔记day9 用户端历史订单模块、商家端订单管理模块用户端查询历史订单(分页查询)Controller层user/OrderController下的historyOrders()方法Service层OrderService的实现类OrderServiceImpl下的historyOrders()方法先根据用户id查询订单数据然后根据查到的订单id去订单明细表查询订单明细ListOrderDetail封装到VO中并返回Mapper层OrderMapper和OrderDetailMapper接口分别实现分页查询和根据订单id查询订单明细查询订单详情Controller层user/OrderController下的orderDetail()方法Service层OrderService的实现类OrderServiceImpl下的orderDetail()方法首先要根据订单id查询订单然后根据订单id查询订单明细并将这两个封装到一个VO中并返回Mapper层OrderMapper接口下的getById()方法根据订单id查询订单取消订单Controller层user/OrderController下的cancel()方法Service层OrderService的实现类OrderServiceImpl下的cancel()方法首先要根据id查询订单如果订单不存在则抛出异常之后要判断订单的状态如果不是待付款或待接单状态则无法取消抛出异常。随后进行取消如果处于待接单状态下则进行退款并更新订单状态为已取消再来一单Controller层user/OrderController下的repetition()方法Service层OrderService的实现类OrderServiceImpl下的repetition()方法再来一单也就是将订单里的东西再次加入购物车具体实现为先根据id查询到订单详情再将订单详情的属性复制给购物车对象并进行批量添加购物车Mapper层ShoppingCartMapper实现了批量插入功能insertBatch()商家端订单搜索Controller层admin/OrderController类下的conditionSearch()方法Service层OrderService的实现类OrderServiceImpl下的repetition()方法首先要分页查询到订单数据然后调用getOrderVOList()方法将Orders的page转换为OrderVO的list并加入到PageResult中返回。getOrderVOList()根据page中的Order信息查询到订单详细数据并调用ConvertString()方法将详细数据转换为字符串并加入到OrderVO中各个状态的订单数量统计Controller层admin/OrderController类下的statistics()方法Service层OrderService的实现类OrderServiceImpl下的statistics()方法分别调用orderMapper接口查询待接单、已接单和派送中订单数量并封装到OrderStatisticsVO中返回Mapper层OrderMapper接口下的countByStatus()方法其中Mysql使用count(*)语句来查询数量查询订单详情Controller层admin/OrderController类下的orderDetail()方法Service层调用之前写好的orderDetail()方法返回一个OrderVO接单接单就是将一个订单的状态设置为已接单Controller层admin/OrderController类下的confirmOrder()方法Service层OrderService的实现类OrderServiceImpl下的confirmOrder()方法使用订单id和订单状态new一个Order对象用这个对象去调用orderMapper接口的update()方法达成改变订单状态的效果拒单Controller层admin/OrderController类下的rejectionOrder()方法Service层OrderService的实现类OrderServiceImpl下的rejectionOrder()方法首先根据传入DTO的id来找到对应的订单然后需要判断订单状态只有待接单的订单才能被拒绝然后要判断订单是否已支付如果订单已付款需要调用微信支付退款接口来进行退款(已跳过),并更新订单(订单状态付款状态取消原因取消时间)取消订单Controller层admin/OrderController类下的cancelOrder()方法Service层OrderService的实现类OrderServiceImpl下的cancelOrder()方法跟拒绝订单的区别就是不用判断订单状态但是需要判断付款状态如果已付款则调用微信退款接口进行退款最后更新订单状态派送订单将状态为已接单的订单状态改为派送中Controller层admin/OrderController类下的deliveryOrder()方法Service层OrderService的实现类OrderServiceImpl下的deliveryOrder()方法需要判断订单状态只有已接单的订单才可以下一步派送最后更新订单状态完成订单将状态为派送中的订单状态修改为已完成Controller层admin/OrderController类下的completeOrder()方法Service层OrderService的实现类OrderServiceImpl下的completeOrder()方法需要判断订单状态只有派送中的订单才可以下一步完成订单最后更新订单状态校验收货地址是否超出配送范围首先需要在百度地图开放平台获取到akip白名单设为0.0.0.0/0导入到application.yml中详细信息在application_dev.yml中在OrderServiceImpl类中导入下面代码导入一个方法checkOutOfRange()这里是直接复制粘贴的并在submitOrder()方法中调用这个方法
返回列表