Browse Source

Merge branch 'dev/2024/0704/update-admin-Y' of Harper/feifan-backend-zx-admin into master

先修改测试环境的计算程序的定时任务
Yangzw 8 months ago
parent
commit
7e85a0b21d

+ 6 - 0
feifan-module-distri/feifan-module-distri-biz/pom.xml

@@ -112,5 +112,11 @@
             <groupId>cn.newfeifan.zx</groupId>
             <artifactId>feifan-spring-boot-starter-biz-ip</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.newfeifan.zx</groupId>
+            <artifactId>feifan-module-infra-biz</artifactId>
+            <version>2.0.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

+ 23 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/ordercalc/OrderCalcServiceImpl.java

@@ -26,6 +26,11 @@ import cn.newfeifan.mall.module.distri.service.ptprofitlog.PtProfitLogService;
 import cn.newfeifan.mall.module.distri.service.ptprofitlogdetails.PtProfitLogDetailsService;
 import cn.newfeifan.mall.module.distri.service.sharepath.SharePathService;
 import cn.newfeifan.mall.module.distri.service.shopsettlement.ShopSettlementService;
+import cn.newfeifan.mall.module.infra.dal.dataobject.job.JobDO;
+import cn.newfeifan.mall.module.infra.dal.dataobject.job.JobLogDO;
+import cn.newfeifan.mall.module.infra.dal.mysql.job.JobLogMapper;
+import cn.newfeifan.mall.module.infra.dal.mysql.job.JobMapper;
+import cn.newfeifan.mall.module.infra.enums.job.JobLogStatusEnum;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
@@ -99,6 +104,12 @@ public class OrderCalcServiceImpl implements OrderCalcService {
     @Resource
     private DailyAwardRecordsService dailyAwardRecordsService;
 
+    @Resource
+    private JobLogMapper jobLogMapper;
+
+    @Resource
+    private JobMapper jobMapper;
+
     @Override
     public Long createOrderCalc(OrderCalcSaveReqVO createReqVO) {
         // 插入
@@ -188,6 +199,18 @@ public class OrderCalcServiceImpl implements OrderCalcService {
 
             System.out.println("=================计算程序结束====================");
         }
+
+        // 不是用的quzt 手动加上日志
+        JobDO job = jobMapper.selectOne(JobDO::getHandlerName, "tradeOrderAutoCalcJob");
+        JobLogDO log = new JobLogDO();
+        log.setBeginTime(LocalDateTime.now());
+        log.setStatus(JobLogStatusEnum.SUCCESS.getStatus());
+        log.setJobId(job.getId());
+        log.setHandlerName(job.getHandlerName());
+        log.setHandlerParam(job.getHandlerParam());
+        log.setExecuteIndex(1);
+
+        jobLogMapper.insert(log);
     }
 
     /**

+ 6 - 0
feifan-module-mall/feifan-module-trade-biz/pom.xml

@@ -129,6 +129,12 @@
             <artifactId>sdk</artifactId>
             <version>1.0.12</version>
         </dependency>
+        <dependency>
+            <groupId>cn.newfeifan.zx</groupId>
+            <artifactId>feifan-module-infra-biz</artifactId>
+            <version>2.0.0-jdk8-snapshot</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 </project>

+ 29 - 5
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/job/order/TradeOrderAutoCalcJob.java

@@ -5,10 +5,17 @@ import cn.newfeifan.mall.framework.tenant.core.job.TenantJob;
 import cn.newfeifan.mall.module.distri.mq.message.order.CalcMessage;
 import cn.newfeifan.mall.module.distri.mq.message.order.DistriOrderMessage;
 import cn.newfeifan.mall.module.distri.mq.message.order.OrderCalcMessage;
+import cn.newfeifan.mall.module.infra.dal.dataobject.job.JobDO;
+import cn.newfeifan.mall.module.infra.dal.mysql.job.JobMapper;
 import cn.newfeifan.mall.module.trade.mq.producer.order.DistriOrderProducer;
 import cn.newfeifan.mall.module.trade.service.order.TradeOrderQueryService;
+import lombok.extern.slf4j.Slf4j;
 import org.quartz.DisallowConcurrentExecution;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.SchedulingConfigurer;
+import org.springframework.scheduling.config.ScheduledTaskRegistrar;
+import org.springframework.scheduling.support.CronTrigger;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -22,7 +29,9 @@ import java.util.List;
 @Component
 @DisallowConcurrentExecution
 @Lazy(false)
-public class TradeOrderAutoCalcJob implements JobHandler {
+@EnableScheduling
+@Slf4j
+public class TradeOrderAutoCalcJob implements SchedulingConfigurer {
 
     @Resource
     private DistriOrderProducer distriOrderProducer;
@@ -30,9 +39,12 @@ public class TradeOrderAutoCalcJob implements JobHandler {
     @Resource
     private TradeOrderQueryService tradeOrderQueryService;
 
-    @Override
-    @TenantJob
-    public String execute(String param) {
+    @Resource
+    private JobMapper jobMapper;
+
+    //    @Override
+//    @TenantJob
+    public void execute() {
         //发货七天前订单
         List<DistriOrderMessage> appTradeOrderDetailRespVos = tradeOrderQueryService.queryAllOrder();
         List<OrderCalcMessage> orderCalcMessages = tradeOrderQueryService.getOrderCalcMessage(appTradeOrderDetailRespVos);
@@ -43,9 +55,21 @@ public class TradeOrderAutoCalcJob implements JobHandler {
 
         CalcMessage calcMessage = CalcMessage.builder().orderCalcMessages(orderCalcMessages).bonusQuotaOrderDO(orderCalcMessages2).distriOrderMessages(appTradeOrderDetailRespVos).build();
         distriOrderProducer.sendDistriOrderMessage(calcMessage);
-        return "计算订单信息结束";
+//        return "计算订单信息结束";
+        log.info("==========计算订单信息结束==========");
 
+    }
 
+    @Override
+    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
+        scheduledTaskRegistrar.addTriggerTask(this::execute,
+                triggerContext -> {
+                    String cron = jobMapper.selectOne(JobDO::getHandlerName,"tradeOrderAutoCalcJob").getCronExpression();
+                    if (cron.isEmpty()) {
+                        log.error("==========没有找到启动  [tradeOrderAutoCalcJob] 任务的 定时任务 ==========");
+                    }
+                    return new CronTrigger(cron).nextExecutionTime(triggerContext);
+                });
     }
 
 }