فهرست منبع

广电计算股东大盘分红时查询全部并减去注销的卡

mac 2 سال پیش
والد
کامیت
148aed7e1c

+ 12 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/CommonConstants.java

@@ -1,6 +1,8 @@
 
 package com.kxs.common.core.constant;
 
+import java.math.BigDecimal;
+
 /**
  * 公共常量
  *
@@ -101,4 +103,14 @@ public interface CommonConstants {
 	 */
 	String KXS_WAREHOUSE_APPLY_PREFIX = "FC";
 
+	/**
+	 * K2最低交易基数
+	 */
+	BigDecimal MAX_TOTAL_AMT = new BigDecimal(3000000);
+
+	/**
+	 * 广电换算pos金额 基数
+	 */
+	BigDecimal GD_CARDINAL_NUMBER = new BigDecimal(10000);
+
 }

+ 21 - 3
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -4,14 +4,19 @@ 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.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.stat.api.model.KxsLkbTrade;
 import com.kxs.stat.api.model.KxsUserActTrade;
+import com.kxs.stat.api.model.KxsUserLogoutTrade;
 import com.kxs.stat.api.model.KxsUserTrade;
 import com.kxs.stat.api.vo.ShdTradeAmtVO;
+import com.kxs.stat.biz.constant.enums.TotalTypeEnum;
 import com.kxs.stat.biz.mapper.KxsLkbTradeMapper;
 import com.kxs.stat.biz.mapper.KxsUserActTradeMapper;
+import com.kxs.stat.biz.mapper.KxsUserLogoutTradeMapper;
 import com.kxs.stat.biz.mapper.KxsUserTradeMapper;
 import com.kxs.stat.biz.service.KxsUserTradeService;
 import com.kxs.user.api.dto.kxsapp.IntegralStatDTO;
@@ -48,9 +53,12 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
     private final KxsLkbTradeMapper kxsLkbTradeMapper;
 
+    private final KxsUserLogoutTradeMapper kxsUserLogoutTradeMapper;
+
     private final static String PREFIX_TABLE_NAME = "kxs_user_trade_";
     private final static String PREFIX_TABLE_NAME_TEMP = "kxs_user_trade_temp_";
 
+
     @Override
     @Async
     public void getUserTradeList(String para) {
@@ -115,16 +123,26 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             //查询广电交易数据
             Cursor<KxsUserActTrade> kxsUserActTrades = kxsUserActTradeMapper.getUserTradeMonthList(thisMoth);
             for (KxsUserActTrade kxsUserActTrade : kxsUserActTrades) {
+                //总激活数
+                int actNum = kxsUserActTrade.getActNum();
+                //查询注销的广电卡
+                KxsUserLogoutTrade kxsUserLogoutTrade = kxsUserLogoutTradeMapper.selectOne(Wrappers.<KxsUserLogoutTrade>lambdaQuery()
+                        .eq(KxsUserLogoutTrade::getUserId, kxsUserActTrade.getUserId())
+                        .eq(KxsUserLogoutTrade::getTotalType, TotalTypeEnum.TEAM.getType()).last("limit 1"));
+                //总激活数 减去注销的卡 = 实际激活总数
+                if(kxsUserLogoutTrade != null){
+                    actNum = actNum - kxsUserLogoutTrade.getLogoutNum();
+                }
                 ShdTradeAmtVO shdTradeAmtVO = baseMapper.getTempShdTableData(tempTableName, kxsUserActTrade.getUserId());
                 if(shdTradeAmtVO == null){
                     shdTradeAmtVO = new ShdTradeAmtVO();
                     shdTradeAmtVO.setUserId(kxsUserActTrade.getUserId());
                     //广电卡 * 10000加入
-                    shdTradeAmtVO.setGdAmt(NumberUtil.mul(kxsUserActTrade.getActNum(), BigDecimal.valueOf(10000)));
+                    shdTradeAmtVO.setGdAmt(NumberUtil.mul(actNum, CommonConstants.GD_CARDINAL_NUMBER));
                     baseMapper.insertTempShdTableData(tempTableName, shdTradeAmtVO);
                 }else{
                     //广电卡 * 10000加入
-                    shdTradeAmtVO.setGdAmt(NumberUtil.mul(kxsUserActTrade.getActNum(), BigDecimal.valueOf(10000)));
+                    shdTradeAmtVO.setGdAmt(NumberUtil.mul(actNum, CommonConstants.GD_CARDINAL_NUMBER));
                     baseMapper.updateTempShdTableData(tempTableName, shdTradeAmtVO);
                 }
             }
@@ -146,7 +164,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 if(kxsUserTrade.getLkbActAmt() != null){
                     totalAmount = totalAmount.add(kxsUserTrade.getLkbActAmt());
                 }
-                if(totalAmount.compareTo(BigDecimal.valueOf(3000000)) >= 0){
+                if(totalAmount.compareTo(CommonConstants.MAX_TOTAL_AMT) >= 0){
                     IntegralStatDTO integralStatDTO = new IntegralStatDTO();
                     integralStatDTO.setTradeMonth(thisMoth);
                     integralStatDTO.setUserId(Long.valueOf(kxsUserTrade.getUserId()));