Parcourir la source

计奖交易明细接口优化

mac il y a 2 ans
Parent
commit
70476edf78

+ 3 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/handlers/AliPayMessageHandler.java

@@ -7,9 +7,11 @@ import com.kxs.common.pay.handlers.PayMessageHandler;
 import com.kxs.common.pay.model.AliPayMessage;
 import com.kxs.common.pay.model.AliPayMessage;
 import com.kxs.common.pay.service.ali.AliPayService;
 import com.kxs.common.pay.service.ali.AliPayService;
 import com.kxs.product.biz.service.KxsShopOrderService;
 import com.kxs.product.biz.service.KxsShopOrderService;
+import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
 
 
 /**
 /**
  * 支付宝支付回调处理器
  * 支付宝支付回调处理器
@@ -30,6 +32,7 @@ public class AliPayMessageHandler implements PayMessageHandler<AliPayMessage, Al
      * @return xml, text格式的消息,如果在异步规则里处理的话,可以返回null
      * @return xml, text格式的消息,如果在异步规则里处理的话,可以返回null
      */
      */
     @Override
     @Override
+    @GlobalTransactional(rollbackFor = Exception.class)
     public String handle(AliPayMessage payMessage, AliPayService payService) {
     public String handle(AliPayMessage payMessage, AliPayService payService) {
 
 
         log.info("支付宝支付回调消息处理,订单号:{}", payMessage.getOutTradeNo());
         log.info("支付宝支付回调消息处理,订单号:{}", payMessage.getOutTradeNo());

+ 7 - 23
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsShopOrderServiceImpl.java

@@ -233,32 +233,16 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
                     //支付成功
                     //支付成功
                     lambdaUpdateWrapper.set(KxsShopOrder::getStatus, KxsShopEnum.ORDER_NO_SEND.getType());
                     lambdaUpdateWrapper.set(KxsShopOrder::getStatus, KxsShopEnum.ORDER_NO_SEND.getType());
                     lambdaUpdateWrapper.set(KxsShopOrder::getPayTime, LocalDateTime.now());
                     lambdaUpdateWrapper.set(KxsShopOrder::getPayTime, LocalDateTime.now());
+                    this.update(lambdaUpdateWrapper);
+                    //支付成功回调
+                    this.payBack(order.getOrderSn());
                 }else{
                 }else{
                     throw new GlobalCustomerException("余额支付异常");
                     throw new GlobalCustomerException("余额支付异常");
                 }
                 }
-            } catch (AlipayApiException e) {
-                throw new GlobalCustomerException("余额支付异常");
+            } catch (Exception e) {
+                log.error("订单号{}余额支付异常:{}", order.getOrderSn(), e.getMessage(), e);
+                throw new GlobalCustomerException(e.getMessage());
             }
             }
-
-            //目前只能下单一个商品,故直接取之
-            KxsShopOrderInfo kxsShopOrderInfo = kxsShopOrderInfos.get(0);
-            switch(kxsShopOrderInfo.getGoodsId()){
-                case 10:
-                    if(!kxsTicketService.userBuyTicket(order.getUserId(), TicketTypeEnum.CODE_DQ.getType(), order.getId(), kxsShopOrderInfo.getNumber() * 3)){
-                        throw new GlobalCustomerException("兑换电签机具券失败" + order.getOrderSn());
-                    }
-                case 11:
-                    if(!kxsTicketService.userBuyTicket(order.getUserId(), TicketTypeEnum.CODE_DJ.getType(), order.getId(), kxsShopOrderInfo.getNumber() * 2)){
-                        throw new GlobalCustomerException("兑换大机机具券失败" + order.getOrderSn());
-                    }
-            }
-            KxsShopGoods goods = kxsShopGoodsMapper.selectById(kxsShopOrderInfo.getGoodsId());
-            //虚拟商品改为已完成
-            if(Objects.equals(goods.getGoodsType(), KxsShopEnum.GOODS_VIRTUAL.getType())){
-                lambdaUpdateWrapper.set(KxsShopOrder::getStatus, KxsShopEnum.ORDER_CONFIRM.getType());
-            }
-
-            this.update(lambdaUpdateWrapper);
         }
         }
 
 
         return R.ok();
         return R.ok();
@@ -266,7 +250,6 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
 
 
 
 
     @Override
     @Override
