Explorar o código

股东大盘分红定时任务添加可变参数

mac %!s(int64=2) %!d(string=hai) anos
pai
achega
b1cfa812b7

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/StatBeanTask.java

@@ -31,7 +31,7 @@ public class StatBeanTask {
      */
     @SneakyThrows
     public String prizePoolSynchronization(String para) {
-        remoteKxsStatService.getUserTradeList(SecurityConstants.FROM_IN);
+        remoteKxsStatService.getUserTradeList(para, SecurityConstants.FROM_IN);
         log.info("股东大盘分红积分计算任务:{},输入参数{}", LocalDateTime.now(), para);
         return SkyQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
     }

+ 1 - 1
kxs-quartz/src/main/java/com/kxs/daemon/quartz/task/UserBeanTask.java

@@ -57,7 +57,7 @@ public class UserBeanTask {
      */
     @SneakyThrows
     public String prizePoolSynchronization(String para) {
-        remoteKxsUserService.prizePoolSynchronization(SecurityConstants.FROM_IN);
+        remoteKxsUserService.prizePoolSynchronization(para, SecurityConstants.FROM_IN);
         log.info("股东大盘分红奖池同步交易额:{},输入参数{}", LocalDateTime.now(), para);
         return SkyQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
     }

+ 2 - 2
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/feign/RemoteKxsStatService.java

@@ -26,7 +26,7 @@ public interface RemoteKxsStatService {
 	 *
 	 */
 	@GetExchange("/stat-job/getUserTradeList")
-    void getUserTradeList(@RequestHeader(SecurityConstants.FROM) String from);
+    void getUserTradeList(@RequestParam(value = "para", required = false) String para, @RequestHeader(SecurityConstants.FROM) String from);
 
 	/**
 	 * 获取交易统计数据
@@ -35,7 +35,7 @@ public interface RemoteKxsStatService {
 	 *
 	 */
 	@GetExchange("/stat/getStatAmount")
-	BigDecimal getStatAmount(@RequestParam("month") String month,@RequestHeader(SecurityConstants.FROM) String from);
+	BigDecimal getStatAmount(@RequestParam("month") String month, @RequestHeader(SecurityConstants.FROM) String from);
 
 
 }

+ 1 - 2
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserTradeService.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.stat.api.model.KxsUserTrade;
 
 import java.math.BigDecimal;
-import java.util.List;
 
 /**
  * 个人交易统计总表(KxsUserTrade)表服务接口
@@ -17,7 +16,7 @@ public interface KxsUserTradeService extends IService<KxsUserTrade> {
     /**
      * 股东大盘分红积分计算任务
      */
-    void getUserTradeList();
+    void getUserTradeList(String para);
     /**
      * 获取交易统计数据
      */

+ 14 - 6
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -3,6 +3,7 @@ package com.kxs.stat.biz.service.impl;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.stat.api.model.KxsLkbTrade;
@@ -50,9 +51,16 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
     @Override
     @Async
-    public void getUserTradeList() {
+    public void getUserTradeList(String para) {
         //拼接表名
-        String thisMoth = LocalDateTimeUtil.format(LocalDate.now(), DatePattern.SIMPLE_MONTH_PATTERN);
+        String thisMoth;
+        //如果定时任务传了参数就使用定时任务的参数
+        if(StrUtil.isNotBlank(para)){
+            thisMoth = para;
+        }else{
+            thisMoth = LocalDateTimeUtil.format(LocalDate.now(), DatePattern.SIMPLE_MONTH_PATTERN);
+        }
+
         String tableName = PREFIX_TABLE_NAME + thisMoth;
 
         int batchSize = 100;
@@ -120,13 +128,13 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             for (ShdTradeAmtVO kxsUserTrade : shdTradeAmtVOList) {
                 batch.add(kxsUserTrade);
                 if (batch.size() >= batchSize) {
-                    remoteUserShdStat(batch);
+                    remoteUserShdStat(batch, thisMoth);
                     batch.clear();
                 }
             }
             // 处理最后一批数据
             if (!batch.isEmpty()) {
-                remoteUserShdStat(batch);
+                remoteUserShdStat(batch, thisMoth);
             }
             return null;
         });
@@ -140,7 +148,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     }
 
 
-    public void remoteUserShdStat(List<ShdTradeAmtVO> userTradeList) {
+    public void remoteUserShdStat(List<ShdTradeAmtVO> userTradeList, String month) {
         List<IntegralStatDTO> params = new ArrayList<>();
         for (ShdTradeAmtVO datum : userTradeList) {
 
@@ -162,7 +170,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 totalAmount = totalAmount.add(datum.getLkbActAmt());
             }
             if(totalAmount.compareTo(BigDecimal.valueOf(3000000)) >= 0){
-                params.add(IntegralStatDTO.builder().userId(Long.valueOf(userId)).totalAmount(totalAmount).build());
+                params.add(IntegralStatDTO.builder().userId(Long.valueOf(userId)).tradeMonth(Integer.valueOf(month)).totalAmount(totalAmount).build());
                 log.info("用户{}交易额达标:{}", userId, totalAmount);
             }
         }

+ 3 - 2
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/task/KxsStatTaskJob.java

@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.time.LocalDate;
@@ -43,8 +44,8 @@ public class KxsStatTaskJob {
      */
     @Inner
     @GetMapping("/getUserTradeList")
-    public void getUserTradeList() {
-        kxsUserTradeService.getUserTradeList();
+    public void getUserTradeList(@RequestParam(value = "para", required = false) String para) {
+        kxsUserTradeService.getUserTradeList(para);
     }
 
     /**

+ 7 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/IntegralStatDTO.java

@@ -16,12 +16,19 @@ import java.math.BigDecimal;
 @Data
 @Builder
 public class IntegralStatDTO implements Serializable {
+
     /**
      * 总金额
      */
     private BigDecimal totalAmount;
+
     /**
      * 用户id
      */
     private Long userId;
+
+    /**
+     * 月份
+     */
+    private Integer tradeMonth;
 }

+ 1 - 1
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java

@@ -168,7 +168,7 @@ public interface RemoteKxsUserService {
 	 * @return {@link R}
 	 */
 	@GetExchange("/shareholder/prizePoolSynchronization")
-	void prizePoolSynchronization(@RequestHeader(SecurityConstants.FROM) String from);
+	void prizePoolSynchronization(@RequestParam(value = "para", required = false) String para, @RequestHeader(SecurityConstants.FROM) String from);
 
 	/**
 	 * 修改用户真实职级表

+ 2 - 2
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/ShareholderController.java

@@ -94,8 +94,8 @@ public class ShareholderController {
      */
     @Inner
     @GetMapping("/prizePoolSynchronization")
-    public void prizePoolSynchronization() {
-            kxsShdTradeAmtService.prizePoolSynchronization();
+    public void prizePoolSynchronization(@RequestParam(value = "para", required = false) String para) {
+            kxsShdTradeAmtService.prizePoolSynchronization(para);
     }
 
     /**

+ 1 - 3
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsShdTradeAmtService.java

@@ -3,8 +3,6 @@ package com.kxs.user.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.user.api.model.KxsShdTradeAmt;
 
-import java.math.BigDecimal;
-
 /**
  * 股东大盘分红交易表(KxsShdTradeAmt)表服务接口
  *
@@ -19,7 +17,7 @@ public interface KxsShdTradeAmtService extends IService<KxsShdTradeAmt> {
      * 奖池同步交易额
 
      */
-    void prizePoolSynchronization();
+    void prizePoolSynchronization(String para);
 
 
 }

+ 13 - 8
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsShdTradeAmtServiceImpl.java

@@ -1,12 +1,13 @@
 package com.kxs.user.biz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.alibaba.fastjson.JSON;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.util.AssertUtil;
-import com.kxs.common.core.util.R;
 import com.kxs.stat.api.feign.RemoteKxsStatService;
 import com.kxs.system.api.feign.RemoteOldService;
 import com.kxs.user.api.vo.kxsapp.shareholder.ShareholderGetShareholderAmountVO;
@@ -18,10 +19,9 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * 股东大盘分红交易表(KxsShdTradeAmt)表服务实现类
@@ -50,10 +50,15 @@ public class KxsShdTradeAmtServiceImpl extends ServiceImpl<KxsShdTradeAmtMapper,
     }
 
     @Override
-    public void prizePoolSynchronization() {
-        LocalDateTime now = LocalDateTime.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM");
-        String month = now.format(formatter);
+    public void prizePoolSynchronization(String para) {
+        String month;
+        //如果定时任务传了参数就使用定时任务的参数
+        if(StrUtil.isNotBlank(para)){
+            month = para;
+        }else{
+            month = LocalDateTimeUtil.format(LocalDate.now(), DatePattern.SIMPLE_MONTH_PATTERN);
+        }
+
 
         //调用老系统 已弃用
 //        HashMap<String, Object> param = new HashMap<>();