Browse Source

Merge commit 'e33cd3b66aacafe1f42b51330f4c8503f649a78a' into develop

* commit 'e33cd3b66aacafe1f42b51330f4c8503f649a78a':
  补充接口  计奖交易-交易统计页面-交易明细
  修复了小分仓的bug  以及仓库订单的bug
  修了了计奖交易-统计页面
  修了了计奖交易-统计页面
  计奖交易接口已完成(待校验数据)
mac 2 years ago
parent
commit
d750ecbd72
27 changed files with 918 additions and 206 deletions
  1. 60 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetTradeDetailDTO.java
  2. 213 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetTradeDetailVO.java
  3. 1 1
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetUserTradeStatListVO.java
  4. 11 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java
  5. 3 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserGdTradeMapper.java
  6. 21 2
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserTradeMapper.java
  7. 2 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserTradeService.java
  8. 432 172
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java
  9. 1 1
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsLkbTradeMapper.xml
  10. 17 6
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserGdTradeMapper.xml
  11. 35 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserTradeMapper.xml
  12. 5 0
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeOrder/StoreOrderListVO.java
  13. 5 2
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeRecycle/StoreRecycleMachineListVO.java
  14. 2 2
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreAdvanceController.java
  15. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsMachineAdvanceMapper.java
  16. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsMachineApplyMapper.java
  17. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsMachineAdvanceService.java
  18. 9 9
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineAdvanceServiceImpl.java
  19. 2 2
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java
  20. 2 1
      kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineApplyMapper.xml
  21. 21 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/ConcealParentDTO.java
  22. 5 1
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/UserMyUserDetailVO.java
  23. 5 1
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/UserMyUserListVO.java
  24. 6 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/userLevel/LevelsVO.java
  25. 20 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java
  26. 14 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java
  27. 23 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

+ 60 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetTradeDetailDTO.java

@@ -0,0 +1,60 @@
+package com.kxs.stat.api.dto.statUser;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+
+/**
+ * 计奖交易-交易统计页面-交易明细-dto
+ *
+ * @author 系统
+ * @date 2024-06-03 16:33:51
+ */
+@Data
+public class StatUserGetTradeDetailDTO {
+
+    /**
+     * 0:个人 1:计奖
+     */
+    @Schema(description = "0:个人 1:计奖")
+    private Integer totalType;
+
+
+    /**
+     * 该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
+     */
+    @Schema(description = "只有type=1时该参数有效获取月份格式yyyyMM")
+    private Integer date;
+
+
+    /**
+     * 1获取日详情 2获取月详情
+     */
+    @Schema(description = "1获取日详情 2获取月详情")
+    private Integer getType;
+
+
+    /**
+     * 1获取增量 2获取存量 3获取全部
+     */
+    @Schema(description = "1获取增量 2获取存量 3获取全部")
+    private Integer tradeType;
+
+
+    /**
+     * 查询用户 传0为查询自己
+     */
+    @Schema(description = "查询用户 传0为查询自己")
+    private Long userId;
+
+
+    /**
+     * 品牌id
+     */
+    @Schema(description = "品牌id")
+    private Long brandId;
+
+
+
+
+}

+ 213 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetTradeDetailVO.java

@@ -0,0 +1,213 @@
+package com.kxs.stat.api.vo.statUser;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 计奖交易-交易统计页面-交易明细vo
+ *
+ * @author 系统
+ * @date 2024-06-03 16:33:51
+ */
+@Data
+@Schema(description = "计奖交易-交易统计页面-交易明细返回实体")
+public class StatUserGetTradeDetailVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 交易时间
+     */
+    @Schema(description = "交易时间")
+    private Integer date;
+
+
+
+
+    /**
+     * 品牌ID
+     */
+    @Schema(description = "品牌ID")
+    private Integer brandId;
+
+
+    /**
+     * 扶持期贷记卡交易额
+     */
+    @Schema(description = "扶持期贷记卡交易额")
+    private BigDecimal helpDirectTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 扶持期借记卡
+     */
+    @Schema(description = "扶持期借记卡")
+    private BigDecimal helpDebitTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期贷记卡
+     */
+    @Schema(description = "稳定期贷记卡")
+    private BigDecimal proDirectTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期借记卡
+     */
+    @Schema(description = "稳定期借记卡")
+    private BigDecimal proDebitTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期A贷记卡
+     */
+    @Schema(description = "稳定期A贷记卡")
+    private BigDecimal proADirectTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期A借记卡
+     */
+    @Schema(description = "稳定期A借记卡")
+    private BigDecimal proADebitTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 扶持期借记卡封顶交易额
+     */
+    @Schema(description = "扶持期借记卡封顶交易额")
+    private BigDecimal helpDebitCapTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 扶持期借记卡封顶交易笔数
+     */
+    @Schema(description = "扶持期借记卡封顶交易笔数")
+    private Integer helpDebitCapNum = 0;
+
+
+    /**
+     * 稳定期借记卡封顶交易额
+     */
+    @Schema(description = "稳定期借记卡封顶交易额")
+    private BigDecimal proDebitCapTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期借记卡封顶交易笔数
+     */
+    @Schema(description = "稳定期借记卡封顶交易笔数")
+    private Integer proDebitCapNum = 0;
+
+
+    /**
+     * 稳定期A借记卡封顶交易额
+     */
+    @Schema(description = "稳定期A借记卡封顶交易额")
+    private BigDecimal proADebitCapTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期A借记卡封顶交易笔数
+     */
+    @Schema(description = "稳定期A借记卡封顶交易笔数")
+    private Integer proADebitCapNum = 0;
+
+
+    /**
+     * 稳定期B借记卡
+     */
+    @Schema(description = "稳定期B借记卡")
+    private BigDecimal proBDebitTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期B贷记卡
+     */
+    @Schema(description = "稳定期B贷记卡")
+    private BigDecimal proBDirectTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期B借记卡封顶交易额
+     */
+    @Schema(description = "稳定期B借记卡封顶交易额")
+    private BigDecimal proBDebitCapTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期B借记卡封顶交易笔数
+     */
+    @Schema(description = "稳定期B借记卡封顶交易笔数")
+    private Integer proBDebitCapNum = 0;
+
+
+    /**
+     * 稳定期A云闪付交易额
+     */
+    @Schema(description = "稳定期A云闪付交易额")
+    private Object proACloudTrade = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期B云闪付交易额
+     */
+    @Schema(description = "稳定期B云闪付交易额")
+    private Object proBCloudTrade = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期云闪付交易额
+     */
+    @Schema(description = "稳定期云闪付交易额")
+    private Object proCloudTrade = BigDecimal.ZERO;
+
+
+    /**
+     * 扶持期云闪付交易额
+     */
+    @Schema(description = "扶持期云闪付交易额")
+    private Object helpCloudTrade = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期a非封顶借记卡交易额
+     */
+    @Schema(description = "稳定期a非封顶借记卡交易额")
+    private Object proADebitNotCapTrade = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期b非封顶借记卡交易额
+     */
+    @Schema(description = "稳定期b非封顶借记卡交易额")
+    private Object proBDebitNotCapTrade = BigDecimal.ZERO;
+
+
+    /**
+     * 稳定期非封顶借记卡交易额
+     */
+    @Schema(description = "稳定期非封顶借记卡交易额")
+    private Object proDebitNotCapTrade = BigDecimal.ZERO;
+
+    /**
+     * 扶持期b非封顶借记卡交易额
+     */
+    @Schema(description = "扶持期b非封顶借记卡交易额")
+    private Object helpBDebitNotCapTrade = BigDecimal.ZERO;
+
+
+
+	
+
+}

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