-    @Transactional(rollbackFor = Exception.class)
     public void payBack(String outTradeNo) {
     public void payBack(String outTradeNo) {
         KxsShopOrder order = baseMapper.selectOne(Wrappers.<KxsShopOrder>lambdaQuery().eq(KxsShopOrder::getOrderSn, outTradeNo).last("FOR UPDATE"));
         KxsShopOrder order = baseMapper.selectOne(Wrappers.<KxsShopOrder>lambdaQuery().eq(KxsShopOrder::getOrderSn, outTradeNo).last("FOR UPDATE"));
         if(order == null){
         if(order == null){
@@ -278,6 +261,7 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
         order.setStatus(KxsShopEnum.ORDER_NO_SEND.getType());
         order.setStatus(KxsShopEnum.ORDER_NO_SEND.getType());
         order.setPayTime(LocalDateTime.now());
         order.setPayTime(LocalDateTime.now());
         List<KxsShopOrderInfo> kxsShopOrderInfos = orderInfoMapper.selectList(Wrappers.<KxsShopOrderInfo>lambdaQuery().eq(KxsShopOrderInfo::getOrderId, order.getId()));
         List<KxsShopOrderInfo> kxsShopOrderInfos = orderInfoMapper.selectList(Wrappers.<KxsShopOrderInfo>lambdaQuery().eq(KxsShopOrderInfo::getOrderId, order.getId()));
+        //目前只能下单一个商品,故直接取之
         KxsShopOrderInfo kxsShopOrderInfo = kxsShopOrderInfos.get(0);
         KxsShopOrderInfo kxsShopOrderInfo = kxsShopOrderInfos.get(0);
         switch(kxsShopOrderInfo.getGoodsId()){
         switch(kxsShopOrderInfo.getGoodsId()){
             case 10:
             case 10:

+ 19 - 1
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetMyTradeDTO.java

@@ -1,6 +1,7 @@
 package com.kxs.stat.api.dto.statUser;
 package com.kxs.stat.api.dto.statUser;
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
 import lombok.Data;
 import lombok.Data;
 
 
 
 
@@ -17,6 +18,7 @@ public class StatUserGetMyTradeDTO {
      * 获取月份
      * 获取月份
      */
      */
     @Schema(description = "获取月份")
     @Schema(description = "获取月份")
+    @NotBlank(message = "月份不能为空")
     private String month;
     private String month;
 
 
 
 
@@ -24,7 +26,23 @@ public class StatUserGetMyTradeDTO {
      * 0:个人 1:计奖
      * 0:个人 1:计奖
      */
      */
     @Schema(description = "0:个人 1:计奖")
     @Schema(description = "0:个人 1:计奖")
-    private String type;
+    @NotBlank(message = "类型不能为空")
+    private Integer type;
+
+    /**
+     * 用户 ID
+     */
+    private Long userId;
+
+    /**
+     * 表名
+     */
+    private String tableName;
+
+    /**
+     * 0:个人 1:计奖
+     */
+    private String totalType;
 
 
 
 
 
 

+ 3 - 1
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetTradeDetailDTO.java

@@ -1,5 +1,6 @@
 package com.kxs.stat.api.dto.statUser;
 package com.kxs.stat.api.dto.statUser;
 
 
+import com.kxs.common.core.valid.NormMonth;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 
 
@@ -24,6 +25,7 @@ public class StatUserGetTradeDetailDTO {
      * 该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
      * 该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
      */
      */
     @Schema(description = "只有type=1时该参数有效获取月份格式yyyyMM")
     @Schema(description = "只有type=1时该参数有效获取月份格式yyyyMM")
+    @NormMonth
     private Integer date;
     private Integer date;
 
 
 
 
@@ -52,7 +54,7 @@ public class StatUserGetTradeDetailDTO {
      * 品牌id
      * 品牌id
      */
      */
     @Schema(description = "品牌id")
     @Schema(description = "品牌id")
-    private Long brandId;
+    private Integer brandId;
 
 
 
 
 
 

+ 7 - 1
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserTradeVo.java

@@ -13,6 +13,7 @@ import java.math.BigDecimal;
  */
  */
 @Data
 @Data
 public class StatUserTradeVo {
 public class StatUserTradeVo {
+
     /**
     /**
      * 扶持期贷记卡交易额
      * 扶持期贷记卡交易额
      */
      */
@@ -43,6 +44,11 @@ public class StatUserTradeVo {
      * 扶持期云闪付交易额
      * 扶持期云闪付交易额
      */
      */
     @Schema(description = "扶持期云闪付交易额")
     @Schema(description = "扶持期云闪付交易额")
-    private Object cloudTrade = BigDecimal.ZERO;
+    private BigDecimal cloudTrade = BigDecimal.ZERO;
+
+    /**
+     * POS交易总和
+     */
+    private BigDecimal posTrade = BigDecimal.ZERO;
 
 
 }
 }

+ 1 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java

@@ -39,6 +39,7 @@ public class KxsStatUserController {
 
 
     private final KxsMerchantTradeService kxsMerchantTradeService;
     private final KxsMerchantTradeService kxsMerchantTradeService;
     private final KxsUserActTradeService kxsUserActTradeService;
     private final KxsUserActTradeService kxsUserActTradeService;
+
     /**
     /**
      * 用户详情-获取用户统计数据
      * 用户详情-获取用户统计数据
      *
      *

+ 4 - 4
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsLkbActTradeMapper.java

@@ -2,6 +2,7 @@ package com.kxs.stat.biz.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.stat.api.model.KxsLkbActTrade;
 import com.kxs.stat.api.model.KxsLkbActTrade;
+import io.swagger.v3.oas.models.security.SecurityScheme;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -15,10 +16,9 @@ import org.apache.ibatis.annotations.Param;
 public interface KxsLkbActTradeMapper extends BaseMapper<KxsLkbActTrade> {
 public interface KxsLkbActTradeMapper extends BaseMapper<KxsLkbActTrade> {
     /**
     /**
      * 获取全部码牌激活
      * 获取全部码牌激活
-     * @param userId
-     * @param type 0 个人  1团队
-     * @return
+     * @param userId 用户ID
+     * @param type 0 个人  1 团队
      */
      */
-    Integer getSignCount(@Param("userId") Long userId,@Param("type") String type);
+    Integer getSignCount(@Param("userId") Long userId,@Param("type") Integer type);
 }
 }
 
 

+ 1 - 1
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserNewTradeMapper.java

@@ -26,6 +26,6 @@ public interface KxsUserNewTradeMapper extends BaseMapper<KxsUserNewTrade> {
      */
      */
     List<TrendTimesVO> getUserAddTrend(@Param("userId") Long userId, @Param("times") List<String> times,@Param("type") Integer type,@Param("totalType") Integer totalType);
     List<TrendTimesVO> getUserAddTrend(@Param("userId") Long userId, @Param("times") List<String> times,@Param("type") Integer type,@Param("totalType") Integer totalType);
 
 
-    Integer getUserAllTrend(@Param("userId")Long userId, @Param("type")String type);
+    Integer getUserAllTrend(@Param("userId")Long userId, @Param("type")Integer type);
 }
 }
 
 

+ 1 - 1
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserTradeMapper.java

@@ -122,7 +122,7 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
                                     @Param("date") Integer date,
                                     @Param("date") Integer date,
                                     @Param("getType") Integer getType,
                                     @Param("getType") Integer getType,
                                     @Param("tradeType")Integer tradeType,
                                     @Param("tradeType")Integer tradeType,
-                                    @Param("brandId") Long brandId,
+                                    @Param("brandId") Integer brandId,
                                     @Param("totalType") Integer totalType,
                                     @Param("totalType") Integer totalType,
                                     @Param("tableName") String tableName);
                                     @Param("tableName") String tableName);
 
 

+ 62 - 72
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.constant.SecurityConstants;
+import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.common.security.util.SecurityUtils;
@@ -282,7 +283,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
 
         //获取今日新增用户
         //获取今日新增用户
         Integer userAddToDay = statUserGetHomeAmoutVO.getUserAddToDay();
         Integer userAddToDay = statUserGetHomeAmoutVO.getUserAddToDay();
-        List<String> todayList = Arrays.asList(today);
+        List<String> todayList = Collections.singletonList(today);
         List<TrendTimesVO> userAddTrendToday = kxsUserNewTradeMapper.getUserAddTrend(userId, todayList, 1, 1);
         List<TrendTimesVO> userAddTrendToday = kxsUserNewTradeMapper.getUserAddTrend(userId, todayList, 1, 1);
         for (TrendTimesVO trendTimesVO : userAddTrendToday) {
         for (TrendTimesVO trendTimesVO : userAddTrendToday) {
             userAddToDay += trendTimesVO.getTotal();
             userAddToDay += trendTimesVO.getTotal();
@@ -291,7 +292,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
 
         //获取本月新增用户
         //获取本月新增用户
         Integer userAddMonth = statUserGetHomeAmoutVO.getUserAddMonth();
         Integer userAddMonth = statUserGetHomeAmoutVO.getUserAddMonth();
-        List<String> monthList = Arrays.asList(month);
+        List<String> monthList = Collections.singletonList(month);
         List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2, 1);
         List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2, 1);
         for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
         for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
             userAddMonth += trendTimesVO.getTotal();
             userAddMonth += trendTimesVO.getTotal();
@@ -319,10 +320,11 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     @Override
     @Override
     public R getMyTrade(StatUserGetMyTradeDTO param) {
     public R getMyTrade(StatUserGetMyTradeDTO param) {
         Long userId = SecurityUtils.getUser().getId();
         Long userId = SecurityUtils.getUser().getId();
+        param.setUserId(userId);
         String month = param.getMonth();
         String month = param.getMonth();
-        String type = param.getType();
+        Integer type = param.getType();
         //拼接表名
         //拼接表名
-        String tableName = PREFIX_TABLE_NAME + month;
+        String tableName = CommonConstants.USER_TABLE_PREFIX + param.getMonth();
         StatUserGetMyTradeVO statUserGetMyTradeVO = new StatUserGetMyTradeVO();
         StatUserGetMyTradeVO statUserGetMyTradeVO = new StatUserGetMyTradeVO();
         KxsUserTrade kxsUserPosTrade = new KxsUserTrade();
         KxsUserTrade kxsUserPosTrade = new KxsUserTrade();
         //获取pos交易额
         //获取pos交易额
@@ -376,7 +378,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
 
 
 
         //助力宝交易额
         //助力宝交易额
-        TotalTradeAmtVO totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, month, 2, Integer.valueOf(type));
+        TotalTradeAmtVO totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, month, 2, type);
         BigDecimal zlbAmt = BigDecimal.ZERO;
         BigDecimal zlbAmt = BigDecimal.ZERO;
         if (totalTradeAmtVO != null) {
         if (totalTradeAmtVO != null) {
             zlbAmt = totalTradeAmtVO.getZlbAmt();
             zlbAmt = totalTradeAmtVO.getZlbAmt();
@@ -384,7 +386,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetMyTradeVO.setZlbAmount(zlbAmt);//助力宝
         statUserGetMyTradeVO.setZlbAmount(zlbAmt);//助力宝
 
 
 
 
-        totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, month, 2, Integer.valueOf(type));
+        totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, month, 2, type);
         BigDecimal lkbActAmt = BigDecimal.ZERO;
         BigDecimal lkbActAmt = BigDecimal.ZERO;
         BigDecimal lkbAmt = BigDecimal.ZERO;
         BigDecimal lkbAmt = BigDecimal.ZERO;
         if (totalTradeAmtVO != null) {
         if (totalTradeAmtVO != null) {
@@ -395,7 +397,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetMyTradeVO.setLkbAmount(lkbAmt);//来客吧非活动
         statUserGetMyTradeVO.setLkbAmount(lkbAmt);//来客吧非活动
 
 
 
 
-        totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, month, 2, Integer.valueOf(type));
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, month, 2, type);
         BigDecimal gdAmount = BigDecimal.ZERO;
         BigDecimal gdAmount = BigDecimal.ZERO;
         if (totalTradeAmtVO != null) {
         if (totalTradeAmtVO != null) {
             gdAmount = totalTradeAmtVO.getGdAmount();
             gdAmount = totalTradeAmtVO.getGdAmount();
@@ -403,7 +405,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetMyTradeVO.setGdTelephoneCharge(gdAmount);//广电话费
         statUserGetMyTradeVO.setGdTelephoneCharge(gdAmount);//广电话费
 
 
         //广电交易额
         //广电交易额
-        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, month, 2, Integer.valueOf(type));
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, month, 2, type);
         BigDecimal gdActivityAmount = BigDecimal.ZERO;
         BigDecimal gdActivityAmount = BigDecimal.ZERO;
         if (totalTradeAmtVO != null) {
         if (totalTradeAmtVO != null) {
             Integer gdCount = totalTradeAmtVO.getGdCount();
             Integer gdCount = totalTradeAmtVO.getGdCount();
@@ -419,7 +421,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //获取指定月新增用户
         //获取指定月新增用户
         Integer userAddMonth = 0;
         Integer userAddMonth = 0;
         List<String> monthList = Arrays.asList(month);
         List<String> monthList = Arrays.asList(month);
-        List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2, Integer.valueOf(type));
+        List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2, type);
         for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
         for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
             userAddMonth += trendTimesVO.getTotal();
             userAddMonth += trendTimesVO.getTotal();
         }
         }
@@ -430,7 +432,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetMyTradeVO.setTotalUserCount(totalUserCount != null ? totalUserCount : 0);//总用户
         statUserGetMyTradeVO.setTotalUserCount(totalUserCount != null ? totalUserCount : 0);//总用户
 
 
         //获取累计全部激活商户
         //获取累计全部激活商户
-        Integer merchantAddMonth = kxsUserActTradeMapper.getUserActListByAll(userId, Integer.valueOf(type), 1, 3, null);
+        Integer merchantAddMonth = kxsUserActTradeMapper.getUserActListByAll(userId, type, 1, 3, null);
         statUserGetMyTradeVO.setActivateMerchantCount(merchantAddMonth);//商户总激活
         statUserGetMyTradeVO.setActivateMerchantCount(merchantAddMonth);//商户总激活
 
 
         //获取累计全部激活码牌
         //获取累计全部激活码牌
@@ -438,9 +440,9 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetMyTradeVO.setActivateSignCount(signCount != null ? signCount : 0);//码牌
         statUserGetMyTradeVO.setActivateSignCount(signCount != null ? signCount : 0);//码牌
 
 
         //获取
         //获取
-        Integer simCount = kxsUserActTradeMapper.getUserActListByAll(userId, Integer.valueOf(type), 2, 2, Integer.valueOf(month));
+        Integer simCount = kxsUserActTradeMapper.getUserActListByAll(userId, type, 2, 2, Integer.valueOf(month));
         statUserGetMyTradeVO.setActivateSIMCount(simCount != null ? simCount : 0);//存量激活sim卡
         statUserGetMyTradeVO.setActivateSIMCount(simCount != null ? simCount : 0);//存量激活sim卡
-        Integer simToMonthCount = kxsUserActTradeMapper.getUserActListByAll(userId, Integer.valueOf(type), 2, 1, Integer.valueOf(month));
+        Integer simToMonthCount = kxsUserActTradeMapper.getUserActListByAll(userId, type, 2, 1, Integer.valueOf(month));
         statUserGetMyTradeVO.setActivateSIMToMonthCount(simToMonthCount != null ? simToMonthCount : 0);//当月
         statUserGetMyTradeVO.setActivateSIMToMonthCount(simToMonthCount != null ? simToMonthCount : 0);//当月
         statUserGetMyTradeVO.setType(param.getType());
         statUserGetMyTradeVO.setType(param.getType());
         return R.ok(statUserGetMyTradeVO);
         return R.ok(statUserGetMyTradeVO);
@@ -491,105 +493,93 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     @Override
     @Override
     public R getTradeDetail(StatUserGetTradeDetailDTO param) {
     public R getTradeDetail(StatUserGetTradeDetailDTO param) {
         Integer totalType = param.getTotalType();//0:个人 1:计奖
         Integer totalType = param.getTotalType();//0:个人 1:计奖
-        Integer date = param.getDate();//该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
+        Integer month = param.getDate();//该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
         Integer getType = param.getGetType();// 1获取日详情 2获取月详情
         Integer getType = param.getGetType();// 1获取日详情 2获取月详情
         Integer tradeType = param.getTradeType();//1获取增量 2获取存量 3获取全部
         Integer tradeType = param.getTradeType();//1获取增量 2获取存量 3获取全部
         Long userId = param.getUserId();//用户id
         Long userId = param.getUserId();//用户id
-        Long brandId = param.getBrandId();//品牌id
-        String month;
-        // 检查字符串长度是否至少为6个字符(yyyyMM)
-        if (date.toString().length() >= 6) {
-            // 截取前6个字符(yyyyMM)
-            month = date.toString().substring(0, 6);
-            // 现在yearMonth包含了yyyyMM格式的字符串
-            System.out.println(month); // 输出结果
-        } else {
-            return R.failed("date格式错误");
+        if(userId == null || userId == 0){
+            userId = SecurityUtils.getUser().getId();
         }
         }
+        Integer brandId = param.getBrandId();//品牌id
+
         String tableName;
         String tableName;
-        //拼接表名
-        if (tradeType.equals(3)) {
-            tableName = PREFIX_TABLE_NAME + month;
-        } else if (tradeType.equals(2)) {
-            tableName = PREFIX_TABLE_NAME_BEFORE + month;
-        } else if (tradeType.equals(1)) {
-            tableName = PREFIX_TABLE_NAME_AFTER + month;
-        } else {
-            return R.failed("获取类型错误");
-        }
-        KxsUserTrade kxsUserTradePos = null;
-        //查询pos交易
-        try {
-            kxsUserTradePos = baseMapper.getAllUserTrderSum(userId, date, getType, 0, brandId, totalType, tableName);//pos
-        }catch (Exception e){
-            log.info(e.getMessage());
+        switch (tradeType){
+            case 1 -> tableName = CommonConstants.USER_TABLE_AFTER_PREFIX + month;
+            case 2 -> tableName = CommonConstants.USER_TABLE_BEFORE_PREFIX + month;
+            case 3 -> tableName = CommonConstants.USER_TABLE_PREFIX + month;
+            default ->  throw new GlobalCustomerException("参数错误");
         }
         }
 
 
 
 
+
         StatUserGetTradeDetailVO statUserGetTradeDetailVO = new StatUserGetTradeDetailVO();
         StatUserGetTradeDetailVO statUserGetTradeDetailVO = new StatUserGetTradeDetailVO();
-        statUserGetTradeDetailVO.setDate(date);//交易时间
-        statUserGetTradeDetailVO.setBrandId(Math.toIntExact(brandId));//品牌
+        statUserGetTradeDetailVO.setDate(month);//交易时间
+        statUserGetTradeDetailVO.setBrandId(brandId);//品牌
+
+        //扶持期
+        StatUserTradeVo statUserTradeVo = new StatUserTradeVo();
+        //稳定期
+        StatUserTradeVo proStatUserTradeVo = new StatUserTradeVo();
+        //稳定期A
+        StatUserTradeVo proAstatUserTradeVo = new StatUserTradeVo();
+        //稳定期B
+        StatUserTradeVo proBstatUserTradeVo = new StatUserTradeVo();
+
+        //pos交易
+        KxsUserTrade kxsUserTradePos = baseMapper.getAllUserTrderSum(userId, month, getType, 0, brandId, totalType, tableName);
         if (kxsUserTradePos != null) {
         if (kxsUserTradePos != null) {
-            StatUserTradeVo statUserTradeVo = new StatUserTradeVo();
             statUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getHelpDirectTradeAmt());//扶持期贷记卡
             statUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getHelpDirectTradeAmt());//扶持期贷记卡
             statUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getHelpDebitTradeAmt());//扶持期借记卡
             statUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getHelpDebitTradeAmt());//扶持期借记卡
             statUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getHelpDebitCapTradeAmt());//扶持期借记卡封顶交易额
             statUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getHelpDebitCapTradeAmt());//扶持期借记卡封顶交易额
             statUserTradeVo.setDebitCapNum(kxsUserTradePos.getHelpDebitCapNum());//扶持期借记卡封顶交易笔数
             statUserTradeVo.setDebitCapNum(kxsUserTradePos.getHelpDebitCapNum());//扶持期借记卡封顶交易笔数
             BigDecimal helpNotCapTrade = kxsUserTradePos.getHelpDebitTradeAmt().subtract(kxsUserTradePos.getHelpDebitCapTradeAmt());//非封顶交易额
             BigDecimal helpNotCapTrade = kxsUserTradePos.getHelpDebitTradeAmt().subtract(kxsUserTradePos.getHelpDebitCapTradeAmt());//非封顶交易额
             statUserTradeVo.setCloudTrade(helpNotCapTrade);//扶持期非封顶借记卡交易额
             statUserTradeVo.setCloudTrade(helpNotCapTrade);//扶持期非封顶借记卡交易额
-            statUserGetTradeDetailVO.setHelpDirectTradeAmt(statUserTradeVo);
-
-
+            statUserTradeVo.setPosTrade(kxsUserTradePos.getHelpDirectTradeAmt().add(kxsUserTradePos.getHelpDebitTradeAmt()));//交易总和
 
 
-            StatUserTradeVo proStatUserTradeVo = new StatUserTradeVo();
             proStatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProDirectTradeAmt());//稳定期贷记卡
             proStatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProDirectTradeAmt());//稳定期贷记卡
             proStatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProDebitTradeAmt());//稳定期借记卡
             proStatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProDebitTradeAmt());//稳定期借记卡
             proStatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProDebitCapTradeAmt());//稳定期借记卡封顶交易额
             proStatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProDebitCapTradeAmt());//稳定期借记卡封顶交易额
             proStatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProDebitCapNum());//稳定期借记卡封顶交易笔数
             proStatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProDebitCapNum());//稳定期借记卡封顶交易笔数
             BigDecimal proNotCapTrade = kxsUserTradePos.getProDebitTradeAmt().subtract(kxsUserTradePos.getProDebitCapTradeAmt());//非封顶交易额
             BigDecimal proNotCapTrade = kxsUserTradePos.getProDebitTradeAmt().subtract(kxsUserTradePos.getProDebitCapTradeAmt());//非封顶交易额
             proStatUserTradeVo.setCloudTrade(proNotCapTrade);//稳定期非封顶借记卡交易额
             proStatUserTradeVo.setCloudTrade(proNotCapTrade);//稳定期非封顶借记卡交易额
