欢迎光临
我们一直在努力

黑马苍穹外卖笔记day9

用户端历史订单模块、商家端订单管理模块

用户端:

查询历史订单(分页查询):

Controller层:user/OrderController下的historyOrders()方法

Service层:OrderService的实现类OrderServiceImpl下的historyOrders()方法,先根据用户id查询订单数据,然后根据查到的订单id去订单明细表查询订单明细List<OrderDetail>,封装到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()方法,需要判断订单状态,只有"派送中"的订单才可以下一步完成订单,最后更新订单状态

校验收货地址是否超出配送范围

首先需要在百度地图开放平台获取到ak,ip白名单设为0.0.0.0/0

导入到application.yml中(详细信息在application_dev.yml中)

在OrderServiceImpl类中导入下面代码:

导入一个方法checkOutOfRange(),这里是直接复制粘贴的,并在submitOrder()方法中调用这个方法

赞(0)
未经允许不得转载:171主机测评 » 黑马苍穹外卖笔记day9
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址