|
@@ -18,6 +18,7 @@ import com.qs.mp.user.domain.UserDeliverOrder;
|
|
|
import com.qs.mp.user.domain.UserDeliverOrderItem;
|
|
|
import com.qs.mp.user.domain.UserPrizeStorage;
|
|
|
import com.qs.mp.user.domain.UserTicketOrder;
|
|
|
+import com.qs.mp.user.domain.param.UserDeliverOrderCancelParam;
|
|
|
import com.qs.mp.user.domain.vo.DeliverOrderSettleVO;
|
|
|
import com.qs.mp.user.domain.vo.UserDeliverOrderVO;
|
|
|
import com.qs.mp.user.mapper.UserDeliverOrderMapper;
|
|
@@ -119,27 +120,32 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional
|
|
|
- public boolean cancelOrder(String orderId) {
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean cancelOrder(UserDeliverOrderCancelParam param) {
|
|
|
+ String orderId = param.getOrderId();
|
|
|
UserDeliverOrder userDeliverOrder = getById(orderId);
|
|
|
if (userDeliverOrder.getStatus() != DeliverOrderStatusEnum.NOT_PAY) {
|
|
|
LogUtil.warn(logger, "取消提货订单时,订单状态不是待支付,忽略。orderId:{0}, status:{1}",
|
|
|
orderId, userDeliverOrder.getStatus());
|
|
|
return false;
|
|
|
}
|
|
|
- // 恢复奖品库状态
|
|
|
- List<UserDeliverOrderItem> orderItemList = userDeliverOrderItemService.list(new LambdaQueryWrapper<UserDeliverOrderItem>()
|
|
|
- .eq(UserDeliverOrderItem::getOrderId, userDeliverOrder.getOrderId()));
|
|
|
- for (UserDeliverOrderItem orderItem : orderItemList) {
|
|
|
- boolean rtn = userPrizeStorageService.update(new LambdaUpdateWrapper<UserPrizeStorage>()
|
|
|
- .set(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED)
|
|
|
- .eq(UserPrizeStorage::getStorageId, orderItem.getStorageId())
|
|
|
- .eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.HAS_DISTRIBUTED));
|
|
|
- Assert.isTrue(rtn, "取消提货订单时,更新奖品库里奖品状态失败。orderItem:" + JSONObject.toJSONString(orderItem));
|
|
|
+ if (!DeliverOrderResourceEnum.PAYMENT.equals(param.getResource())) {
|
|
|
+ // 恢复奖品库状态
|
|
|
+ List<UserDeliverOrderItem> orderItemList = userDeliverOrderItemService.list(new LambdaQueryWrapper<UserDeliverOrderItem>()
|
|
|
+ .eq(UserDeliverOrderItem::getOrderId, userDeliverOrder.getOrderId()));
|
|
|
+ for (UserDeliverOrderItem orderItem : orderItemList) {
|
|
|
+ boolean rtn = userPrizeStorageService.update(new LambdaUpdateWrapper<UserPrizeStorage>()
|
|
|
+ .set(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.NOT_DISTRIBUTED)
|
|
|
+ .eq(UserPrizeStorage::getStorageId, orderItem.getStorageId())
|
|
|
+ .eq(UserPrizeStorage::getStatus, PrizeStorageStatusEnum.HAS_DISTRIBUTED));
|
|
|
+ Assert.isTrue(rtn, "取消提货订单时,更新奖品库里奖品状态失败。orderItem:" + JSONObject.toJSONString(orderItem));
|
|
|
+ }
|
|
|
}
|
|
|
userDeliverOrder.setStatus(DeliverOrderStatusEnum.CANCELED);
|
|
|
boolean updateRst = updateById(userDeliverOrder);
|
|
|
Assert.isTrue(updateRst, "取消提货订单时,更新提货订单状态失败。userDeliverOrder:" + JSONObject.toJSONString(userDeliverOrder));
|
|
|
+
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|