@@ -22,7 +22,7 @@ public class StatUserGetUserTradeStatListVO implements Serializable {
 	@Serial
 	private static final long serialVersionUID = 1L;
 
-
+    private String time;
     /**
      * 总交易额
      */

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

@@ -6,6 +6,7 @@ import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.stat.api.dto.statUser.StatUserGetMyTradeDTO;
 
+import com.kxs.stat.api.dto.statUser.StatUserGetTradeDetailDTO;
 import com.kxs.stat.api.dto.statUser.StatUserGetUserStatByDayOrMonthDTO;
 import com.kxs.stat.api.dto.statUser.StatUserGetUserTradeListDTO;
 import com.kxs.stat.api.model.KxsUserActTrade;
@@ -116,6 +117,15 @@ public class KxsStatUserController {
     public R getMyTrade(@ParameterObject StatUserGetMyTradeDTO param) {
         return kxsUserTradeService.getMyTrade(param);
     }
-
+    /**
+     * 计奖交易-交易统计页面-交易明细
+     *
+     * @param param 查询实体
+     * @return 计奖交易-交易统计页面-交易明细
+     */
+    @GetMapping("/getTradeDetail")
+    public R getTradeDetail(@ParameterObject StatUserGetTradeDetailDTO param) {
+        return kxsUserTradeService.getTradeDetail(param);
+    }
 }
 

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

@@ -17,7 +17,9 @@ public interface KxsUserGdTradeMapper extends BaseMapper<KxsUserGdTrade> {
     /**
      * 获取广电卡激活量
      * @param userId 用户id
-     * @param date 日
+     * @param date 日期
+     * @param type 1 日  2 月  3查询当日及之前   4查询当月及之前
+     * @param totalType 0个人  1团队
      * @return
      */
     TotalTradeAmtVO getGdActCount(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type,@Param("totalType") Integer totalType);

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

@@ -100,10 +100,29 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
 
     /**
      * 获取我的业绩
-     * @param param type 1:个人 2:计奖
+     * @param param type 1:个人 2:计奖   month  无用  不传
      * @param tradeType  0pos  1云闪付
+     * @param date 该参数为是否根据日查询   不根据传""
      * @return
      */
-    KxsUserTrade getMyPosOrCloudTrade(@Param("param")StatUserGetMyTradeDTO param, @Param("tableName")String tableName, @Param("tradeType")Integer tradeType,@Param("userId")Long userId);
+    KxsUserTrade getMyPosOrCloudTrade(@Param("param")StatUserGetMyTradeDTO param, @Param("tableName")String tableName, @Param("tradeType")Integer tradeType,@Param("userId")Long userId,@Param("date") String date);
+
+    /**
+     * 查询用户所有交易额汇总
+     * @param userId 用户id
+     * @param date 时间参数
+     * @param getType  1获取日详情 2获取月详情
+     * @param tradeType 0pos  1云闪付
+     * @param brandId 品牌id
+     * @param totalType 0:个人 1:计奖
+     * @return
+     */
+    KxsUserTrade getAllUserTrderSum(@Param("userId")Long userId,
+                                    @Param("date") Integer date,
+                                    @Param("getType") Integer getType,
+                                    @Param("tradeType")Integer tradeType,
+                                    @Param("brandId") Long brandId,
+                                    @Param("totalType") Integer totalType,
+                                    @Param("tableName") String tableName);
 }
 

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

@@ -3,6 +3,7 @@ package com.kxs.stat.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.stat.api.dto.statUser.StatUserGetMyTradeDTO;
+import com.kxs.stat.api.dto.statUser.StatUserGetTradeDetailDTO;
 import com.kxs.stat.api.dto.statUser.StatUserGetUserStatByDayOrMonthDTO;
 import com.kxs.stat.api.dto.statUser.StatUserGetUserTradeListDTO;
 import com.kxs.stat.api.model.KxsUserTrade;
@@ -54,5 +55,6 @@ public interface KxsUserTradeService extends IService<KxsUserTrade> {
      */
     R getUserTradeStatList(StatUserGetUserTradeListDTO param);
 
+    R getTradeDetail(StatUserGetTradeDetailDTO param);
 }
 

+ 432 - 172
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -12,6 +12,7 @@ import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.stat.api.dto.statUser.StatUserGetMyTradeDTO;
+import com.kxs.stat.api.dto.statUser.StatUserGetTradeDetailDTO;
 import com.kxs.stat.api.dto.statUser.StatUserGetUserStatByDayOrMonthDTO;
 import com.kxs.stat.api.dto.statUser.StatUserGetUserTradeListDTO;
 import com.kxs.stat.api.model.KxsLkbTrade;
@@ -28,7 +29,6 @@ import com.kxs.user.api.dto.kxsapp.IntegralStatDTO;
 import com.kxs.user.api.feign.RemoteKxsUserService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.cursor.Cursor;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
@@ -66,6 +66,11 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
     private final KxsZlbTradeMapper kxsZlbTradeMapper;
     private final static String PREFIX_TABLE_NAME = "kxs_user_trade_";
+
+    private final static String PREFIX_TABLE_NAME_AFTER = "kxs_user_trade_after_";
+    private final static String PREFIX_TABLE_NAME_BEFORE = "kxs_user_trade_before_";
+
+
     private final static String PREFIX_TABLE_NAME_TEMP = "kxs_user_trade_temp_";
     private final KxsUserGdTradeMapper kxsUserGdTradeMapper;
     private final KxsLkbActTradeMapper kxsLkbActTradeMapper;
@@ -216,7 +221,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         List<String> lastMonthTimes = null;
         if (type == 1) {
             //获取今日月份 用以校验是否跨越月份
-            int toDayMonth =  now.getMonthValue();
+            int toDayMonth = now.getMonthValue();
             //近七日
             for (int i = 0; i < 7; i++) {
                 // 计算每一天的日期
@@ -225,16 +230,17 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.PURE_DATE_PATTERN);
                 //获取当前日的月份值
                 int monthValue = now.getMonthValue();//判断今日月份值与当前查询日月份是否一致
-                if (toDayMonth == monthValue){
+                if (toDayMonth == monthValue) {
                     //一致加入正常查询序列
                     times.add(currentDateString);
-                }else {
+                } else {
                     //不一致构造加入二次查询序列
                     lastMonthTimes = new ArrayList<>();
                     lastMonthTimes.add(currentDateString);
                 }
             }
-            StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = getStatUserGetUserStatByDayOrMonthVO(userId, now, times, lastMonthTimes,type,totalType);
+            //开始查询   该方法整合全部查询
+            StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = getStatUserGetUserStatByDayOrMonthVO(userId, now, times, lastMonthTimes, type, totalType);
             return R.ok(statUserGetUserStatByDayOrMonthVO);
         } else if (type == 2) {
             //近半年
@@ -245,7 +251,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.SIMPLE_MONTH_PATTERN);
                 times.add(currentDateString);
             }
-            StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = getStatUserGetUserStatByDayOrMonthVO(userId, now, times, lastMonthTimes,type,totalType);
+            StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = getStatUserGetUserStatByDayOrMonthVO(userId, now, times, lastMonthTimes, type, totalType);
             return R.ok(statUserGetUserStatByDayOrMonthVO);
         } else {
             return R.failed("类型错误");
@@ -277,7 +283,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //获取今日新增用户
         Integer userAddToDay = statUserGetHomeAmoutVO.getUserAddToDay();
         List<String> todayList = Arrays.asList(today);
-        List<TrendTimesVO> userAddTrendToday = kxsUserNewTradeMapper.getUserAddTrend(userId, todayList, 1,1);
+        List<TrendTimesVO> userAddTrendToday = kxsUserNewTradeMapper.getUserAddTrend(userId, todayList, 1, 1);
         for (TrendTimesVO trendTimesVO : userAddTrendToday) {
             userAddToDay += trendTimesVO.getTotal();
         }
@@ -286,7 +292,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //获取本月新增用户
         Integer userAddMonth = statUserGetHomeAmoutVO.getUserAddMonth();
         List<String> monthList = Arrays.asList(month);
-        List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2,1);
+        List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2, 1);
         for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
             userAddMonth += trendTimesVO.getTotal();
         }
@@ -294,7 +300,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
         //获取今日新增商户
         Integer merchantAddToDay = statUserGetHomeAmoutVO.getMerchantAddToDay();
-        List<TrendTimesVO> userActListByDay = kxsUserActTradeMapper.getUserActListByDayOrMonth(monthList, userId, null, 1,1);
+        List<TrendTimesVO> userActListByDay = kxsUserActTradeMapper.getUserActListByDayOrMonth(monthList, userId, null, 1, 1);
         for (TrendTimesVO trendTimesVO : userActListByDay) {
             merchantAddToDay += trendTimesVO.getTotal();
         }
@@ -302,7 +308,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
         //获取本月新增商户
         Integer merchantAddMonth = statUserGetHomeAmoutVO.getMerchantAddMonth();
-        List<TrendTimesVO> userActListByMonth = kxsUserActTradeMapper.getUserActListByDayOrMonth(monthList, userId, null, 2,1);
+        List<TrendTimesVO> userActListByMonth = kxsUserActTradeMapper.getUserActListByDayOrMonth(monthList, userId, null, 2, 1);
         for (TrendTimesVO trendTimesVO : userActListByMonth) {
             merchantAddMonth += trendTimesVO.getTotal();
         }
@@ -314,31 +320,31 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     public R getMyTrade(StatUserGetMyTradeDTO param) {
         Long userId = SecurityUtils.getUser().getId();
         String month = param.getMonth();
-         String type = param.getType();
-         //拼接表名
+        String type = param.getType();
+        //拼接表名
         String tableName = PREFIX_TABLE_NAME + month;
         StatUserGetMyTradeVO statUserGetMyTradeVO = new StatUserGetMyTradeVO();
         KxsUserTrade kxsUserPosTrade = new KxsUserTrade();
         //获取pos交易额
         try {
             //此处存在查询的月份不在统计范围,找不到表的错误,直接包裹跳过视为当月无交易
-            kxsUserPosTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,0,userId);
-        }catch (Exception e){
+            kxsUserPosTrade = baseMapper.getMyPosOrCloudTrade(param, tableName, 0, userId, "");
+        } catch (Exception e) {
             log.info(e.getMessage());
         }
         BigDecimal posDebitAmount = BigDecimal.ZERO;
         BigDecimal posCreditAmount = BigDecimal.ZERO;
