开始

service层

image.png

image.png

  1. /**
  2. * 查询用户订单数
  3. * @param userId
  4. */
  5. public void getOrderStatusCounts(String userId);

这里是有不同的四种状态去查询的
image.png

修正上节课的两个地方

修改两个地址就是mybatis定义的方法名字修改,方法的名字改成:getMyOrderStatusCounts
image.png
mabits的接口类同样的修改。
image.png

继续

实现类里面,MyOrdersServiceImpl
image.png

 @Override
    public void getOrderStatusCounts(String userId) {
        Map<String,Object> map=new HashMap<>();
        map.put("userId",userId);
        map.put("orderStatus",OrderStatusEnum.WAIT_PAY);
        int waitPayCounts = ordersMapperCustom.getMyOrderStatusCounts(map);

        map.put("orderStatus",OrderStatusEnum.WAIT_DELIVER);
        int waitDeliverCounts = ordersMapperCustom.getMyOrderStatusCounts(map);

        map.put("orderStatus",OrderStatusEnum.WAIT_RECEIVE);
        map.put("isComment",YesOrNo.NO.type);
        int waitReceive = ordersMapperCustom.getMyOrderStatusCounts(map);


    }

返回的vo

image.png

对应四个不同的状态
image.png
自己生成getter和setter

public class OrderStatusCountsVO {
    private Integer waitPayCounts;
    private Integer waitDeliverCounts;
    private Integer waitReceiveCounts;
    private Integer waitCommentCounts;
}

生成构造函数。

 public OrderStatusCountsVO(Integer waitPayCounts, Integer waitDeliverCounts, Integer waitReceiveCounts, Integer waitCommentCounts) {
        this.waitPayCounts = waitPayCounts;
        this.waitDeliverCounts = waitDeliverCounts;
        this.waitReceiveCounts = waitReceiveCounts;
        this.waitCommentCounts = waitCommentCounts;
    }

new出来对象,使用构造函数
image.png

image.png
修改方法的返回类型
image.png

@Override
    public OrderStatusCountsVO getOrderStatusCounts(String userId) {
        Map<String,Object> map=new HashMap<>();
        map.put("userId",userId);
        map.put("orderStatus",OrderStatusEnum.WAIT_PAY.type);
        int waitPayCounts = ordersMapperCustom.getMyOrderStatusCounts(map);

        map.put("orderStatus",OrderStatusEnum.WAIT_DELIVER.type);
        int waitDeliverCounts = ordersMapperCustom.getMyOrderStatusCounts(map);

        map.put("orderStatus",OrderStatusEnum.WAIT_RECEIVE.type);
        int waitReceive = ordersMapperCustom.getMyOrderStatusCounts(map);

        map.put("orderStatus",OrderStatusEnum.SUCCESS.type);
        map.put("isComment",YesOrNo.NO.type);
        int waitCommentCounts = ordersMapperCustom.getMyOrderStatusCounts(map);
        OrderStatusCountsVO countsVO = new OrderStatusCountsVO(
               waitPayCounts,
               waitDeliverCounts,
               waitReceive,
               waitCommentCounts
        );
        return countsVO;
    }

接口内也修改
image.png

 /**
     * 查询用户订单数
     * @param userId
     */
    public OrderStatusCountsVO getOrderStatusCounts(String userId);

controller

前端
image.png
image.png

后端

image.png

@ApiOperation(value = "获得订单状态数概况",notes = "获得订单状态数概况",httpMethod ="POST" )
    @PostMapping("/statusCounts")
    public IMOOCJSONResult statusCounts(
            @ApiParam(name = "userId",value = "订单id",required = true)
            @RequestParam("userId") String userId
    ) throws Exception{
       if(StringUtils.isBlank(userId)) {
           return IMOOCJSONResult.errorMsg(null);
       }

        OrderStatusCountsVO result = myOrderService.getOrderStatusCounts(userId);

        return IMOOCJSONResult.ok(result);
    }

测试

maven install 然后重启服务

image.png

订单状态表,找一条数据
image.png
把状态改成30
image.png
image.png

点击确认收货
image.png

image.png
找到待评价,去评价这条数据
image.png

image.png

评论后,待评价变成0了
image.png

结束