cup 3 years ago
parent
commit
4a7d7165bf

+ 3 - 36
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/UserDeliverOrderMgrController.java

@@ -190,45 +190,12 @@ public class UserDeliverOrderMgrController extends BaseApiController {
 		if (null == deliveryType) {
 			return error("物流类型参数为空");
 		}
-		for (String itemId : shipParam.getItemIds()) {
 
-			if (DeliverTypeEnum.NO_DELIVER.getValue().equals(deliveryType)) {
-				// 无需物流,设置物流信息为空
-				userDeliverOrderItemService.update(new LambdaUpdateWrapper<UserDeliverOrderItem>()
-						.set(UserDeliverOrderItem::getDeliveryId, null)
-						.set(UserDeliverOrderItem::getDeliveryFlowId, null)
-						.eq(UserDeliverOrderItem::getItemId, itemId));
-				// 查询判断是否所有都是无需物流
-				LambdaQueryWrapper<UserDeliverOrderItem> userDeliverOrderItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
-				userDeliverOrderItemLambdaQueryWrapper.eq(UserDeliverOrderItem::getOrderId, shipParam.getOrderId());
-				// 获取订单下所有提货统计数
-				int orderItemCount = userDeliverOrderItemService.count(userDeliverOrderItemLambdaQueryWrapper);
+		// 修改物流信息
+		boolean res = userDeliverOrderService.updateShipInfo(shipParam);
 
-				userDeliverOrderItemLambdaQueryWrapper.isNotNull(UserDeliverOrderItem::getDeliveryTime);
-				userDeliverOrderItemLambdaQueryWrapper.isNull(UserDeliverOrderItem::getDeliveryFlowId);
 
-				// 获取无需物流状态数量
-				int noNeedShipCnt = userDeliverOrderItemService.count(userDeliverOrderItemLambdaQueryWrapper);
-
-				// 如果相等则表示所有商品都是无需物流,直接设置订单状态为已完成,并且设置订单的收货时间
-				if (orderItemCount == noNeedShipCnt) {
-					userDeliverOrderService.update(new LambdaUpdateWrapper<UserDeliverOrder>()
-							.set(UserDeliverOrder::getStatus, DeliverOrderStatusEnum.FINISHED)
-							.eq(UserDeliverOrder::getOrderId, shipParam.getOrderId()));
-				}
-
-
-			} else if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
-				// 快递发货,原逻辑
-				userDeliverOrderItemService.update(new LambdaUpdateWrapper<UserDeliverOrderItem>()
-						.set(UserDeliverOrderItem::getDeliveryId, shipParam.getDeliveryId())
-						.set(UserDeliverOrderItem::getDeliveryFlowId, shipParam.getDeliveryFlowId())
-						.eq(UserDeliverOrderItem::getItemId, itemId));
-			}
-
-
-		}
-		return AjaxResult.success();
+		return res ? AjaxResult.success() : AjaxResult.error("消息修改失败");
 	}
 
 	@Log(title = "提货订单导出", businessType = BusinessType.EXPORT)

+ 9 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserDeliverOrderService.java

@@ -1,5 +1,6 @@
 package com.qs.mp.user.service;
 
+import com.qs.mp.admin.domain.param.UserDeliverOrderShipParam;
 import com.qs.mp.pay.domain.PayOrder;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserDeliverOrderItem;
@@ -83,4 +84,12 @@ public interface IUserDeliverOrderService extends IService<UserDeliverOrder> {
 	 * @return
 	 */
 	boolean userDeliverOrderShip(String orderId, List<UserDeliverOrderItem> itemList);
+
+	/**
+	 * 修改物流信息
+	 * @param shipParam
+	 * @return
+	 */
+    boolean updateShipInfo(UserDeliverOrderShipParam shipParam);
+
 }

+ 49 - 1
mp-service/src/main/java/com/qs/mp/user/service/impl/UserDeliverOrderServiceImpl.java

@@ -4,7 +4,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.qs.mp.admin.domain.param.UserDeliverOrderShipParam;
 import com.qs.mp.common.enums.DeliverOrderStatusEnum;
+import com.qs.mp.common.enums.DeliverTypeEnum;
 import com.qs.mp.common.enums.PrizeStorageStatusEnum;
 import com.qs.mp.common.enums.UserTicketOrderStatusEnum;
 import com.qs.mp.common.exception.ServiceException;
@@ -194,7 +196,53 @@ public class UserDeliverOrderServiceImpl extends ServiceImpl<UserDeliverOrderMap
 		return false;
 	}
 
-	@Override
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateShipInfo(UserDeliverOrderShipParam shipParam) {
+        Integer deliveryType = shipParam.getDeliveryType();
+        boolean res = false;
+
+        for (String itemId : shipParam.getItemIds()) {
+
+            if (DeliverTypeEnum.NO_DELIVER.getValue().equals(deliveryType)) {
+                // 无需物流,设置物流信息为空
+                res = userDeliverOrderItemService.update(new LambdaUpdateWrapper<UserDeliverOrderItem>()
+                        .set(UserDeliverOrderItem::getDeliveryId, null)
+                        .set(UserDeliverOrderItem::getDeliveryFlowId, null)
+                        .eq(UserDeliverOrderItem::getItemId, itemId));
+                // 查询判断是否所有都是无需物流
+                LambdaQueryWrapper<UserDeliverOrderItem> userDeliverOrderItemLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                userDeliverOrderItemLambdaQueryWrapper.eq(UserDeliverOrderItem::getOrderId, shipParam.getOrderId());
+                // 获取订单下所有提货统计数
+                int orderItemCount = userDeliverOrderItemService.count(userDeliverOrderItemLambdaQueryWrapper);
+
+                userDeliverOrderItemLambdaQueryWrapper.isNotNull(UserDeliverOrderItem::getDeliveryTime);
+                userDeliverOrderItemLambdaQueryWrapper.isNull(UserDeliverOrderItem::getDeliveryFlowId);
+
+                // 获取无需物流状态数量
+                int noNeedShipCnt = userDeliverOrderItemService.count(userDeliverOrderItemLambdaQueryWrapper);
+
+                // 如果相等则表示所有商品都是无需物流,直接设置订单状态为已完成,并且设置订单的收货时间
+                if (orderItemCount == noNeedShipCnt) {
+                    res = userDeliverOrderService.update(new LambdaUpdateWrapper<UserDeliverOrder>()
+                            .set(UserDeliverOrder::getStatus, DeliverOrderStatusEnum.FINISHED)
+                            .eq(UserDeliverOrder::getOrderId, shipParam.getOrderId()));
+                }
+
+
+            } else if (DeliverTypeEnum.DELIVER.getValue().equals(deliveryType)) {
+                // 快递发货,原逻辑
+                res = userDeliverOrderItemService.update(new LambdaUpdateWrapper<UserDeliverOrderItem>()
+                        .set(UserDeliverOrderItem::getDeliveryId, shipParam.getDeliveryId())
+                        .set(UserDeliverOrderItem::getDeliveryFlowId, shipParam.getDeliveryFlowId())
+                        .eq(UserDeliverOrderItem::getItemId, itemId));
+            }
+
+        }
+        return res;
+    }
+
+    @Override
 	public UserDeliverOrderVO selectUserDeliverOrderVo(String orderId) {
 		return getBaseMapper().selectUserDeliverOrderVo(orderId);
 	}