-        if (kxsUserPosTrade != null){
+        if (kxsUserPosTrade != null) {
             BigDecimal proBDirectTradeAmt = kxsUserPosTrade.getProBDirectTradeAmt();//稳定期B贷记卡
             BigDecimal proADirectTradeAmt = kxsUserPosTrade.getProADirectTradeAmt();//稳定期A贷记卡
-            BigDecimal proDirectTradeAmt =  kxsUserPosTrade.getProDirectTradeAmt();//稳定期贷记卡
+            BigDecimal proDirectTradeAmt = kxsUserPosTrade.getProDirectTradeAmt();//稳定期贷记卡
             BigDecimal helpDirectTradeAmt = kxsUserPosTrade.getHelpDirectTradeAmt();//扶持期贷记卡交易额
 
 
-            BigDecimal proBDebitTradeAmt =  kxsUserPosTrade.getProBDebitTradeAmt();//稳定期B借记卡
-            BigDecimal proADebitTradeAmt =  kxsUserPosTrade.getProADebitTradeAmt();//稳定期A借记卡
-            BigDecimal proDebitTradeAmt =   kxsUserPosTrade.getProDebitTradeAmt();//稳定期借记卡
-            BigDecimal helpDebitTradeAmt =  kxsUserPosTrade.getHelpDebitTradeAmt();//扶持期借记卡
+            BigDecimal proBDebitTradeAmt = kxsUserPosTrade.getProBDebitTradeAmt();//稳定期B借记卡
+            BigDecimal proADebitTradeAmt = kxsUserPosTrade.getProADebitTradeAmt();//稳定期A借记卡
+            BigDecimal proDebitTradeAmt = kxsUserPosTrade.getProDebitTradeAmt();//稳定期借记卡
+            BigDecimal helpDebitTradeAmt = kxsUserPosTrade.getHelpDebitTradeAmt();//扶持期借记卡
 
             //pos借记卡
             posDebitAmount = posDebitAmount.add(proBDebitTradeAmt).add(proADebitTradeAmt).add(proDebitTradeAmt).add(helpDebitTradeAmt);
@@ -351,12 +357,12 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //获取云闪付交易额
         try {
             //此处存在查询的月份不在统计范围,找不到表的错误,直接包裹跳过视为当月无交易
-            kxsUserCloudTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,1,userId);
-        }catch (Exception e){
+            kxsUserCloudTrade = baseMapper.getMyPosOrCloudTrade(param, tableName, 1, userId, "");
+        } catch (Exception e) {
             log.info(e.getMessage());
         }
         BigDecimal cloudAmount = BigDecimal.ZERO;
-        if (kxsUserCloudTrade != null){
+        if (kxsUserCloudTrade != null) {
             cloudAmount = cloudAmount.add(kxsUserCloudTrade.getProBDirectTradeAmt())
                     .add(kxsUserCloudTrade.getProADirectTradeAmt())
                     .add(kxsUserCloudTrade.getProDirectTradeAmt())
@@ -372,7 +378,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //助力宝交易额
         TotalTradeAmtVO totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, month, 2, Integer.valueOf(type));
         BigDecimal zlbAmt = BigDecimal.ZERO;
-        if (totalTradeAmtVO != null){
+        if (totalTradeAmtVO != null) {
             zlbAmt = totalTradeAmtVO.getZlbAmt();
         }
         statUserGetMyTradeVO.setZlbAmount(zlbAmt);//助力宝
@@ -381,7 +387,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, month, 2, Integer.valueOf(type));
         BigDecimal lkbActAmt = BigDecimal.ZERO;
         BigDecimal lkbAmt = BigDecimal.ZERO;
-        if (totalTradeAmtVO != null){
+        if (totalTradeAmtVO != null) {
             lkbActAmt = totalTradeAmtVO.getLkbActAmt();
             lkbAmt = totalTradeAmtVO.getLkbAmt();
         }
@@ -391,15 +397,15 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
         totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, month, 2, Integer.valueOf(type));
         BigDecimal gdAmount = BigDecimal.ZERO;
-        if (totalTradeAmtVO != null){
+        if (totalTradeAmtVO != null) {
             gdAmount = totalTradeAmtVO.getGdAmount();
         }
         statUserGetMyTradeVO.setGdTelephoneCharge(gdAmount);//广电话费
 
         //广电交易额
-        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, month,2, Integer.valueOf(type));
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, month, 2, Integer.valueOf(type));
         BigDecimal gdActivityAmount = BigDecimal.ZERO;
-        if (totalTradeAmtVO != null){
+        if (totalTradeAmtVO != null) {
             Integer gdCount = totalTradeAmtVO.getGdCount();
             //广电激活量 * 10000
             gdActivityAmount = gdActivityAmount.add(new BigDecimal(gdCount * 10000));
@@ -420,194 +426,448 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetMyTradeVO.setUserAddCount(userAddMonth);//新增用户
 
 
-
-        Integer totalUserCount = kxsUserNewTradeMapper.getUserAllTrend(userId,type);
-        statUserGetMyTradeVO.setTotalUserCount(totalUserCount != null? totalUserCount : 0);//总用户
+        Integer totalUserCount = kxsUserNewTradeMapper.getUserAllTrend(userId, type);
+        statUserGetMyTradeVO.setTotalUserCount(totalUserCount != null ? totalUserCount : 0);//总用户
 
         //获取累计全部激活商户
-        Integer merchantAddMonth = kxsUserActTradeMapper.getUserActListByAll(userId,Integer.valueOf(type),1,3,null);
+        Integer merchantAddMonth = kxsUserActTradeMapper.getUserActListByAll(userId, Integer.valueOf(type), 1, 3, null);
         statUserGetMyTradeVO.setActivateMerchantCount(merchantAddMonth);//商户总激活
 
         //获取累计全部激活码牌
-        Integer signCount = kxsLkbActTradeMapper.getSignCount(userId,type);
-        statUserGetMyTradeVO.setActivateSignCount(signCount != null? signCount:0);//码牌
+        Integer signCount = kxsLkbActTradeMapper.getSignCount(userId, type);
+        statUserGetMyTradeVO.setActivateSignCount(signCount != null ? signCount : 0);//码牌
 
         //获取
-        Integer simCount = kxsUserActTradeMapper.getUserActListByAll(userId,Integer.valueOf(type),2,2, Integer.valueOf(month));
-        statUserGetMyTradeVO.setActivateSIMCount(simCount != null? simCount : 0);//存量激活sim卡
-        Integer simToMonthCount = kxsUserActTradeMapper.getUserActListByAll(userId,Integer.valueOf(type),2,1, Integer.valueOf(month));
-        statUserGetMyTradeVO.setActivateSIMToMonthCount(simToMonthCount != null ? simToMonthCount :0);//当月
+        Integer simCount = kxsUserActTradeMapper.getUserActListByAll(userId, Integer.valueOf(type), 2, 2, Integer.valueOf(month));
+        statUserGetMyTradeVO.setActivateSIMCount(simCount != null ? simCount : 0);//存量激活sim卡
+        Integer simToMonthCount = kxsUserActTradeMapper.getUserActListByAll(userId, Integer.valueOf(type), 2, 1, Integer.valueOf(month));
+        statUserGetMyTradeVO.setActivateSIMToMonthCount(simToMonthCount != null ? simToMonthCount : 0);//当月
         statUserGetMyTradeVO.setType(param.getType());
         return R.ok(statUserGetMyTradeVO);
     }
 
     @Override
     public R getUserTradeStatList(StatUserGetUserTradeListDTO param) {
-//         String month = param.getMonth();
-//         Integer totalType = param.getTotalType();
-//        Long userId = param.getUserId();
-//        Integer getType = param.getGetType();
-//         Integer tradeType = param.getTradeType();
-//        LocalDate now = LocalDate.now();
-//        List<String> times = new ArrayList<>();
-//        if (tradeType.equals(3)){//获取全部
-//            if (getType.equals(2)){//查询近半年
-//                //近半年
-//                for (int i = 0; i < 6; i++) {
-//                    // 计算过去半年每月月份
-//                    LocalDate currentDay = now.minusMonths(i);
-//                    // 将LocalDate转换为字符串
-//                    String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.SIMPLE_MONTH_PATTERN);
-//                    times.add(currentDateString);
-//                }
-//                //获取交易额
-//
-//                //构造查询Dto
-//                StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
-//                statUserGetMyTradeDTO.setMonth(month);
-//                statUserGetMyTradeDTO.setType(totalType.toString());
-//                ArrayList<KxsUserTrade> kxsUserTrades = new ArrayList<>();
-//                //查询进半年需要循环查询不同的表
-//                for (String time : times) {
-//                    try {
-//                        //拼接表名
-//                        String lastTableName = PREFIX_TABLE_NAME + time;
-//                        //查询个人交易额
-//                        KxsUserTrade myPosOrCloudTrade = baseMapper.getMyPosOrCloudTrade(statUserGetMyTradeDTO, lastTableName, 1, userId);
-//                        kxsUserTrades.add(myPosOrCloudTrade);
-//                    }catch (Exception e){
-//                        log.info(e.getMessage());
-//                    }
-//                }
-//            }else if (getType.equals(1)){//查询近七日
-//                //校验时间格式是yyyyMM
-//                AssertUtil.isyyyyMM(month);
-//                //判断month是否是本月  否则获取月份中全部日日期
-//                int year = Integer.parseInt(month.substring(0, 4));
-//                int monthOfYear = Integer.parseInt(month.substring(4, 6));
-//                // 判断给定的月份字符串是否表示当前月份
-//                boolean isCurrentMonth = year == now.getYear() && monthOfYear == now.getMonthValue();
-//                // 如果是当前月份,则生成本月到今天的日期字符串
-//                if (isCurrentMonth) {
-//                    LocalDate firstDayOfMonth = now.withDayOfMonth(1);
-//                    for (LocalDate date = firstDayOfMonth; !date.isAfter(now); date = date.plusDays(1)) {
-//                        times.add(date.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
-//                    }
-//                } else {
-//                    // 如果不是当前月份,则生成整个月的日期字符串
-//                    LocalDate firstDayOfMonth = LocalDate.of(year, monthOfYear, 1);
-//                    int daysInMonth = firstDayOfMonth.lengthOfMonth();
-//                    for (int day = 1; day <= daysInMonth; day++) {
-//                        LocalDate date = firstDayOfMonth.withDayOfMonth(day);
-//                        times.add(date.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
-//                    }
-//                }
-//            }
-            //以上  查询时间参数times已构造完毕
-
-
-//            StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = new StatUserGetUserTradeStatListVO();
-//            statUserGetUserTradeStatListVO.setTotalAmount();
-//            statUserGetUserTradeStatListVO.setPosDebitAmount();
-//            statUserGetUserTradeStatListVO.setPosCreditAmount();
-//            statUserGetUserTradeStatListVO.setCloudAmunt();
-//            statUserGetUserTradeStatListVO.setZlbAmount();
-//            statUserGetUserTradeStatListVO.setLkbActivityAmount();
-//            statUserGetUserTradeStatListVO.setLkbAmount();
-//            statUserGetUserTradeStatListVO.setGdTelephoneCharge();
-//            statUserGetUserTradeStatListVO.setGdActivityAmount();
-
-
-
-//        }
-        return null;
+        String month = param.getMonth();//查询月
+        Integer totalType = param.getTotalType();//查询类型 0个人 1团队
+        Long userId = param.getUserId();
+        Integer getType = param.getGetType();//获取类型 1获取月 2获取半年
+        Integer tradeType = param.getTradeType();//1获取增量 2获取存量 3获取全部
+        LocalDate now = LocalDate.now();
+        String tableName = "";
+        List<String> times = new ArrayList<>();
+        if (tradeType.equals(3)) {//获取全部
+            tableName = PREFIX_TABLE_NAME; //全部
+            if (getType.equals(2)) {//查询近半年
+                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListVOSByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
+                return R.ok(statUserGetUserTradeStatListVOS);
+            } else if (getType.equals(1)) {//查询月详细
+                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+                return R.ok(statUserGetUserTradeStatListVOS);
+            }
+        } else if (tradeType.equals(2)) {
+            tableName = PREFIX_TABLE_NAME_BEFORE; //存量
+            if (getType.equals(2)) {//查询近半年
+                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListVOSByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
+                return R.ok(statUserGetUserTradeStatListVOS);
+            } else if (getType.equals(1)) {//查询月详细
+                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+                return R.ok(statUserGetUserTradeStatListVOS);
+            }
+        } else if (tradeType.equals(1)) {
+            tableName = PREFIX_TABLE_NAME_AFTER; //增量
+            if (getType.equals(2)) {//查询近半年
+                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListVOSByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
+                return R.ok(statUserGetUserTradeStatListVOS);
+            } else if (getType.equals(1)) {//查询月详细
+                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+                return R.ok(statUserGetUserTradeStatListVOS);
+            }
+        }
+        return R.failed("获取增存量类型错误");
+    }
+
+    @Override
+    public R getTradeDetail(StatUserGetTradeDetailDTO param) {
+        Integer totalType = param.getTotalType();//0:个人 1:计奖
+        Integer date = param.getDate();//该参数有效获取月份格式yyyyMM   日格式yyyyMMdd
+        Integer getType = param.getGetType();// 1获取日详情 2获取月详情
+        Integer tradeType = param.getTradeType();//1获取增量 2获取存量 3获取全部
+        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格式错误");
+        }
+        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());
+        }
+
+
+        StatUserGetTradeDetailVO statUserGetTradeDetailVO = new StatUserGetTradeDetailVO();
+        statUserGetTradeDetailVO.setDate(date);//交易时间
+        statUserGetTradeDetailVO.setBrandId(Math.toIntExact(brandId));//品牌
+        if (kxsUserTradePos != null) {
+            statUserGetTradeDetailVO.setHelpDirectTradeAmt(kxsUserTradePos.getHelpDirectTradeAmt());//扶持期贷记卡
+            statUserGetTradeDetailVO.setHelpDebitTradeAmt(kxsUserTradePos.getHelpDebitTradeAmt());//扶持期借记卡
+            statUserGetTradeDetailVO.setHelpDebitCapTradeAmt(kxsUserTradePos.getHelpDebitCapTradeAmt());//扶持期借记卡封顶交易额
+            statUserGetTradeDetailVO.setHelpDebitCapNum(kxsUserTradePos.getHelpDebitCapNum());//扶持期借记卡封顶交易笔数
+            BigDecimal helpNotCapTrade = kxsUserTradePos.getHelpDebitTradeAmt().subtract(kxsUserTradePos.getHelpDebitCapTradeAmt());//非封顶交易额
+            statUserGetTradeDetailVO.setHelpBDebitNotCapTrade(helpNotCapTrade);//扶持期非封顶借记卡交易额
+
+
+            statUserGetTradeDetailVO.setProDirectTradeAmt(kxsUserTradePos.getProDirectTradeAmt());//稳定期贷记卡
+            statUserGetTradeDetailVO.setProDebitTradeAmt(kxsUserTradePos.getProDebitTradeAmt());//稳定期借记卡
+            statUserGetTradeDetailVO.setProDebitCapTradeAmt(kxsUserTradePos.getProDebitCapTradeAmt());//稳定期借记卡封顶交易额
+            statUserGetTradeDetailVO.setProDebitCapNum(kxsUserTradePos.getProDebitCapNum());//稳定期借记卡封顶交易笔数
+            BigDecimal proNotCapTrade = kxsUserTradePos.getProDebitTradeAmt().subtract(kxsUserTradePos.getProDebitCapTradeAmt());//非封顶交易额
+            statUserGetTradeDetailVO.setProDebitNotCapTrade(proNotCapTrade);//稳定期非封顶借记卡交易额
+
+
+            statUserGetTradeDetailVO.setProADirectTradeAmt(kxsUserTradePos.getProADirectTradeAmt());//稳A贷记
+            statUserGetTradeDetailVO.setProADebitTradeAmt(kxsUserTradePos.getProADebitTradeAmt());//稳A借记
+            statUserGetTradeDetailVO.setProADebitCapTradeAmt(kxsUserTradePos.getProADebitCapTradeAmt());//稳定期A借记卡封顶交易额
+            statUserGetTradeDetailVO.setProADebitCapNum(kxsUserTradePos.getProADebitCapNum());//稳定期A借记卡封顶交易笔数
+            BigDecimal proANotCapTrade = kxsUserTradePos.getProADebitTradeAmt().subtract(kxsUserTradePos.getProADebitCapTradeAmt());//非封顶交易额
+            statUserGetTradeDetailVO.setProADebitNotCapTrade(proANotCapTrade);//稳定期b非封顶借记卡交易额
+
+
+            statUserGetTradeDetailVO.setProBDebitTradeAmt(kxsUserTradePos.getProBDirectTradeAmt());//稳定期B借记卡
+            statUserGetTradeDetailVO.setProBDirectTradeAmt(kxsUserTradePos.getProBDebitTradeAmt());//稳定期B贷记卡
+            statUserGetTradeDetailVO.setProBDebitCapTradeAmt(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期B借记卡封顶交易额
+            statUserGetTradeDetailVO.setProBDebitCapNum(kxsUserTradePos.getProBDebitCapNum());//稳定期B借记卡封顶交易笔数
+            BigDecimal proBNotCapTrade = kxsUserTradePos.getProBDebitTradeAmt().subtract(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期b非封顶交易额
+            statUserGetTradeDetailVO.setProBDebitNotCapTrade(proBNotCapTrade);//稳定期b非封顶借记卡交易额
+        }
+        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());//计算扶持期云闪付交易额
+            statUserGetTradeDetailVO.setHelpCloudTrade(helpTrade);//扶持期云闪付交易额
+
+            BigDecimal proTrade = kxsUserTradeCloud.getProDebitCapTradeAmt().add(kxsUserTradeCloud.getProDirectTradeAmt());//计算稳定期云闪付交易额
+            statUserGetTradeDetailVO.setProCloudTrade(proTrade);//稳定期云闪付交易额
+
+            BigDecimal proATrade = kxsUserTradeCloud.getProADebitCapTradeAmt().add(kxsUserTradeCloud.getProADirectTradeAmt());//计算稳定期b云闪付交易额
+            statUserGetTradeDetailVO.setProACloudTrade(proATrade);//稳定期A云闪付交易额
+
+            BigDecimal proBTrade = kxsUserTradeCloud.getProBDebitCapTradeAmt().add(kxsUserTradeCloud.getProBDirectTradeAmt());//计算稳定期a云闪付交易额
+            statUserGetTradeDetailVO.setProBCloudTrade(proBTrade);//稳定期B云闪付交易额
+        }
+        return R.ok(statUserGetTradeDetailVO);
+    }
+
+    private ArrayList<StatUserGetUserTradeStatListVO> getUserGetUserTradeStatListVOSByDay(String month, Integer totalType, Long userId, Integer getType, LocalDate now, List<String> times, String tableName, Integer tradeType) {
+        //校验时间格式是yyyyMM
+        AssertUtil.isyyyyMM(month);
+        //判断month是否是本月  否则获取月份中全部日日期
+        int year = Integer.parseInt(month.substring(0, 4));
+        int monthOfYear = Integer.parseInt(month.substring(4, 6));
+        // 判断给定的月份字符串是否表示当前月份
+        boolean isCurrentMonth = year == now.getYear() && monthOfYear == now.getMonthValue();
+        // 如果是当前月份,则生成本月到今天的日期字符串
+        if (isCurrentMonth) {
+            LocalDate firstDayOfMonth = now.withDayOfMonth(1);
+            for (LocalDate date = firstDayOfMonth; !date.isAfter(now); date = date.plusDays(1)) {
+                times.add(date.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+            }
+        } else {
+            // 如果不是当前月份,则生成整个月的日期字符串
+            LocalDate firstDayOfMonth = LocalDate.of(year, monthOfYear, 1);
+            int daysInMonth = firstDayOfMonth.lengthOfMonth();
+            for (int day = 1; day <= daysInMonth; day++) {
+                LocalDate date = firstDayOfMonth.withDayOfMonth(day);
+                times.add(date.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+            }
+        }
+        //拼接表名
+        String lastTableName = tableName + month;
+        ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = new ArrayList<>();
+        //构造查询Dto
+        StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
+        statUserGetMyTradeDTO.setMonth(month);
+        statUserGetMyTradeDTO.setType(totalType.toString());
+        for (int i = times.size() - 1; i >= 0; i--) {
+            String time = times.get(i);
+            //查询交易额
+            KxsUserTrade myPosTrade = null;
+            try {
+                //此处存在不存在表  跳过报错视为无数据
+                myPosTrade = baseMapper.getMyPosOrCloudTrade(statUserGetMyTradeDTO, lastTableName, 0, userId, time);
+            } catch (Exception e) {
+                log.info(e.getMessage());
+            }
+            if (myPosTrade == null) {
+                myPosTrade = new KxsUserTrade();
+            }
+            StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = getMonthTrade(totalType, userId, getType, statUserGetMyTradeDTO, myPosTrade, month, time, tableName, tradeType);
+            statUserGetUserTradeStatListVO.setTime(time);
+            statUserGetUserTradeStatListVOS.add(statUserGetUserTradeStatListVO);
+        }
+        return statUserGetUserTradeStatListVOS;
+    }
+
+    private ArrayList<StatUserGetUserTradeStatListVO> getStatUserGetUserTradeStatListVOSByMonth(String month, Integer totalType, Long userId, Integer getType, LocalDate now, List<String> times, String tableName, Integer tradeType) {
+        //近半年
+        for (int i = 0; i < 6; i++) {
+            // 计算过去半年每月月份
+            LocalDate currentDay = now.minusMonths(i);
+            // 将LocalDate转换为字符串
+            String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.SIMPLE_MONTH_PATTERN);
+            times.add(currentDateString);
+        }
+        //获取交易额
+        //构造查询Dto
+        StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
+        statUserGetMyTradeDTO.setMonth(month);
+        statUserGetMyTradeDTO.setType(totalType.toString());
+        ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = new ArrayList<>();
+        //查询进半年需要循环查询不同的表
+        for (int i = times.size() - 1; i >= 0; i--) {
+            String time = times.get(i);
+            try {
+                //拼接表名  因有可能查询不存在的表导致报错我们try包裹视为无数据
+                String lastTableName = tableName + time;
+                //查询交易额
+                KxsUserTrade myPosTrade = baseMapper.getMyPosOrCloudTrade(statUserGetMyTradeDTO, lastTableName, 0, userId, "");
+                if (myPosTrade == null) {
+                    myPosTrade = new KxsUserTrade();
+                }
+                StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = getMonthTrade(totalType, userId, getType, statUserGetMyTradeDTO, myPosTrade, month, time, tableName, tradeType);
+                statUserGetUserTradeStatListVO.setTime(time);
+                statUserGetUserTradeStatListVOS.add(statUserGetUserTradeStatListVO);
+            } catch (Exception e) {
+                log.info(e.getMessage());
+            }
+        }
+        return statUserGetUserTradeStatListVOS;
+    }
+
+    private StatUserGetUserTradeStatListVO getMonthTrade(Integer totalType, Long userId, Integer getType, StatUserGetMyTradeDTO statUserGetMyTradeDTO, KxsUserTrade kxsUserTrade, String month, String date, String tableName, Integer tradeType) {
+        BigDecimal helpDirectTradeAmt = kxsUserTrade.getHelpDirectTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getHelpDirectTradeAmt();//扶贷
+        BigDecimal helpDebitTradeAmt = kxsUserTrade.getHelpDebitTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getHelpDebitTradeAmt();//扶借
+
+        BigDecimal proDirectTradeAmt = kxsUserTrade.getProDirectTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getProDirectTradeAmt();//稳贷
+        BigDecimal proDebitTradeAmt = kxsUserTrade.getProDebitTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getProDebitTradeAmt();//稳借
+
+        BigDecimal proADirectTradeAmt = kxsUserTrade.getProADirectTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getProADirectTradeAmt();//稳A贷
+        BigDecimal proADebitTradeAmt = kxsUserTrade.getProADebitTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getProADebitTradeAmt();//稳A借
+
+        BigDecimal proBDebitTradeAmt = kxsUserTrade.getProBDebitTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getProBDebitTradeAmt();//稳B借
+        BigDecimal proBDirectTradeAmt = kxsUserTrade.getProBDirectTradeAmt() == null ? BigDecimal.ZERO : kxsUserTrade.getProBDirectTradeAmt();//稳B贷
+
+        BigDecimal totalAmount = BigDecimal.ZERO;
+
+        StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = new StatUserGetUserTradeStatListVO();
+
+        //pos机交易额
+        statUserGetUserTradeStatListVO.setPosDebitAmount(helpDebitTradeAmt.add(proDebitTradeAmt).add(proADebitTradeAmt).add(proBDirectTradeAmt));
+        statUserGetUserTradeStatListVO.setPosCreditAmount(helpDirectTradeAmt.add(proDirectTradeAmt).add(proADirectTradeAmt).add(proBDebitTradeAmt));
+
+        //拼接表名
+        tableName = tableName + month;
+        KxsUserTrade myCloudTrade = null;
+        try {
+            //存在表不存在的月份,跳过报错视为无数据
+            myCloudTrade = baseMapper.getMyPosOrCloudTrade(statUserGetMyTradeDTO, tableName, 1, userId, "");
+        } catch (Exception e) {
+            log.info(e.getMessage());
+        }
+        if (myCloudTrade == null) {
+            myCloudTrade = new KxsUserTrade();
+        }
+        BigDecimal helpDirectTradeAmtCloud = myCloudTrade.getHelpDirectTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getHelpDirectTradeAmt();//扶贷
+        BigDecimal helpDebitTradeAmtCloud = myCloudTrade.getHelpDebitTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getHelpDebitTradeAmt();//扶借
+
+        BigDecimal proDirectTradeAmtCloud = myCloudTrade.getProDirectTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getProDirectTradeAmt();//稳贷
+        BigDecimal proDebitTradeAmtCloud = myCloudTrade.getProDebitTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getProDebitTradeAmt();//稳借
+
+        BigDecimal proADirectTradeAmtCloud = myCloudTrade.getProADirectTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getProADirectTradeAmt();//稳A贷
+        BigDecimal proADebitTradeAmtCloud = myCloudTrade.getProADebitTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getProADebitTradeAmt();//稳A借
+
+        BigDecimal proBDebitTradeAmtCloud = myCloudTrade.getProBDebitTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getProBDebitTradeAmt();//稳B借
+        BigDecimal proBDirectTradeAmtCloud = myCloudTrade.getProBDirectTradeAmt() == null ? BigDecimal.ZERO : myCloudTrade.getProBDirectTradeAmt();//稳B贷
+        BigDecimal posAmount = helpDirectTradeAmtCloud
+                .add(helpDebitTradeAmtCloud)
+                .add(proDirectTradeAmtCloud)
+                .add(proDebitTradeAmtCloud)
+                .add(proADirectTradeAmtCloud)
+                .add(proADebitTradeAmtCloud)
+                .add(proBDebitTradeAmtCloud)
+                .add(proBDirectTradeAmtCloud);
+        //云闪付交易额
+        statUserGetUserTradeStatListVO.setCloudAmunt(posAmount);
+        totalAmount = totalAmount.add(posAmount);
+
+        if (!tradeType.equals(2)) {//存量不存在以下数据
+            //助力宝交易额
+            TotalTradeAmtVO TotalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, String.valueOf(date), getType, totalType);
+            TotalTradeAmtVO = TotalTradeAmtVO == null ? new TotalTradeAmtVO() : TotalTradeAmtVO;
+
+
+            BigDecimal zlbAmt = TotalTradeAmtVO.getZlbAmt() == null ? BigDecimal.ZERO : TotalTradeAmtVO.getZlbAmt();
+            statUserGetUserTradeStatListVO.setZlbAmount(zlbAmt);
+            totalAmount = totalAmount.add(zlbAmt);
+
+            //来客吧交易额
+            TotalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, String.valueOf(date), getType, totalType);
+            TotalTradeAmtVO = TotalTradeAmtVO == null ? new TotalTradeAmtVO() : TotalTradeAmtVO;
+
+            BigDecimal lkbActAmt = TotalTradeAmtVO.getLkbActAmt() == null ? BigDecimal.ZERO : TotalTradeAmtVO.getLkbActAmt();
+            statUserGetUserTradeStatListVO.setLkbActivityAmount(lkbActAmt);
+            totalAmount = totalAmount.add(lkbActAmt);
+
+
+            BigDecimal lkbAmt = TotalTradeAmtVO.getLkbAmt() == null ? BigDecimal.ZERO : TotalTradeAmtVO.getLkbAmt();
+            statUserGetUserTradeStatListVO.setLkbAmount(lkbAmt);
+            totalAmount = totalAmount.add(lkbAmt);
+            //广电话费
+            TotalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, String.valueOf(date), getType, totalType);
+            TotalTradeAmtVO = TotalTradeAmtVO == null ? new TotalTradeAmtVO() : TotalTradeAmtVO;
+
+            BigDecimal gdAmount = TotalTradeAmtVO.getGdAmount() == null ? BigDecimal.ZERO : TotalTradeAmtVO.getGdAmount();
+            statUserGetUserTradeStatListVO.setGdTelephoneCharge(gdAmount);
+            totalAmount = totalAmount.add(gdAmount);
+
+            if (tradeType.equals(3)) {//广电获取全部
+                //广电激活量
+                if (getType == 1) {
+                    TotalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, String.valueOf(date), 3, totalType);
+                } else {
+                    TotalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, String.valueOf(date), 4, totalType);
+                }
+                TotalTradeAmtVO = TotalTradeAmtVO == null ? new TotalTradeAmtVO() : TotalTradeAmtVO;
+
+                BigDecimal gdActAmt = BigDecimal.valueOf(TotalTradeAmtVO.getGdCount() != null ? TotalTradeAmtVO.getGdCount() * 10000 : 0);
+                statUserGetUserTradeStatListVO.setGdActivityAmount(gdActAmt);
+                totalAmount = totalAmount.add(gdActAmt);
+            }
+            if (tradeType.equals(1)) {//广电获取增量  只获取当前时间
+                //广电激活量
+                TotalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, String.valueOf(date), getType, totalType);
+                TotalTradeAmtVO = TotalTradeAmtVO == null ? new TotalTradeAmtVO() : TotalTradeAmtVO;
+
+                BigDecimal gdActAmt = BigDecimal.valueOf(TotalTradeAmtVO.getGdCount() != null ? TotalTradeAmtVO.getGdCount() * 10000 : 0);
+                statUserGetUserTradeStatListVO.setGdActivityAmount(gdActAmt);
+                totalAmount = totalAmount.add(gdActAmt);
+            }
+        }
+        //总额
+        statUserGetUserTradeStatListVO.setTotalAmount(totalAmount);
+
+        return statUserGetUserTradeStatListVO;
     }
 
     private BigDecimal getAmountToDayOrMonth(Long userId, String date, String tableName, BigDecimal amount, int type) {
         //pos交易
         TotalTradeAmtVO totalTradeAmtVO = baseMapper.getPosTrade(userId, tableName, date, type);
-        if (totalTradeAmtVO!= null){
+        if (totalTradeAmtVO != null) {
             amount = amount.add(totalTradeAmtVO.getPosAmt());
         }
         //来客吧交易额
-        totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, date, type,1);
-        if (totalTradeAmtVO!= null) {
+        totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, date, type, 1);
+        if (totalTradeAmtVO != null) {
             amount = amount.add(totalTradeAmtVO.getLkbAmt());
             amount = amount.add(totalTradeAmtVO.getLkbActAmt());
         }
         //助力宝交易额
-        totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, date, type,1);
+        totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, date, type, 1);
         if (totalTradeAmtVO != null) {
             amount = amount.add(totalTradeAmtVO.getZlbAmt());
         }
         //广电交易额