-            statUserGetTradeDetailVO.setProDirectTradeAmt(proStatUserTradeVo);
+            proStatUserTradeVo.setPosTrade(kxsUserTradePos.getProDirectTradeAmt().add(kxsUserTradePos.getProDebitTradeAmt()));//交易总和
 
 
-
-
-            StatUserTradeVo proAstatUserTradeVo = new StatUserTradeVo();
             proAstatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProADirectTradeAmt());//稳A贷记
             proAstatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProADirectTradeAmt());//稳A贷记
             proAstatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProADebitTradeAmt());//稳A借记
             proAstatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProADebitTradeAmt());//稳A借记
             proAstatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProADebitCapTradeAmt());//稳定期A借记卡封顶交易额
             proAstatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProADebitCapTradeAmt());//稳定期A借记卡封顶交易额
             proAstatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProADebitCapNum());//稳定期A借记卡封顶交易笔数
             proAstatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProADebitCapNum());//稳定期A借记卡封顶交易笔数
             BigDecimal proANotCapTrade = kxsUserTradePos.getProADebitTradeAmt().subtract(kxsUserTradePos.getProADebitCapTradeAmt());//非封顶交易额
             BigDecimal proANotCapTrade = kxsUserTradePos.getProADebitTradeAmt().subtract(kxsUserTradePos.getProADebitCapTradeAmt());//非封顶交易额
             proAstatUserTradeVo.setCloudTrade(proANotCapTrade);//稳定期b非封顶借记卡交易额
             proAstatUserTradeVo.setCloudTrade(proANotCapTrade);//稳定期b非封顶借记卡交易额
