开始
service层
/**
* 查询用户订单数
* @param userId
*/
public void getOrderStatusCounts(String userId);
修正上节课的两个地方
修改两个地址就是mybatis定义的方法名字修改,方法的名字改成:getMyOrderStatusCounts
mabits的接口类同样的修改。
继续
实现类里面,MyOrdersServiceImpl
@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
对应四个不同的状态
自己生成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出来对象,使用构造函数
修改方法的返回类型
@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;
}
接口内也修改
/**
* 查询用户订单数
* @param userId
*/
public OrderStatusCountsVO getOrderStatusCounts(String userId);
controller
前端
后端
@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 然后重启服务
订单状态表,找一条数据
把状态改成30
点击确认收货
找到待评价,去评价这条数据
评论后,待评价变成0了