-        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, date, type,1);
-        if (totalTradeAmtVO != null){
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, date, type, 1);
+        if (totalTradeAmtVO != null) {
             Integer gdCount = totalTradeAmtVO.getGdCount();
             //广电激活量 * 10000
             amount = amount.add(new BigDecimal(gdCount * 10000));
         }
         //广电话费
-        totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, date, type,1);
-        if (totalTradeAmtVO != null){
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, date, type, 1);
+        if (totalTradeAmtVO != null) {
             amount = amount.add(totalTradeAmtVO.getGdAmount());
         }
         return amount;
     }
 
 
-    private StatUserGetUserStatByDayOrMonthVO getStatUserGetUserStatByDayOrMonthVO(Long userId, LocalDate now, List<String> times, List<String> lastMonthTimes, Integer type,Integer totalType) {
+    private StatUserGetUserStatByDayOrMonthVO getStatUserGetUserStatByDayOrMonthVO(Long userId, LocalDate now, List<String> times, List<String> lastMonthTimes, Integer type, Integer totalType) {
         StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO = new StatUserGetUserStatByDayOrMonthVO();
         /* ------ 交易趋势图 ------ */
-        setTreadeTrend(userId, now, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO,type,totalType);
+        setTreadeTrend(userId, now, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO, type, totalType);
         /* ------ 交易百分比及总额 ------ */
-        setTreadeTotalAndPercent(userId, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO,type,totalType);
+        setTreadeTotalAndPercent(userId, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO, type, totalType);
         /* ------ 激活百分比及总额 ------ */
-        setActTotalAndPercent(userId, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO,type,totalType);
+        setActTotalAndPercent(userId, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO, type, totalType);
         /* ------ 激活趋势图 ------ */
-        setActTrend(userId, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO,type,totalType);
+        setActTrend(userId, times, lastMonthTimes, statUserGetUserStatByDayOrMonthVO, type, totalType);
         /* ------ 新增用户趋势图 ------ */
-        setUserAddTrend(userId, times, type, statUserGetUserStatByDayOrMonthVO,totalType);
+        setUserAddTrend(userId, times, type, statUserGetUserStatByDayOrMonthVO, totalType);
         return statUserGetUserStatByDayOrMonthVO;
     }
 
     private void setUserAddTrend(Long userId, List<String> times, Integer type, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO, Integer totalType) {
         TrendVO trendVO = new TrendVO();
-        List<TrendTimesVO> trendTimesVOS = kxsUserNewTradeMapper.getUserAddTrend(userId, times, type,totalType);
-        repZero(times,trendTimesVOS);
+        List<TrendTimesVO> trendTimesVOS = kxsUserNewTradeMapper.getUserAddTrend(userId, times, type, totalType);
+        repZero(times, trendTimesVOS);
         trendVO.setName("all");
         trendVO.setTimes(trendTimesVOS);
         statUserGetUserStatByDayOrMonthVO.setUserAddTrend(trendVO);
     }
 
-    private void setActTrend(Long userId, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO,Integer type, Integer totalType) {
+    private void setActTrend(Long userId, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO, Integer type, Integer totalType) {
 
 
         //查询用户全部激活根据日期分组
-        List<TrendTimesVO> trendTimesActVOS = kxsUserActTradeMapper.getUserActListByDayOrMonth(times, userId,null,type,totalType);
+        List<TrendTimesVO> trendTimesActVOS = kxsUserActTradeMapper.getUserActListByDayOrMonth(times, userId, null, type, totalType);
         //判断是否二次查询
-        if (lastMonthTimes != null){
-            List<TrendTimesVO> trendTimesActVOSLast = kxsUserActTradeMapper.getUserActListByDayOrMonth(lastMonthTimes, userId,null,type,totalType);
+        if (lastMonthTimes != null) {
+            List<TrendTimesVO> trendTimesActVOSLast = kxsUserActTradeMapper.getUserActListByDayOrMonth(lastMonthTimes, userId, null, type, totalType);
             trendTimesActVOS.addAll(trendTimesActVOSLast);
         }
         //查询用户全部激活量根据 日期以及品牌 分组
-        List<TrendTimesVO> trendTimesActBrandVOS = kxsUserActTradeMapper.getUserActListByDayOrMonth(times, userId,1,type,totalType);
+        List<TrendTimesVO> trendTimesActBrandVOS = kxsUserActTradeMapper.getUserActListByDayOrMonth(times, userId, 1, type, totalType);
         //判断是否二次查询
-        if (lastMonthTimes != null){
-            List<TrendTimesVO> trendTimesActBrandVOSLast = kxsUserActTradeMapper.getUserActListByDayOrMonth(lastMonthTimes, userId,1,type,totalType);
+        if (lastMonthTimes != null) {
+            List<TrendTimesVO> trendTimesActBrandVOSLast = kxsUserActTradeMapper.getUserActListByDayOrMonth(lastMonthTimes, userId, 1, type, totalType);
             trendTimesActBrandVOS.addAll(trendTimesActBrandVOSLast);
         }
         //构造数据
-        ArrayList<TrendVO> trendVOSBrand = getTrendVOS(trendTimesActVOS, trendTimesActBrandVOS,times);
+        ArrayList<TrendVO> trendVOSBrand = getTrendVOS(trendTimesActVOS, trendTimesActBrandVOS, times);
         statUserGetUserStatByDayOrMonthVO.setActMerchantTrend(trendVOSBrand);//激活趋势图
     }
 
-    private void setActTotalAndPercent(Long userId, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO, Integer type,Integer totalType) {
+    private void setActTotalAndPercent(Long userId, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO, Integer type, Integer totalType) {
         //获取传入日期激活商户数根据品牌分组
-        List<PercentVO> percentVOSAct = kxsUserActTradeMapper.getUserTradeTotal(times, userId,type,totalType);
+        List<PercentVO> percentVOSAct = kxsUserActTradeMapper.getUserTradeTotal(times, userId, type, totalType);
         //判断是否二次查询
-        if (lastMonthTimes != null){
-            List<PercentVO> percentVOSActLast = kxsUserActTradeMapper.getUserTradeTotal(lastMonthTimes, userId,type,totalType);
+        if (lastMonthTimes != null) {
+            List<PercentVO> percentVOSActLast = kxsUserActTradeMapper.getUserTradeTotal(lastMonthTimes, userId, type, totalType);
             percentVOSAct.addAll(percentVOSActLast);
         }
         //总激活数
@@ -617,24 +877,24 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         }
         //计算百分比
         for (PercentVO percentVO : percentVOSAct) {
-            percentVO.setPercent(BigDecimal.valueOf(percentVO.getTotal()).divide(BigDecimal.valueOf(actTotalCount),6, RoundingMode.HALF_UP));
+            percentVO.setPercent(BigDecimal.valueOf(percentVO.getTotal()).divide(BigDecimal.valueOf(actTotalCount), 6, RoundingMode.HALF_UP));
         }
         statUserGetUserStatByDayOrMonthVO.setActMerchantPercent(percentVOSAct);//激活百分比
         statUserGetUserStatByDayOrMonthVO.setActMerchantTotal(actTotalCount);//激活总数
     }
 
-    private void setTreadeTotalAndPercent(Long userId, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO,Integer type,Integer totalType) {
+    private void setTreadeTotalAndPercent(Long userId, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO, Integer type, Integer totalType) {
         String thisMoth = LocalDateTimeUtil.format(LocalDateTime.now(), DatePattern.SIMPLE_MONTH_PATTERN);
         String tableName = PREFIX_TABLE_NAME + thisMoth;
         //获取全部品牌总交易额
-        List<PercentVO> percentVOS = baseMapper.getUserTradeTotal(tableName,userId, times,type,totalType);
+        List<PercentVO> percentVOS = baseMapper.getUserTradeTotal(tableName, userId, times, type, totalType);
         //判断是否二次查询
-        if (lastMonthTimes != null){
+        if (lastMonthTimes != null) {
             //需要构造上月表名
             LocalDate date = LocalDate.now().minusMonths(1);//月份减一
             String lastMoth = LocalDateTimeUtil.format(date, DatePattern.SIMPLE_MONTH_PATTERN);
             String lastTableName = PREFIX_TABLE_NAME + lastMoth;
-            List<PercentVO> percentVOSLast = baseMapper.getUserTradeTotal(lastTableName,userId, lastMonthTimes,type,totalType);
+            List<PercentVO> percentVOSLast = baseMapper.getUserTradeTotal(lastTableName, userId, lastMonthTimes, type, totalType);
             percentVOS.addAll(percentVOSLast);
         }
         BigDecimal totalAmout = BigDecimal.ZERO;
@@ -644,59 +904,59 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         }
         //计算百分比
         for (PercentVO percentVO : percentVOS) {
-            percentVO.setPercent(percentVO.getAmount().divide(totalAmout,6, RoundingMode.HALF_UP));
+            percentVO.setPercent(percentVO.getAmount().divide(totalAmout, 6, RoundingMode.HALF_UP));
         }
         statUserGetUserStatByDayOrMonthVO.setTreadePercent(percentVOS);//交易百分比
         statUserGetUserStatByDayOrMonthVO.setTreadeTotal(totalAmout);//交易总额
     }
 
-    private void setTreadeTrend(Long userId, LocalDate now, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO,Integer type,Integer totalType) {
+    private void setTreadeTrend(Long userId, LocalDate now, List<String> times, List<String> lastMonthTimes, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO, Integer type, Integer totalType) {
         String thisMoth = LocalDateTimeUtil.format(now, DatePattern.SIMPLE_MONTH_PATTERN);
         String tableName = PREFIX_TABLE_NAME + thisMoth;
         List<TrendTimesVO> trendTimesVOS = new ArrayList<>();
-        if (type == 1){
+        if (type == 1) {
             //查询用户全部交易额根据日期分组
-            trendTimesVOS = baseMapper.getUserTradeListByDayOrMonth(tableName, times, userId,null,type,totalType);
+            trendTimesVOS = baseMapper.getUserTradeListByDayOrMonth(tableName, times, userId, null, type, totalType);
             //判断是否需要二次查询
-            if (lastMonthTimes != null){
+            if (lastMonthTimes != null) {
                 //需要构造上月表名
                 LocalDate date = now.minusMonths(1);//月份减一
                 String lastMoth = LocalDateTimeUtil.format(date, DatePattern.SIMPLE_MONTH_PATTERN);
                 String lastTableName = PREFIX_TABLE_NAME + lastMoth;
                 try {
                     //因为这里可能存在查询的月份的表未创建的原因  使用try包裹跳过报错  视为该月无数据
-                    List<TrendTimesVO> trendTimesVOSByLastMonthTimes = baseMapper.getUserTradeListByDayOrMonth(lastTableName, lastMonthTimes, userId,null,type,totalType);
+                    List<TrendTimesVO> trendTimesVOSByLastMonthTimes = baseMapper.getUserTradeListByDayOrMonth(lastTableName, lastMonthTimes, userId, null, type, totalType);
                     trendTimesVOS.addAll(trendTimesVOSByLastMonthTimes);
-                }catch (Exception e){
+                } catch (Exception e) {
                     log.info(e.getMessage());
                 }
             }
-        }else {
+        } else {
             for (String month : times) {
                 //拼接表名
                 String newTableName = PREFIX_TABLE_NAME + month;
                 //因为这里可能存在查询的月份的表未创建的原因  使用try包裹跳过报错  视为该月无数据
-                try{
-                    List<TrendTimesVO> userTradeListByDayOrMonth = baseMapper.getUserTradeListByDayOrMonth(newTableName, times, userId, null, type,totalType);
+                try {
+                    List<TrendTimesVO> userTradeListByDayOrMonth = baseMapper.getUserTradeListByDayOrMonth(newTableName, times, userId, null, type, totalType);
                     trendTimesVOS.addAll(userTradeListByDayOrMonth);
-                }catch (Exception e){
+                } catch (Exception e) {
                     log.info(e.getMessage());
                 }
             }
         }
         //查询用户全部交易额根据 日期以及品牌 分组
-        List<TrendTimesVO> trendTimesVOListBrand = baseMapper.getUserTradeListByDayOrMonth(tableName, times, userId,1,type,totalType);
+        List<TrendTimesVO> trendTimesVOListBrand = baseMapper.getUserTradeListByDayOrMonth(tableName, times, userId, 1, type, totalType);
         //判断是否需要二次查询
-        if (lastMonthTimes != null){
+        if (lastMonthTimes != null) {
             //需要构造上月表名
             LocalDate date = now.minusMonths(1);//月份减一
             String lastMoth = LocalDateTimeUtil.format(date, DatePattern.SIMPLE_MONTH_PATTERN);
             String lastTableName = PREFIX_TABLE_NAME + lastMoth;
-            List<TrendTimesVO> trendTimesVOListBrandLast = baseMapper.getUserTradeListByDayOrMonth(lastTableName, lastMonthTimes, userId,1,type,totalType);
+            List<TrendTimesVO> trendTimesVOListBrandLast = baseMapper.getUserTradeListByDayOrMonth(lastTableName, lastMonthTimes, userId, 1, type, totalType);
             trendTimesVOListBrand.addAll(trendTimesVOListBrandLast);
         }
         //构造数据
-        ArrayList<TrendVO> trendVOS = getTrendVOS(trendTimesVOS, trendTimesVOListBrand,times);
+        ArrayList<TrendVO> trendVOS = getTrendVOS(trendTimesVOS, trendTimesVOListBrand, times);
         statUserGetUserStatByDayOrMonthVO.setTreadeTrend(trendVOS);//交易趋势
     }
 
@@ -708,12 +968,12 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             for (TrendTimesVO trendTimesVO : trendTimesVOS) {
                 brandId = trendTimesVO.getBrandId();
                 //如果存在则开启标识
-                if (time.equals(trendTimesVO.getTime())){
+                if (time.equals(trendTimesVO.getTime())) {
                     repFlag = 1;
                 }
             }
             //当返回集合中不存在查询的时间则构造一条0数据加入trendTimesVOS集合
-            if (repFlag == 0){
+            if (repFlag == 0) {
                 TrendTimesVO trendTimesVO = new TrendTimesVO();
                 trendTimesVO.setTime(time);
                 trendTimesVO.setTotal(0);
@@ -723,18 +983,18 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         }
     }
 
-    private static ArrayList<TrendVO> getTrendVOS(List<TrendTimesVO> trendTimesVOS, List<TrendTimesVO> trendTimesVOListBrand,List<String> times) {
+    private static ArrayList<TrendVO> getTrendVOS(List<TrendTimesVO> trendTimesVOS, List<TrendTimesVO> trendTimesVOListBrand, List<String> times) {
         //将全部交易额以及品牌交易额构造进入map  key为品牌id  或  all
-        Map<String,List<TrendTimesVO>> treadTrend = new HashMap<>();
+        Map<String, List<TrendTimesVO>> treadTrend = new HashMap<>();
         treadTrend.put("all", trendTimesVOS);
         for (TrendTimesVO trendTimesVO : trendTimesVOListBrand) {
             List<TrendTimesVO> trendTimesVOSBrand = treadTrend.get(trendTimesVO.getBrandId() == null ? null : trendTimesVO.getBrandId().toString());
-            if (trendTimesVOSBrand == null){
+            if (trendTimesVOSBrand == null) {
                 //未查询到则构造map  key为品牌id
                 trendTimesVOSBrand = new ArrayList<>();
                 trendTimesVOSBrand.add(trendTimesVO);
-                treadTrend.put(trendTimesVO.getBrandId() != null ? trendTimesVO.getBrandId().toString():"all",trendTimesVOSBrand);
-            }else {
+                treadTrend.put(trendTimesVO.getBrandId() != null ? trendTimesVO.getBrandId().toString() : "all", trendTimesVOSBrand);
+            } else {
                 trendTimesVOSBrand.add(trendTimesVO);
             }
         }
@@ -742,7 +1002,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         ArrayList<TrendVO> trendVOS = new ArrayList<>();
         for (Map.Entry<String, List<TrendTimesVO>> entry : treadTrend.entrySet()) {
             //补0数据
-            repZero(times,entry.getValue());
+            repZero(times, entry.getValue());
             TrendVO trendVO = new TrendVO();
             trendVO.setName(entry.getKey());
             trendVO.setTimes(entry.getValue());

+ 1 - 1
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsLkbTradeMapper.xml

@@ -27,7 +27,7 @@
         GROUP BY user_id
     </select>
     <select id="getLkbTrade" resultType="com.kxs.stat.api.vo.TotalTradeAmtVO">
-        SELECT SUM(trade_amt) as trade_amt, SUM(act_trade_amt)
+        SELECT SUM(trade_amt) as lkbAmt, SUM(act_trade_amt) lkbActAmt
         FROM kxs_lkb_trade
         <where>
             and total_type = #{totalType}

+ 17 - 6
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserGdTradeMapper.xml

@@ -17,6 +17,9 @@
         <result column="total_type" property="totalType" />
 
     </resultMap>
+
+
+
     <select id="getGdActCount" resultType="com.kxs.stat.api.vo.TotalTradeAmtVO">
         SELECT SUM(act_num) as gdCount
         FROM kxs_user_act_trade
@@ -24,12 +27,20 @@
             and brand_id = 14
             and total_type = #{totalType}
             and user_id = #{userId}
-            <if test="type == 1">
-                and trade_date = #{date}
-            </if>
-            <if test="type == 2">
-                and trade_month = #{date}
-            </if>
+            <choose>
+                <when test="type == 1">
+                    AND trade_date = #{date}
+                </when>
+                <when test="type == 2">
+                    AND trade_month = #{date}
+                </when>
+                <when test="type == 3">
+                    AND  <![CDATA[ trade_date <=  #{date} ]]>
+                </when>
+                <when test="type == 4">
+                    AND <![CDATA[ trade_month <= #{date} ]]>
+                </when>
+            </choose>
         </where>
     </select>
     <select id="getGdTrade" resultType="com.kxs.stat.api.vo.TotalTradeAmtVO">

+ 35 - 0
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserTradeMapper.xml

@@ -273,6 +273,41 @@
             and total_type = #{param.type}
             and user_id = #{userId}
             and trade_type = #{tradeType}
+            <if test="date != '' and date != null">
+                and trade_date = #{date}
+            </if>
+        </where>
+    </select>
+    <select id="getAllUserTrderSum" resultType="com.kxs.stat.api.model.KxsUserTrade">
+        select
+        sum(pro_b_debit_cap_num) as pro_b_debit_cap_num,
+        sum(pro_b_debit_cap_trade_amt) as pro_b_debit_cap_trade_amt,
+        sum(pro_b_direct_trade_amt) as pro_b_direct_trade_amt,
+        sum(pro_b_debit_trade_amt) as pro_b_debit_trade_amt,
+        sum(pro_a_debit_cap_num) as pro_a_debit_cap_num,
+        sum(pro_a_debit_cap_trade_amt) as pro_a_debit_cap_trade_amt,
+        sum(pro_debit_cap_num) as pro_debit_cap_num,
+        sum(pro_debit_cap_trade_amt) as pro_debit_cap_trade_amt,
+        sum(help_debit_cap_num) as help_debit_cap_num,
+        sum(help_debit_cap_trade_amt) as help_debit_cap_trade_amt,
+        sum(pro_a_debit_trade_amt) as pro_a_debit_trade_amt,
+        sum(pro_a_direct_trade_amt) as pro_a_direct_trade_amt,
+        sum(pro_debit_trade_amt) as pro_debit_trade_amt,
+        sum(pro_direct_trade_amt) as pro_direct_trade_amt,
+        sum(help_debit_trade_amt) as help_debit_trade_amt,
+        sum(help_direct_trade_amt) as help_direct_trade_amt
+        from ${tableName}
+        <where>
+            and total_type = #{totalType}
+            and user_id = #{userId}
+            and trade_type = #{tradeType}
+            and brand_id = #{brandId}
+            <if test="getType == 1">
+                and trade_date = #{date}
+            </if>
+            <if test="getType == 2">
+                and trade_month = #{date}
+            </if>
         </where>
     </select>
 

+ 5 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeOrder/StoreOrderListVO.java

@@ -114,6 +114,11 @@ public class StoreOrderListVO implements Serializable {
     private List<String> snList;
 
 
+    /**
+     * 品牌id
+     */
+    @Schema(description = "品牌id")
+    private Long brandId;
 
 
 

+ 5 - 2
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeRecycle/StoreRecycleMachineListVO.java

@@ -106,7 +106,10 @@ public class StoreRecycleMachineListVO implements Serializable {
     @Schema(description = "寄回机具数量")
     private List<RecycleInfoVO> snList;
 
-
-	
+    /**
+     * 修改时间
+     */
+    @Schema(description = "修改时间")
+    private LocalDateTime updateTime;
 
 }

+ 2 - 2
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreAdvanceController.java

@@ -46,9 +46,9 @@ public class StoreAdvanceController {
      * @return 小分仓-列表
      */
     @GetMapping("/getUserWareHouseList")
-    public R getUserWareHouseList(@ParameterObject Page<UserWarehouseListVO> page) {
+    public R getUserWareHouseList(@ParameterObject Page<UserWarehouseListVO> page,@RequestParam("keyword") String keyword) {
 
-        return R.ok(kxsMachineAdvanceService.getUserWareHouseList(page));
+        return R.ok(kxsMachineAdvanceService.getUserWareHouseList(page,keyword));
     }
 
 

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsMachineAdvanceMapper.java

@@ -40,7 +40,7 @@ public interface KxsMachineAdvanceMapper extends BaseMapper<KxsMachineAdvance> {
      * @param userId 用户 ID
      * @return {@link IPage}<{@link UserWarehouseListVO}>
      */
-    IPage<UserWarehouseListVO> getUserWareHouseList(Page<UserWarehouseListVO> page, @Param("userId") Long userId);
+    IPage<UserWarehouseListVO> getUserWareHouseList(Page<UserWarehouseListVO> page, @Param("userId") Long userId, @Param("keyword") String keyword);
 
     /**
      * 查询用户预发机数量 未确认和已确认 未申请的

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsMachineApplyMapper.java

@@ -30,7 +30,7 @@ public interface KxsMachineApplyMapper extends BaseMapper<KxsMachineApply> {
      * @param param 参数
      * @return {@link IPage}<{@link StoreOrderListVO}>
      */
-    IPage<StoreOrderListVO> getByPage(Page<StoreOrderListVO> page, @Param("query") StoreOrderListDTO param);
+    IPage<StoreOrderListVO> getByPage(Page<StoreOrderListVO> page, @Param("query") StoreOrderListDTO param,@Param("userId") Long userId);
 
     /**
      * 发货统计

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsMachineAdvanceService.java

@@ -39,7 +39,7 @@ public interface KxsMachineAdvanceService extends IService<KxsMachineAdvance> {
      * @param page 页
      * @return {@link IPage}<{@link UserWarehouseListVO}>
      */
-    IPage<UserWarehouseListVO> getUserWareHouseList(Page<UserWarehouseListVO> page);
+    IPage<UserWarehouseListVO> getUserWareHouseList(Page<UserWarehouseListVO> page, String keyword);
 
     /**
      * 撤回机具

+ 9 - 9
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineAdvanceServiceImpl.java

@@ -78,7 +78,7 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
     }
 
     @Override
-    public IPage<UserWarehouseListVO> getUserWareHouseList(Page<UserWarehouseListVO> page) {
+    public IPage<UserWarehouseListVO> getUserWareHouseList(Page<UserWarehouseListVO> page, String keyword) {
 
         Long userId = SecurityUtils.getUser().getId();
 
@@ -89,8 +89,8 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
               通过仓库用户和小分仓用户查询预发机订单的品牌信息
           </p>
          */
-        IPage<UserWarehouseListVO> userWareHouseList = baseMapper.getUserWareHouseList(page, userId);
-
+        IPage<UserWarehouseListVO> userWareHouseList = baseMapper.getUserWareHouseList(page, userId,keyword);
+        //todo 添加关键字查询
         for (UserWarehouseListVO record : userWareHouseList.getRecords()) {
 
             //查询用户信息
@@ -112,16 +112,16 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
             ArrayList<Object> brandList = new ArrayList<>();
             advanceDevMap.forEach((brandName, item) -> {
                 HashMap<String, Object> map = new HashMap<>();
-                map.put("brandName", brandName);
+                map.put("brandName", brandName);//品牌名
                 ArrayList<Object> snList = new ArrayList<>();
                 if (item instanceof ArrayList<Map<String, Object>> list) {
                     for (Map<String, Object> info : list) {
                         HashMap<String, Object> sn = new HashMap<>();
-                        sn.put("id", info.get("infoId"));
-                        sn.put("posSn", info.get("posSn"));
-                        sn.put("isUseAmount", info.get("isUseAmount"));
-                        sn.put("isConfirm", info.get("isConfirm"));
-                        sn.put("createTime", info.get("createTime"));
+                        sn.put("id", info.get("infoId"));//预发机id
+                        sn.put("posSn", info.get("posSn"));//机具sn
+                        sn.put("isUseAmount", info.get("isUseAmount"));//是否占用语法额度  0否  1是
+                        sn.put("isConfirm", info.get("isConfirm"));//是否确认收货  0未确认 1已确认  2已拒绝
+                        sn.put("createTime", info.get("createTime"));//创建时间
                         snList.add(sn);
                     }
                 }

+ 2 - 2
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java

@@ -391,8 +391,8 @@ public class KxsMachineApplyServiceImpl extends ServiceImpl<KxsMachineApplyMappe
 
     @Override
     public IPage<StoreOrderListVO> getByPage(Page<StoreOrderListVO> page, StoreOrderListDTO param) {
-
-        IPage<StoreOrderListVO> byPage = baseMapper.getByPage(page, param);
+        Long id = SecurityUtils.getUser().getId();
+        IPage<StoreOrderListVO> byPage = baseMapper.getByPage(page, param,id);
         //如果已完成的订单才去查询机具号
         for (StoreOrderListVO orderListVo : byPage.getRecords()) {
             if (Objects.equals(orderListVo.getStatus(), MachineOrderStatusEnum.APPLY_SUCCESSFUL.getType())) {

+ 2 - 1
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineApplyMapper.xml

@@ -29,8 +29,9 @@
 
     </resultMap>
     <select id="getByPage" resultType="com.kxs.store.api.vo.kxsapp.storeOrder.StoreOrderListVO">
-        select a.id, a.create_time, a.order_sn, a.get_mode, a.apply_num, a.contacts, a.phone, a.address, a.apply_type, a.status, a.username, a.user_code from kxs_machine_apply a
+        select a.id, a.create_time, a.order_sn, a.get_mode, a.apply_num, a.contacts, a.phone, a.address, a.apply_type, a.status, a.username, a.user_code a.brand_id from kxs_machine_apply a
         <where>
+            and user_id = #{userId}
             <if test="query.brandId != null and query.brandId != 0">
                 and a.brand_id = #{query.brandId}
             </if>

+ 21 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/ConcealParentDTO.java

@@ -0,0 +1,21 @@
+package com.kxs.user.api.dto.kxsapp;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * 隐藏推荐关系dto
+ */
+@Data
+public class ConcealParentDTO {
+    /**
+     * 用户id
+     */
+    @NotNull(message = "用户id不能为空")
+    private Long userId;
+    /**
+     * 隐藏推荐关系  0默认  1隐藏
+     */
+    @NotNull(message = "关系不能为空")
+    private Integer hiddenLevel;
+}

+ 5 - 1
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/UserMyUserDetailVO.java

@@ -108,7 +108,11 @@ public class UserMyUserDetailVO implements Serializable {
 
 
 
-
+    /**
+     * 新增时间
+     */
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
 
 	
 

+ 5 - 1
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/UserMyUserListVO.java

@@ -63,7 +63,11 @@ public class UserMyUserListVO implements Serializable {
     private Object realTime;
 
 
-
+    /**
+     * 达标状态 0 未达标 1达标
+     */
+    @Schema(description = "达标状态")
+    private Object reachStatus = 0;
 
 
 	

+ 6 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/userLevel/LevelsVO.java

@@ -42,4 +42,10 @@ public class LevelsVO implements Serializable {
      */
     @Schema(description = "职级")
     private Integer level;
+
+    /**
+     * 开始时间
+     */
+    @Schema(description = "开始时间")
+    private LocalDateTime startTime;
 }

+ 20 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java

@@ -4,6 +4,7 @@ package com.kxs.user.biz.controller.kxsapp;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.annotation.Inner;
+import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
 import com.kxs.user.api.dto.kxsapp.user.*;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUserReal;
@@ -301,7 +302,26 @@ public class KxsUserController {
     public R myUserList(@ParameterObject Page<KxsUser> page, @Valid @ParameterObject UserMyUserListDTO param) {
         return R.ok(kxsUserService.myUserList(page,param));
     }
+    /**
+     * 未实名列表
+     *
+     * @param page 分页对象
+     * @return 未实名创客列表
+     */
+    @GetMapping("/notRealUser")
+    public R notRealUser(@ParameterObject Page<KxsUser> page) {
+        return R.ok(kxsUserService.notRealUser(page));
+    }
 
+    /**
+     * 隐藏推荐关系
+     *
+     * @return 隐藏推荐关系
+     */
+    @PostMapping("/concealParent")
+    public R concealParent(@Valid @RequestBody ConcealParentDTO concealParentDTO) {
+        return kxsUserService.concealParent(concealParentDTO);
+    }
 
     /**
      * 用户统计

+ 14 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -3,6 +3,7 @@ package com.kxs.user.biz.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.product.api.vo.kxsapp.excel.ExistPayPwdVO;
+import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
 import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
 import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
 import com.kxs.user.api.dto.kxsapp.user.*;
@@ -251,5 +252,18 @@ public interface KxsUserService extends IService<KxsUser> {
      * @return
      */
     boolean validUserVerify(Long userId);
+
+    /**
+     * 未实名创客列表
+     * @param page
+     * @return
+     */
+    Object notRealUser(Page<KxsUser> page);
+    /**
+     * 隐藏推荐关系
+     *
+     * @return 隐藏推荐关系
+     */
+    R concealParent(ConcealParentDTO concealParentDTO);
 }
 

+ 23 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -28,6 +28,7 @@ import com.kxs.store.api.model.KxsWarehouseLimit;
 import com.kxs.system.api.feign.RemoteUserMsgService;
 import com.kxs.system.api.model.KxsUserMsg;
 import com.kxs.system.api.util.MsgTemplateUtil;
+import com.kxs.user.api.dto.kxsapp.ConcealParentDTO;
 import com.kxs.user.api.dto.kxsapp.app.ForgetPwdDTO;
 import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
 import com.kxs.user.api.dto.kxsapp.user.*;
@@ -451,8 +452,28 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
 
     }
 
+    @Override
+    public Object notRealUser(Page<KxsUser> page) {
+        Long id = SecurityUtils.getUser().getId();
+        return baseMapper.selectPage(page,Wrappers.<KxsUser>query().lambda().eq(KxsUser::getRealStatus,0).eq(KxsUser::getPid,id));
+    }
 
-
+    @Override
+    public R concealParent(ConcealParentDTO concealParentDTO) {
+        Long id = SecurityUtils.getUser().getId();
+        Long userId = concealParentDTO.getUserId();
+         Integer hiddenLevel = concealParentDTO.getHiddenLevel();
+        KxsUser kxsUser = baseMapper.selectById(userId);
+        if (kxsUser == null){
+            return R.failed("非法参数,用户不存在");
+        }
+        if (kxsUser.getPid().equals(Integer.parseInt(id.toString()))){
+            return R.failed("非法参数,不可修改非您系统内用户关系");
+        }
+        kxsUser.setHiddenLevel(hiddenLevel);
+        updateById(kxsUser);
+        return R.ok();
+    }
 
 
     @Override
@@ -671,6 +692,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
             levelsVO.setLevelName("预设职级");
             levelsVO.setLevel(userPresetLog.getPresetLevel());
             levelsVO.setExpiredDate(userPresetLog.getEndTime());
+            levelsVO.setStartTime(userPresetLog.getStartTime());
             if(userPresetLog.getEndTime().isBefore(LocalDateTime.now())){
                 levelsVO.setStatus(0);
             }else{