一、Mybatis Plus条件构造器UpdateWrapper的应用:
/**
* 根据用户id修改订单相关状态值
* @param userId
* @return
*/
@PostMapping("/updateOrderStatusByUserId")
public AjaxResult updateOrderStatusByUserId(@RequestBody Long userId){
LambdaUpdateWrapper<UserOrder> uOrderUpdateWrapper = new LambdaUpdateWrapper<UserOrder>();
//PayStatus支付状态改为1(已支付); OrderStatus订单状态改为2(已完成):
uOrderUpdateWrapper.eq(UserOrder::getId, userId)
.set(UserOrder::getPayStatus, 1)
.set(UserOrder::getOrderStatus, 2);
//修改订单支付状态
boolean bStatus = userOrderService.update(uOrderUpdateWrapper);
return AjaxResult.success(bStatus);
}
二、使用Wrapper注解的方式自定义SQL语句:
A.Controller层:
/**
* 根据用户id统计其付款订单和未付款订单各自数量
* @param userId
* @return
*/
@PostMapping("/getOrderCountByUserId")
public AjaxResult getOrderCountByUserId(@RequestBody Long userId){
List<Map<String, Object>> userOrders = iUserOrderService.getOrderCountByUserId(userId);
return AjaxResult.success(userOrders);
}
B.Service层:
/**
* 根据用户id统计其付款订单和未付款订单各自数量
* @param userId
* @return
*/
List<Map<String, Object>> getOrderCountByUserId(@Param("buyer_id") Long userId);
C.Mapper层:
/**
* 根据用户id统计其付款订单和未付款订单各自数量
* @param userId
* @return
*/
@Select("select pay_status, count(*) as count from user_order group by pay_status")
List<Map<String, Object>> getOrderCountByUserId(@Param("buyer_id") Long userId);