|
@@ -1,5 +1,6 @@
|
|
|
package com.qs.mp.web.controller.api.admin;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.qs.mp.admin.domain.param.UserDeliverOrderQueryParam;
|
|
@@ -8,6 +9,7 @@ import com.qs.mp.common.annotation.Log;
|
|
|
import com.qs.mp.common.core.domain.AjaxResult;
|
|
|
import com.qs.mp.common.core.page.TableDataInfo;
|
|
|
import com.qs.mp.common.enums.BusinessType;
|
|
|
+import com.qs.mp.common.enums.DeliverOrderStatusEnum;
|
|
|
import com.qs.mp.common.enums.DeliverTypeEnum;
|
|
|
import com.qs.mp.common.enums.ErrorCodeEnum;
|
|
|
import com.qs.mp.user.domain.UserDeliverOrder;
|
|
@@ -174,19 +176,57 @@ public class UserDeliverOrderMgrController extends BaseApiController {
|
|
|
@Log(title = "用户提货订单发货单号修改", businessType = BusinessType.UPDATE)
|
|
|
@PostMapping("/ship/update")
|
|
|
@ApiOperation(value = "订单发货修改", notes = "在订单发货页面提交")
|
|
|
+ @ApiResponses(
|
|
|
+ @ApiResponse(code = 200, message = "success", response = AjaxResult.class)
|
|
|
+ )
|
|
|
@PreAuthorize("@ss.hasPermi('order:deliver:ship')")
|
|
|
public AjaxResult updateShipInfo(@RequestBody UserDeliverOrderShipParam shipParam) {
|
|
|
if (null == shipParam || StringUtils.isBlank(shipParam.getOrderId())
|
|
|
- || null == shipParam.getDeliveryId() || StringUtils.isBlank(shipParam.getDeliveryFlowId())
|
|
|
|| CollectionUtils.isEmpty(shipParam.getItemIds())) {
|
|
|
return error(ErrorCodeEnum.ERROR_CODE_1001);
|
|
|
}
|
|
|
|
|
|
+ Integer deliveryType = shipParam.getDeliveryType();
|
|
|
+ if (null == deliveryType) {
|
|
|
+ return error("物流类型参数为空");
|
|
|
+ }
|
|
|
for (String itemId : shipParam.getItemIds()) {
|
|
|
- userDeliverOrderItemService.update(new LambdaUpdateWrapper<UserDeliverOrderItem>()
|
|
|
- .set(UserDeliverOrderItem::getDeliveryId, shipParam.getDeliveryId())
|
|
|
- .set(UserDeliverOrderItem::getDeliveryFlowId, shipParam.getDeliveryFlowId())
|
|
|
- .eq(UserDeliverOrderItem::getItemId, itemId));
|
|
|
+
|
|
|
+ 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);
|
|
|
+
|
|
|
+ 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();
|
|
|
}
|