-            statUserGetTradeDetailVO.setProADirectTradeAmt(proAstatUserTradeVo);
-
+            proAstatUserTradeVo.setPosTrade(kxsUserTradePos.getProADirectTradeAmt().add(kxsUserTradePos.getProADebitTradeAmt()));//交易总和
 
 
-            StatUserTradeVo proBstatUserTradeVo = new StatUserTradeVo();
             proBstatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProBDirectTradeAmt());//稳定期B借记卡
             proBstatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProBDirectTradeAmt());//稳定期B借记卡
             proBstatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProBDebitTradeAmt());//稳定期B贷记卡
             proBstatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProBDebitTradeAmt());//稳定期B贷记卡
             proBstatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期B借记卡封顶交易额
             proBstatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期B借记卡封顶交易额
             proBstatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProBDebitCapNum());//稳定期B借记卡封顶交易笔数
             proBstatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProBDebitCapNum());//稳定期B借记卡封顶交易笔数
             BigDecimal proBNotCapTrade = kxsUserTradePos.getProBDebitTradeAmt().subtract(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期b非封顶交易额
             BigDecimal proBNotCapTrade = kxsUserTradePos.getProBDebitTradeAmt().subtract(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期b非封顶交易额
             proBstatUserTradeVo.setCloudTrade(proBNotCapTrade);//稳定期b非封顶借记卡交易额
             proBstatUserTradeVo.setCloudTrade(proBNotCapTrade);//稳定期b非封顶借记卡交易额
-            statUserGetTradeDetailVO.setProBDirectTradeAmt(proBstatUserTradeVo);
-            KxsUserTrade kxsUserTradeCloud = null;
-            try {
-                kxsUserTradeCloud = baseMapper.getAllUserTrderSum(userId, date, getType, 1, brandId, totalType, tableName);//云闪付
-            }catch (Exception e){
-                log.info(e.getMessage());
-            }
-            if (kxsUserTradeCloud != null) {
-                BigDecimal helpTrade = kxsUserTradeCloud.getHelpDebitCapTradeAmt().add(kxsUserTradeCloud.getHelpDirectTradeAmt());//计算扶持期云闪付交易额
-                statUserTradeVo.setCloudTrade(helpTrade);//扶持期云闪付交易额
+            proBstatUserTradeVo.setPosTrade(kxsUserTradePos.getProBDirectTradeAmt().add(kxsUserTradePos.getProBDebitTradeAmt()));//交易总和
+        }
+        //云闪付
+        KxsUserTrade kxsUserTradeCloud = baseMapper.getAllUserTrderSum(userId, month, getType, 1, brandId, totalType, tableName);
+        if (kxsUserTradeCloud != null) {
+            BigDecimal helpTrade = kxsUserTradeCloud.getHelpDebitCapTradeAmt().add(kxsUserTradeCloud.getHelpDirectTradeAmt());//计算扶持期云闪付交易额
+            statUserTradeVo.setCloudTrade(helpTrade);//扶持期云闪付交易额
 
 
-                BigDecimal proTrade = kxsUserTradeCloud.getProDebitCapTradeAmt().add(kxsUserTradeCloud.getProDirectTradeAmt());//计算稳定期云闪付交易额
-                proStatUserTradeVo.setCloudTrade(proTrade);//稳定期云闪付交易额
+            BigDecimal proTrade = kxsUserTradeCloud.getProDebitCapTradeAmt().add(kxsUserTradeCloud.getProDirectTradeAmt());//计算稳定期云闪付交易额
+            proStatUserTradeVo.setCloudTrade(proTrade);//稳定期云闪付交易额
 
 
-                BigDecimal proATrade = kxsUserTradeCloud.getProADebitCapTradeAmt().add(kxsUserTradeCloud.getProADirectTradeAmt());//计算稳定期b云闪付交易额
-                proAstatUserTradeVo.setCloudTrade(proATrade);//稳定期A云闪付交易额
+            BigDecimal proATrade = kxsUserTradeCloud.getProADebitCapTradeAmt().add(kxsUserTradeCloud.getProADirectTradeAmt());//计算稳定期b云闪付交易额
+            proAstatUserTradeVo.setCloudTrade(proATrade);//稳定期A云闪付交易额
 
 
-                BigDecimal proBTrade = kxsUserTradeCloud.getProBDebitCapTradeAmt().add(kxsUserTradeCloud.getProBDirectTradeAmt());//计算稳定期a云闪付交易额
-                proBstatUserTradeVo.setCloudTrade(proBTrade);//稳定期B云闪付交易额
-            }
+            BigDecimal proBTrade = kxsUserTradeCloud.getProBDebitCapTradeAmt().add(kxsUserTradeCloud.getProBDirectTradeAmt());//计算稳定期a云闪付交易额
+            proBstatUserTradeVo.setCloudTrade(proBTrade);//稳定期B云闪付交易额
         }
         }
