瀏覽代碼

fix:定时任务

liujunchi 2 年之前
父節點
當前提交
ef7032cc4e

+ 15 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -49,6 +49,8 @@ import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
+import static com.ym.mec.biz.dal.enums.DealStatusEnum.CLOSE;
+
 @Service
 public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, StudentPaymentOrder> implements StudentPaymentOrderService {
 
@@ -1032,6 +1034,18 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     @Override
     public Map createOrder(MallCreateOrderModel model) throws Exception {
 
+        if (StringUtils.isNotEmpty(model.getOldOrderNo())) {
+            StudentPaymentOrder orderByOrderNo = studentPaymentOrderService.findOrderByOrderNo(model.getOldOrderNo());
+            // 已有订单,先关单
+            orderByOrderNo.setStatus(CLOSE);
+            studentPaymentOrderService.update(orderByOrderNo);
+            if (orderByOrderNo.getBalancePaymentAmount() != null && orderByOrderNo.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
+                sysUserCashAccountService.updateBalance(orderByOrderNo.getUserId(), orderByOrderNo.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
+            }
+            //退优惠券
+            sysCouponCodeService.quit(orderByOrderNo.getCouponCodeId());
+        }
+
         SysUser student = studentDao.getUser(model.getUserId());
         Map payMap = new HashMap();
         if (student == null) {
@@ -1055,7 +1069,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
 
-        // todo  receiver类型
+        //  receiver类型
         payMap = payService.getPayMap(
                 studentPaymentOrder.getExpectAmount(),
                 studentPaymentOrder.getActualAmount(),

+ 24 - 0
mec-client-api/src/main/java/com/ym/mec/task/MallPortalFeignService.java

@@ -0,0 +1,24 @@
+package com.ym.mec.task;
+
+import com.ym.mec.common.config.FeignConfiguration;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.task.fallback.MallPortalFeignServiceFallback;
+import com.ym.mec.task.fallback.TaskRemoteServiceFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+@FeignClient(name = "mall-portal-server", contextId = "TaskMallRemoteService", configuration = {FeignConfiguration.class}, fallback = MallPortalFeignServiceFallback.class)
+public interface MallPortalFeignService {
+
+    /**
+     * 订单轮询
+     */
+    @GetMapping("/task/cancelTimeOutOrder")
+    Object cancelTimeOutOrder();
+
+    /**
+     * 自动收货
+     */
+    @GetMapping("/task/autoReceive")
+    HttpResponseResult autoReceive();
+}

+ 22 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/MallPortalFeignServiceFallback.java

@@ -0,0 +1,22 @@
+package com.ym.mec.task.fallback;
+
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.task.MallPortalFeignService;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-09-19
+ */
+public class MallPortalFeignServiceFallback  implements MallPortalFeignService {
+    @Override
+    public Object cancelTimeOutOrder() {
+        return null;
+    }
+
+    @Override
+    public HttpResponseResult autoReceive() {
+        return null;
+    }
+}

+ 10 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/MallCreateOrderModel.java

@@ -11,6 +11,8 @@ import java.util.List;
  */
 public class MallCreateOrderModel {
 
+    private String oldOrderNo;
+
     private String orderNo;
 
     private BigDecimal amount;
@@ -19,6 +21,14 @@ public class MallCreateOrderModel {
 
     private Integer userId;
 
+    public String getOldOrderNo() {
+        return oldOrderNo;
+    }
+
+    public void setOldOrderNo(String oldOrderNo) {
+        this.oldOrderNo = oldOrderNo;
+    }
+
     public String getOrderNo() {
         return orderNo;
     }

+ 11 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/domain/OrderParam.java

@@ -31,6 +31,17 @@ public class OrderParam {
     @ApiModelProperty("代码用户id")
     private Long  userId;
 
+    @ApiModelProperty("订单号 ")
+    private String orderNo;
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
     public Long getUserId() {
         return userId;
     }

+ 9 - 0
mec-mall/mall-portal/src/main/java/com/yonge/cooleshow/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -130,6 +130,14 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         if (orderParam.getUserId() != null && orderParam.getUserId() > 0) {
             currentMember = memberService.getById(orderParam.getUserId());
         }
+        if (!StringUtil.isEmpty(orderParam.getOrderNo())) {
+            // 订单号不为空 先删除订单  在重新创建订单
+            OmsOrderDetail detail = detail(orderParam.getOrderNo());
+            if (detail != null) {
+                detail.setStatus(4);
+                orderMapper.updateByPrimaryKeySelective(detail);
+            }
+        }
         List<CartPromotionItem> cartPromotionItemList = cartItemService.listPromotion(currentMember.getId(),
                                                                                       orderParam.getCartIds(), true);
         for (CartPromotionItem cartPromotionItem : cartPromotionItemList) {
@@ -151,6 +159,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
             orderItem.setGiftIntegration(cartPromotionItem.getIntegration());
             orderItem.setGiftGrowth(cartPromotionItem.getGrowth());
             orderItem.setPromoterId(cartPromotionItem.getPromoterId());
+            orderItem.setPrecisionAmount(BigDecimal.ZERO);
             orderItemList.add(orderItem);
         }
         //判断购物车中商品是否都有库存

+ 24 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/CancelTimeOutOrderTask.java

@@ -0,0 +1,24 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.MallPortalFeignService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 订单轮询
+ * @Author: liweifan
+ * @Data: 2022/4/13 17:36
+ */
+@Service
+public class CancelTimeOutOrderTask extends BaseTask {
+
+    @Autowired
+    private MallPortalFeignService mallPortalFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        Object o = mallPortalFeignService.cancelTimeOutOrder();
+    }
+}

+ 22 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/MallAutoReceiveTask.java

@@ -0,0 +1,22 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.MallPortalFeignService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 自动收货
+ */
+@Service
+public class MallAutoReceiveTask extends BaseTask {
+
+    @Autowired
+    private MallPortalFeignService mallPortalFeignService;
+
+    @Override
+    public void execute() throws TaskException {
+        Object o = mallPortalFeignService.autoReceive();
+    }
+}