+        statUserGetTradeDetailVO.setHelpDirectTradeAmt(statUserTradeVo);
+        statUserGetTradeDetailVO.setProDirectTradeAmt(proStatUserTradeVo);
+        statUserGetTradeDetailVO.setProADirectTradeAmt(proAstatUserTradeVo);
+        statUserGetTradeDetailVO.setProBDirectTradeAmt(proBstatUserTradeVo);
+
         return R.ok(statUserGetTradeDetailVO);
         return R.ok(statUserGetTradeDetailVO);
     }
     }
 
 
@@ -622,7 +612,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //构造查询Dto
         //构造查询Dto
         StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
         StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
         statUserGetMyTradeDTO.setMonth(month);
         statUserGetMyTradeDTO.setMonth(month);
-        statUserGetMyTradeDTO.setType(totalType.toString());
+        statUserGetMyTradeDTO.setType(totalType);
         for (int i = times.size() - 1; i >= 0; i--) {
         for (int i = times.size() - 1; i >= 0; i--) {
             String time = times.get(i);
             String time = times.get(i);
             //查询交易额
             //查询交易额
@@ -657,7 +647,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //构造查询Dto
         //构造查询Dto
         StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
         StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
         statUserGetMyTradeDTO.setMonth(month);
         statUserGetMyTradeDTO.setMonth(month);
-        statUserGetMyTradeDTO.setType(totalType.toString());
+        statUserGetMyTradeDTO.setType(totalType);
         ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = new ArrayList<>();
         ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = new ArrayList<>();
         //查询进半年需要循环查询不同的表
         //查询进半年需要循环查询不同的表
         for (int i = times.size() - 1; i >= 0; i--) {
         for (int i = times.size() - 1; i >= 0; i--) {