Просмотр исходного кода

Merge branch 'develop' into test-transfer

* develop:
  同步数据删除机具和金额记录
  修改了部分注释,百城千团team表增加活动类型字段
  添加接口有效创客校验,修改创建团队校验,不再校验团名,修改后台团队列表接口返回page
  修改了百城千团校验机制,   计奖交易-我的业绩接口已完成,商户统计(未完成)
  修改了百城千团校验机制,   计奖交易-我的业绩接口已完成,商户统计(未完成)
  修改了百城千团校验机制,   计奖交易-我的业绩接口已完成,商户统计(未完成)
mac 2 лет назад
Родитель
Сommit
04d63e9458
49 измененных файлов с 661 добавлено и 93 удалено
  1. 13 2
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/util/AssertUtil.java
  2. 8 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/feign/RemoteKxsProductService.java
  3. 8 1
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/TicketController.java
  4. 7 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsShopOrderMapper.java
  5. 1 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mq/RabbitKxsOrderQueueListener.java
  6. 4 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsTicketService.java
  7. 29 1
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsTicketServiceImpl.java
  8. 42 0
      kxs-product/kxs-product-biz/src/main/resources/mapper/KxsShopOrderMapper.xml
  9. 4 4
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetMyTradeDTO.java
  10. 17 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/ActivityAddVO.java
  11. 6 2
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetMyTradeVO.java
  12. 21 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/TimeVO.java
  13. 0 11
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/Times.java
  14. 20 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/TimesVO.java
  15. 9 4
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java
  16. 8 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsLkbActTradeMapper.java
  17. 1 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsLkbTradeMapper.java
  18. 12 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserActTradeMapper.java
  19. 2 2
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserGdTradeMapper.java
  20. 5 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserNewTradeMapper.java
  21. 9 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserTradeMapper.java
  22. 9 2
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsZlbTradeMapper.java
  23. 3 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserActTradeService.java
  24. 93 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserActTradeServiceImpl.java
  25. 125 8
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java
  26. 6 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsLkbActTradeMapper.xml
  27. 1 1
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsLkbTradeMapper.xml
  28. 23 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserActTradeMapper.xml
  29. 2 2
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserGdTradeMapper.xml
  30. 9 1
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserNewTradeMapper.xml
  31. 17 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserTradeMapper.xml
  32. 1 1
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsZlbTradeMapper.xml
  33. 0 6
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/dto/kxsapp/camp/CampAddBcqtTeamDTO.java
  34. 2 2
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/feign/RemoteUserService.java
  35. 5 1
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/KxsBcqtTeam.java
  36. 5 1
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/admin/GetByBcqtPageVO.java
  37. 4 3
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/CampController.java
  38. 1 3
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/MorningController.java
  39. 1 1
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsBcqtTeamService.java
  40. 40 20
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsBcqtTeamServiceImpl.java
  41. 1 1
      kxs-system/kxs-system-biz/src/main/resources/mapper/KxsBcqtTeamDetailMapper.xml
  42. 4 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsPartnerServiceImpl.java
  43. 5 2
      kxs-transfer/src/main/java/com/kxs/transfer/api/task/taskJob.java
  44. 8 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java
  45. 8 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java
  46. 35 3
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java
  47. 1 2
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsShdTradeAmtServiceImpl.java
  48. 25 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java
  49. 1 1
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserMapper.xml

+ 13 - 2
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/util/AssertUtil.java

@@ -6,7 +6,6 @@ package com.kxs.common.core.util;
 
 import com.kxs.common.core.exception.GlobalCustomerException;
 
-import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -22,6 +21,7 @@ public class AssertUtil {
      private static final Pattern CHINA_PATTERN_PHONE = Pattern.compile("^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\\d{8}$");
 
     private static final Pattern YYYY_MM = Pattern.compile("^\\d{4}-(0[1-9]|1[0-2])$");
+    private static final Pattern YYYYMM = Pattern.compile("^\\d{4}(0[1-9]|1[0-2])$");
     private static final Pattern INTERVAL_VARIABLE_AMOUNT = Pattern.compile("^(-?\\d+(\\.\\d{1,2})?)-(-?\\d+(\\.\\d{1,2})?)$");
     public static final String CHINA_PATTERN_PHONE_STR =  "^((13[0-9])|(14[014-9])|(15[0-35-9])|(16[2567])|(17[0-8])|(18[0-9])|(19[0-35-9]))\\d{8}$";
 
@@ -39,7 +39,7 @@ public class AssertUtil {
     /**--------------------------------------------------------
      时间格式断言
      --------------------------------------------------------**/
-    public static void isYyyyMM(String month){
+    public static void isSimpleMonthPattern(String month){
 
         //格式校验
         Matcher m = YYYY_MM.matcher(month);
@@ -47,6 +47,17 @@ public class AssertUtil {
             throw new GlobalCustomerException("时间格式错误yyyy-MM");
         }
     }
+    /**--------------------------------------------------------
+     时间格式断言
+     --------------------------------------------------------**/
+    public static void isyyyyMM(String month){
+
+        //格式校验
+        Matcher m = YYYYMM.matcher(month);
+        if(!m.matches()){
+            throw new GlobalCustomerException("时间格式错误yyyyMM");
+        }
+    }
     /**--------------------------------------------------------
      区间格式校验  金额
      --------------------------------------------------------**/

+ 8 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/feign/RemoteKxsProductService.java

@@ -91,6 +91,14 @@ public interface RemoteKxsProductService {
 	@GetExchange("/machineCirculationLog/loadCirculationLogByMachineId")
 	R<KxsMachineCirculationLog> loadCirculationLogByMachineId(@RequestParam("machineId") Integer machineId, @RequestHeader(SecurityConstants.FROM) String from);
 
+	/**
+	 * 校验用户名下劵大于等于3或下单过指定商品或激活数大于等于3
+	 * @param userId
+	 * @param from
+	 * @return
+	 */
+	@GetExchange("/ticket/verifyUserTickteCountAndShopAndActivite")
+	Boolean verifyUserTickteCountAndShopAndActivite(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM) String from);
 	/**
 	 * 可回收机具数量
 	 *

+ 8 - 1
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/TicketController.java

@@ -32,8 +32,15 @@ public class TicketController {
      */
     private final KxsTicketService kxsTicketService;
     private final KxsTicketTransferService kxsTicketTransferService;
+    /**
+     * 校验用户名下劵大于等于3或下单过指定商品
+     */
+    @Inner
+    @GetMapping("/verifyUserTickteCountAndShopAndActivite")
+    public Boolean verifyUserTickteCountAndShopAndActivite(@RequestParam("userId") Long userId) {
 
-
+        return kxsTicketService.verifyUserTickteCountAndShopAndActivite(userId);
+    }
 
     /**
      * 兑换券列表

+ 7 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsShopOrderMapper.java

@@ -38,5 +38,12 @@ public interface KxsShopOrderMapper extends BaseMapper<KxsShopOrder> {
      * @return {@link List}<{@link ShopOrderGoodsUserVO}>
      */
     List<ShopOrderGoodsUserVO> getDateBetweenOrders(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    /**
+     * 查询用户购买指定商品的全部订单
+     * @param userId
+     * @return
+     */
+    List<KxsShopOrder> verifyUserTickteCountAndShopAndActivite(@Param("userId") Long userId,@Param("shopIds")List<Long> shopIds);
 }
 

+ 1 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mq/RabbitKxsOrderQueueListener.java

@@ -40,6 +40,7 @@ public class RabbitKxsOrderQueueListener {
 	@RabbitListener(queues = RabbitKxsOrderQueueMQ.QUEUE_NAME, ackMode = "MANUAL")
 	@RabbitHandler
 	public void onMessage(String msg, Message message, Channel channel){
+		log.info("收到客小爽订单消息: " + msg);
 		log.info("收到客小爽订单消息: " + RabbitKxsOrderQueueMQ.parse(msg));
         try {
 			RabbitKxsOrderQueueMQ.MsgEntity parse = RabbitKxsOrderQueueMQ.parse(msg);

+ 4 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsTicketService.java

@@ -22,5 +22,9 @@ public interface KxsTicketService extends IService<KxsTicket> {
      * @return {@link IPage}<{@link TicketListVO}>
      */
     IPage<TicketListVO> getByPage(Page<TicketListVO> page, Integer ticketType);
+    /**
+     * 校验用户名下劵大于等于3或下单过指定商品
+     */
+    Boolean verifyUserTickteCountAndShopAndActivite(Long userId);
 }
 

+ 29 - 1
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsTicketServiceImpl.java

@@ -6,14 +6,19 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.model.KxsBrand;
+import com.kxs.product.api.model.KxsMachine;
+import com.kxs.product.api.model.KxsShopOrder;
 import com.kxs.product.api.vo.kxsapp.ticket.TicketListVO;
 import com.kxs.product.biz.mapper.KxsBrandMapper;
+import com.kxs.product.biz.mapper.KxsMachineMapper;
+import com.kxs.product.biz.mapper.KxsShopOrderMapper;
 import com.kxs.product.biz.mapper.KxsTicketMapper;
 import com.kxs.product.api.model.KxsTicket;
 import com.kxs.product.biz.service.KxsTicketService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -27,7 +32,8 @@ import java.util.List;
 public class KxsTicketServiceImpl extends ServiceImpl<KxsTicketMapper, KxsTicket> implements KxsTicketService {
 
     private final KxsBrandMapper kxsBrandMapper;
-
+    private final KxsShopOrderMapper kxsShopOrderMapper;
+    private final KxsMachineMapper kxsMachineMapper;
     @Override
     public IPage<TicketListVO> getByPage(Page<TicketListVO> page, Integer ticketType) {
 
@@ -44,5 +50,27 @@ public class KxsTicketServiceImpl extends ServiceImpl<KxsTicketMapper, KxsTicket
         return byPage;
 
     }
+
+    @Override
+    public Boolean verifyUserTickteCountAndShopAndActivite(Long userId) {
+        //券码数量
+        Long ticketCount = baseMapper.selectCount(Wrappers.<KxsTicket>query().lambda().eq(KxsTicket::getUserId, userId).eq(KxsTicket::getStatus, 0));
+        if (ticketCount >= 3){
+            return true;
+        }
+        //指定商品id  (10-电签机具/广电卡通兑券,11-大POS兑换券,77-来客吧产品组合包A.78-来客吧产品组合包B.79-来客产品组合包C)
+        List<Long> shopIds = Arrays.asList(10L,11L,77L,78L,79L);
+        //校验是否下单过指定商品
+        List<KxsShopOrder> kxsShopOrderList = kxsShopOrderMapper.verifyUserTickteCountAndShopAndActivite(userId,shopIds);
+        if (!kxsShopOrderList.isEmpty()){
+            return true;
+        }
+        //查询激活数 条件为用户名下已激活已绑定的机具
+        Long aLong = kxsMachineMapper.selectCount(Wrappers.<KxsMachine>query().lambda().eq(KxsMachine::getUserId, userId).eq(KxsMachine::getIsAct, 1).eq(KxsMachine::getBindTime,1));
+        if (aLong >= 3){
+            return true;
+        }
+        return false;
+    }
 }
 

+ 42 - 0
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsShopOrderMapper.xml

@@ -83,5 +83,47 @@
         </where>
 
     </select>
+    <select id="verifyUserTickteCountAndShopAndActivite" resultType="com.kxs.product.api.model.KxsShopOrder">
+        select kso.* from kxs_shop_order kso
+        left join kxs_shop_order_info ksoi on kso.id = ksoi.order_id
+        where kso.del_flag != 1
+        and kso.user_id = #{userId}
+        and ksoi.goods_id in
+        <foreach collection="shopIds" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 </mapper>

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

@@ -17,14 +17,14 @@ public class StatUserGetMyTradeDTO {
      * 获取月份
      */
     @Schema(description = "获取月份")
-    private Object month;
+    private String month;
 
 
     /**
-     * 1:个人 2:计奖
+     * 0:个人 1:计奖
      */
-    @Schema(description = "1:个人 2:计奖")
-    private Object type;
+    @Schema(description = "0:个人 1:计奖")
+    private String type;
 
 
 

+ 17 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/ActivityAddVO.java

@@ -0,0 +1,17 @@
+package com.kxs.stat.api.vo.statUser;
+
+import lombok.Data;
+/**
+ * 计奖交易-激活商户vo 时间分组实体 品牌分组集合
+ */
+@Data
+public class ActivityAddVO {
+    /**
+     * 品牌  all为总激活
+     */
+    private String name;
+    /**
+     * 激活数
+     */
+    private Integer total;
+}

+ 6 - 2
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetMyTradeVO.java

@@ -115,11 +115,15 @@ public class StatUserGetMyTradeVO implements Serializable {
 
 
     /**
-     * 激活SIM卡
+     * 存量激活SIM卡
      */
     @Schema(description = "激活SIM卡")
     private Object activateSIMCount;
-
+    /**
+     * 当月激活SIM卡
+     */
+    @Schema(description = "当月激活SIM卡")
+    private Object activateSIMToMonthCount;
 
     /**
      * 1:个人  2:计奖

+ 21 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/TimeVO.java

@@ -0,0 +1,21 @@
+package com.kxs.stat.api.vo.statUser;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 计奖交易-激活商户vo 时间分组实体
+ */
+@Data
+public class TimeVO {
+    /**
+     * 时间
+     */
+    private String date;
+    /**
+     * 激活品牌分组集合
+     */
+    private List<ActivityAddVO> activityAdd;
+
+}

+ 0 - 11
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/Times.java

@@ -1,11 +0,0 @@
-package com.kxs.stat.api.vo.statUser;
-
-import lombok.Data;
-
-import java.util.List;
-
-@Data
-public class Times {
-    private String name;
-    private List<String> time;
-}

+ 20 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/TimesVO.java

@@ -0,0 +1,20 @@
+package com.kxs.stat.api.vo.statUser;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 计奖交易-激活商户vo
+ */
+@Data
+public class TimesVO {
+    /**
+     * 用户名
+     */
+    private String name;
+    /**
+     * 激活商户列表 根据时间
+     */
+    private List<TimeVO> time;
+}

+ 9 - 4
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java

@@ -7,8 +7,9 @@ import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.stat.api.dto.statUser.StatUserGetMyTradeDTO;
 
 import com.kxs.stat.api.dto.statUser.StatUserGetUserStatByDayOrMonthDTO;
-import com.kxs.stat.api.vo.statUser.Times;
+import com.kxs.stat.api.model.KxsUserActTrade;
 import com.kxs.stat.biz.service.KxsMerchantTradeService;
+import com.kxs.stat.biz.service.KxsUserActTradeService;
 import com.kxs.stat.biz.service.KxsUserTradeService;
 
 import jakarta.validation.Valid;
@@ -34,7 +35,7 @@ public class KxsStatUserController {
     private final KxsUserTradeService kxsUserTradeService;
 
     private final KxsMerchantTradeService kxsMerchantTradeService;
-
+    private final KxsUserActTradeService kxsUserActTradeService;
     /**
      * 用户详情-获取用户统计数据
      *
@@ -89,11 +90,15 @@ public class KxsStatUserController {
      *
      * @param page 分页对象
      * @param totalType 统计类型 0 个人  1 团队
+     * @param
      * @return 计奖交易-激活商户统计
      */
     @GetMapping("/getActivateMerchantList")
-    public R getActivateMerchantList(@ParameterObject Page<Times> page, @RequestParam("totalType")Integer totalType) {
-        return R.ok();
+    public R getActivateMerchantList(@ParameterObject Page<KxsUserActTrade> page, @RequestParam("totalType")Integer totalType, @RequestParam("userId")Long userId,@RequestParam("month")String month) {
+        if (userId == 0){
+            userId = SecurityUtils.getUser().getId();
+        }
+        return kxsUserActTradeService.getActivateMerchantList(page,totalType,userId,month);
     }
 
 

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

@@ -3,6 +3,7 @@ package com.kxs.stat.biz.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.stat.api.model.KxsLkbActTrade;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 来客吧码牌激活统计表(KxsLkbActTrade)表数据库访问层
@@ -12,6 +13,12 @@ import org.apache.ibatis.annotations.Mapper;
  */
 @Mapper
 public interface KxsLkbActTradeMapper extends BaseMapper<KxsLkbActTrade> {
-
+    /**
+     * 获取全部码牌激活
+     * @param userId
+     * @param type 0 个人  1团队
+     * @return
+     */
+    Integer getSignCount(@Param("userId") Long userId,@Param("type") String type);
 }
 

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

@@ -34,6 +34,6 @@ public interface KxsLkbTradeMapper extends BaseMapper<KxsLkbTrade> {
      * @param type 1 日  2 月
      * @return
      */
-    TotalTradeAmtVO getLkbTrade(@Param("userId")Long userId, @Param("date")String date,@Param("type")Integer type);
+    TotalTradeAmtVO getLkbTrade(@Param("userId")Long userId, @Param("date")String date,@Param("type")Integer type, @Param("totalType")Integer totalType);
 }
 

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

@@ -59,6 +59,17 @@ public interface KxsUserActTradeMapper extends BaseMapper<KxsUserActTrade> {
      * @param times 指定日
      * @return
      */
-    Integer getActivityStatByLkb(Long userId, List<String> times);
+    Integer getActivityStatByLkb(@Param("userId")Long userId,@Param("times") List<String> times);
+
+    /**
+     * 获取全部激活
+     * @param userId
+     * @param totalType 0个人  1团队
+     * @param type 1 pos 2广电
+     * @param toMonth 1获取传入月份激活  2获取非传入月份激活  3 获取全部
+     * @param month 月份 toMonth = 3 可传null
+     * @return
+     */
+    Integer getUserActListByAll(@Param("userId") Long userId, @Param("totalType")  Integer totalType, @Param("type") Integer type,@Param("toMonth") Integer toMonth, @Param("month") Integer month);
 }
 

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

@@ -20,7 +20,7 @@ public interface KxsUserGdTradeMapper extends BaseMapper<KxsUserGdTrade> {
      * @param date 日
      * @return
      */
-    TotalTradeAmtVO getGdActCount(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type);
+    TotalTradeAmtVO getGdActCount(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type,@Param("totalType") Integer totalType);
 
     /**
      * 获取广电卡话费
@@ -28,6 +28,6 @@ public interface KxsUserGdTradeMapper extends BaseMapper<KxsUserGdTrade> {
      * @param date
      * @return
      */
-    TotalTradeAmtVO getGdTrade(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type);
+    TotalTradeAmtVO getGdTrade(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type,@Param("totalType") Integer totalType);
 }
 

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.stat.api.model.KxsUserNewTrade;
 import com.kxs.stat.api.vo.statUser.TrendTimesVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -20,8 +21,11 @@ public interface KxsUserNewTradeMapper extends BaseMapper<KxsUserNewTrade> {
      * @param userId
      * @param times 指定日期集合
      * @param type 1获取近7日,2获取近半年
+     * @param totalType 0个人  1团队
      * @return
      */
-    List<TrendTimesVO> getUserAddTrend(Long userId, List<String> times, Integer type);
+    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);
 }
 

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

@@ -1,6 +1,7 @@
 package com.kxs.stat.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.dto.statUser.StatUserGetMyTradeDTO;
 import com.kxs.stat.api.model.KxsUserTrade;
 import com.kxs.stat.api.vo.ShdTradeAmtVO;
 import com.kxs.stat.api.vo.TotalTradeAmtVO;
@@ -85,5 +86,13 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
      * @return
      */
     TotalTradeAmtVO getPosTrade(@Param("userId")Long userId, @Param("tableName")String tableName, @Param("date")String date,@Param("type")Integer type);
+
+    /**
+     * 获取我的业绩
+     * @param param type 1:个人 2:计奖
+     * @param tradeType  0pos  1云闪付
+     * @return
+     */
+    KxsUserTrade getMyPosOrCloudTrade(@Param("param")StatUserGetMyTradeDTO param, @Param("tableName")String tableName, @Param("tradeType")Integer tradeType,@Param("userId")Long userId);
 }
 

+ 9 - 2
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsZlbTradeMapper.java

@@ -14,8 +14,15 @@ import org.apache.ibatis.annotations.Param;
  */
 @Mapper
 public interface KxsZlbTradeMapper extends BaseMapper<KxsZlbTrade> {
-
-    TotalTradeAmtVO getZlbTrade(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type);
+    /**
+     * 获取指定时间助力宝交易额
+     * @param userId
+     * @param date
+     * @param type 1 日  2月
+     * @param totalType 1 全部  0 个人
+     * @return
+     */
+    TotalTradeAmtVO getZlbTrade(@Param("userId")Long userId, @Param("date")String date, @Param("type")Integer type, @Param("totalType")Integer totalType);
 
 }
 

+ 3 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserActTradeService.java

@@ -1,5 +1,6 @@
 package com.kxs.stat.biz.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
@@ -18,5 +19,7 @@ public interface KxsUserActTradeService extends IService<KxsUserActTrade> {
 
 
     List<GetActivityStatByIdAndTimeVO> getActivityStatByIdAndTime(List<GetActivityStatByIdAndTimeDTO> param);
+
+    R getActivateMerchantList(Page<KxsUserActTrade> page, Integer totalType,Long userId,String month);
 }
 

+ 93 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserActTradeServiceImpl.java

@@ -1,16 +1,25 @@
 package com.kxs.stat.biz.service.impl;
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
 import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
+import com.kxs.stat.api.vo.statUser.*;
 import com.kxs.stat.biz.mapper.KxsUserActTradeMapper;
 import com.kxs.stat.api.model.KxsUserActTrade;
 import com.kxs.stat.biz.service.KxsUserActTradeService;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 创客激活统计表(KxsUserActTrade)表服务实现类
@@ -43,5 +52,89 @@ public class KxsUserActTradeServiceImpl extends ServiceImpl<KxsUserActTradeMappe
         }
         return getActivityStatByIdAndTimeVOS;
     }
+
+    @Override
+    public R getActivateMerchantList(Page<KxsUserActTrade> page, Integer totalType,Long userId,String month) {
+        LocalDate now = LocalDate.now();
+        List<String> times = new ArrayList<>();
+        int type = 0;
+        if (month.equals("0")){
+            type = 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);
+            }
+
+            //查询全部激活
+            List<TrendTimesVO> trendTimesVOS = baseMapper.getUserActListByDayOrMonth(times, userId,null, type);
+            //查询激活, 根据品牌分组
+            List<TrendTimesVO> trendTimesVOListBrand = baseMapper.getUserActListByDayOrMonth(times, userId, 1, type);
+
+            // todo  暂停
+            //构造数据
+            //将全部交易额以及品牌交易额构造进入map  key为品牌id  或  all
+//            ArrayList<ActivityAddVO> activityAddVOS = new ArrayList<>();
+//            Map<String,List<ActivityAddVO>> treadTrend = new HashMap<>();
+//            for (TrendTimesVO trendTimesVO : trendTimesVOS) {
+//                Integer total = trendTimesVO.getTotal();
+//                Integer brandId = trendTimesVO.getBrandId();
+//                ActivityAddVO activityAddVO = new ActivityAddVO();
+//                activityAddVO.setName(String.valueOf(brandId));
+//                activityAddVO.setTotal(total);
+//                activityAddVOS.add(activityAddVO);
+//            }
+//            treadTrend.put("all",activityAddVOS);
+//            treadTrend.put("all", allTimeVOS);
+//
+//            for (TrendTimesVO trendTimesVO : trendTimesVOListBrand) {
+//                List<TrendTimesVO> trendTimesVOSBrand = treadTrend.get(trendTimesVO.getBrandId().toString());
+//
+//            }
+//            //将map转换为返回实体类
+//            ArrayList<TrendVO> trendVOS = new ArrayList<>();
+//            for (Map.Entry<String, List<TrendTimesVO>> entry : treadTrend.entrySet()) {
+//                TrendVO trendVO = new TrendVO();
+//                trendVO.setName(entry.getKey());
+//                trendVO.setTimes(entry.getValue());
+//                trendVOS.add(trendVO);
+//            }
+        }else {
+            type = 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")));
+                }
+            }
+        }
+
+        //查询广电激活
+        Integer gdNumber = baseMapper.getActivityStatByGdOrPos(userId,times,2);
+        //查询来客吧激活
+        Integer lkbNumber = baseMapper.getActivityStatByLkb(userId,times);
+        TimesVO timesVO = new TimesVO();
+        return null;
+    }
 }
 

+ 125 - 8
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.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.StatUserGetUserStatByDayOrMonthDTO;
 import com.kxs.stat.api.model.KxsLkbTrade;
@@ -63,6 +64,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     private final static String PREFIX_TABLE_NAME = "kxs_user_trade_";
     private final static String PREFIX_TABLE_NAME_TEMP = "kxs_user_trade_temp_";
     private final KxsUserGdTradeMapper kxsUserGdTradeMapper;
+    private final KxsLkbActTradeMapper kxsLkbActTradeMapper;
 
     @Override
     @Async
@@ -269,7 +271,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);
+        List<TrendTimesVO> userAddTrendToday = kxsUserNewTradeMapper.getUserAddTrend(userId, todayList, 1,1);
         for (TrendTimesVO trendTimesVO : userAddTrendToday) {
             userAddToDay += trendTimesVO.getTotal();
         }
@@ -278,7 +280,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);
+        List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2,1);
         for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
             userAddMonth += trendTimesVO.getTotal();
         }
@@ -304,7 +306,122 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
     @Override
     public R getMyTrade(StatUserGetMyTradeDTO param) {
-        return null;
+        Long userId = SecurityUtils.getUser().getId();
+        String month = param.getMonth();
+         String type = param.getType();
+         //拼接表名
+        String tableName = PREFIX_TABLE_NAME + month;
+        StatUserGetMyTradeVO statUserGetMyTradeVO = new StatUserGetMyTradeVO();
+        //获取pos交易额
+        KxsUserTrade kxsUserPosTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,0,userId);
+        BigDecimal posDebitAmount = BigDecimal.ZERO;
+        BigDecimal posCreditAmount = BigDecimal.ZERO;
+        if (kxsUserPosTrade != null){
+            BigDecimal proBDirectTradeAmt = kxsUserPosTrade.getProBDirectTradeAmt();//稳定期B贷记卡
+            BigDecimal proADirectTradeAmt = kxsUserPosTrade.getProADirectTradeAmt();//稳定期A贷记卡
+            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();//扶持期借记卡
+
+            //pos借记卡
+            posDebitAmount = posDebitAmount.add(proBDebitTradeAmt).add(proADebitTradeAmt).add(proDebitTradeAmt).add(helpDebitTradeAmt);
+            //贷记卡
+            posCreditAmount = posCreditAmount.add(proBDirectTradeAmt).add(proADirectTradeAmt).add(proDirectTradeAmt).add(helpDirectTradeAmt);
+        }
+        statUserGetMyTradeVO.setPosDebitAmount(posDebitAmount);//Pos借记卡
+        statUserGetMyTradeVO.setPosCreditAmount(posCreditAmount);//Pos贷记卡
+
+        //获取云闪付交易额
+        KxsUserTrade kxsUserCloudTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,1,userId);
+        BigDecimal cloudAmount = BigDecimal.ZERO;
+        if (kxsUserCloudTrade != null){
+            cloudAmount = cloudAmount.add(kxsUserCloudTrade.getProBDirectTradeAmt())
+                    .add(kxsUserCloudTrade.getProADirectTradeAmt())
+                    .add(kxsUserCloudTrade.getProDirectTradeAmt())
+                    .add(kxsUserCloudTrade.getHelpDirectTradeAmt())
+                    .add(kxsUserCloudTrade.getProBDebitTradeAmt())
+                    .add(kxsUserCloudTrade.getProADebitTradeAmt())
+                    .add(kxsUserCloudTrade.getProDebitTradeAmt())
+                    .add(kxsUserCloudTrade.getHelpDebitTradeAmt());
+        }
+        statUserGetMyTradeVO.setCloudAmunt(cloudAmount);//云闪付
+
+
+        //助力宝交易额
+        TotalTradeAmtVO totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, month, 2, Integer.valueOf(type));
+        BigDecimal zlbAmt = BigDecimal.ZERO;
+        if (totalTradeAmtVO != null){
+            zlbAmt = totalTradeAmtVO.getZlbAmt();
+        }
+        statUserGetMyTradeVO.setZlbAmount(zlbAmt);//助力宝
+
+
+        totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, month, 2, Integer.valueOf(type));
+        BigDecimal lkbActAmt = BigDecimal.ZERO;
+        BigDecimal lkbAmt = BigDecimal.ZERO;
+        if (totalTradeAmtVO != null){
+            lkbActAmt = totalTradeAmtVO.getLkbActAmt();
+            lkbAmt = totalTradeAmtVO.getLkbAmt();
+        }
+        statUserGetMyTradeVO.setLkbActivityAmount(lkbActAmt);//来客吧活动
+        statUserGetMyTradeVO.setLkbAmount(lkbAmt);//来客吧非活动
+
+
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, month, 2, Integer.valueOf(type));
+        BigDecimal gdAmount = BigDecimal.ZERO;
+        if (totalTradeAmtVO != null){
+            gdAmount = totalTradeAmtVO.getGdAmount();
+        }
+        statUserGetMyTradeVO.setGdTelephoneCharge(gdAmount);//广电话费
+
+        //广电交易额
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, month,2, Integer.valueOf(type));
+        BigDecimal gdActivityAmount = BigDecimal.ZERO;
+        if (totalTradeAmtVO != null){
+            Integer gdCount = totalTradeAmtVO.getGdCount();
+            //广电激活量 * 10000
+            gdActivityAmount = gdActivityAmount.add(new BigDecimal(gdCount * 10000));
+        }
+        statUserGetMyTradeVO.setGdActivityAmount(gdActivityAmount);//广电活动
+
+        BigDecimal totalAmount = BigDecimal.ZERO;
+        totalAmount = totalAmount.add(posDebitAmount).add(posCreditAmount).add(cloudAmount).add(zlbAmt).add(lkbActAmt).add(lkbAmt).add(gdAmount).add(gdActivityAmount);
+        statUserGetMyTradeVO.setTotalAmount(totalAmount);//总交易
+
+        //获取指定月新增用户
+        Integer userAddMonth = 0;
+        List<String> monthList = Arrays.asList(month);
+        List<TrendTimesVO> userAddTrendMonth = kxsUserNewTradeMapper.getUserAddTrend(userId, monthList, 2, Integer.valueOf(type));
+        for (TrendTimesVO trendTimesVO : userAddTrendMonth) {
+            userAddMonth += trendTimesVO.getTotal();
+        }
+        statUserGetMyTradeVO.setUserAddCount(userAddMonth);//新增用户
+
+
+
+        Integer totalUserCount = kxsUserNewTradeMapper.getUserAllTrend(userId,type);
+        statUserGetMyTradeVO.setTotalUserCount(totalUserCount != null? totalUserCount : 0);//总用户
+
+        //获取累计全部激活商户
+        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 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);
     }
 
     private BigDecimal getAmountToDayOrMonth(Long userId, String date, String tableName, BigDecimal amount, int type) {
@@ -314,25 +431,25 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             amount = amount.add(totalTradeAmtVO.getPosAmt());
         }
         //来客吧交易额
-        totalTradeAmtVO = kxsLkbTradeMapper.getLkbTrade(userId, date, type);
+        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);
+        totalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, date, type,1);
         if (totalTradeAmtVO != null) {
             amount = amount.add(totalTradeAmtVO.getZlbAmt());
         }
         //广电交易额
-        totalTradeAmtVO = kxsUserGdTradeMapper.getGdActCount(userId, date, type);
+        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);
+        totalTradeAmtVO = kxsUserGdTradeMapper.getGdTrade(userId, date, type,1);
         if (totalTradeAmtVO != null){
             amount = amount.add(totalTradeAmtVO.getGdAmount());
         }
@@ -357,7 +474,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
     private void setUserAddTrend(Long userId, List<String> times, Integer type, StatUserGetUserStatByDayOrMonthVO statUserGetUserStatByDayOrMonthVO) {
         TrendVO trendVO = new TrendVO();
-        List<TrendTimesVO> trendTimesVOS = kxsUserNewTradeMapper.getUserAddTrend(userId, times, type);
+        List<TrendTimesVO> trendTimesVOS = kxsUserNewTradeMapper.getUserAddTrend(userId, times, type,1);
         trendVO.setName("all");
         trendVO.setTimes(trendTimesVOS);
         statUserGetUserStatByDayOrMonthVO.setUserAddTrend(trendVO);

+ 6 - 0
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsLkbActTradeMapper.xml

@@ -15,5 +15,11 @@
         <result column="total_type" property="totalType" />
 
     </resultMap>
+    <select id="getSignCount" resultType="java.lang.Integer">
+        select sum(act_num) from kxs_lkb_act_trade
+        where del_flag != 1
+        and total_type = #{type}
+        and user_id = #{userId}
+    </select>
 
 </mapper>

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

@@ -30,7 +30,7 @@
         SELECT SUM(trade_amt) as trade_amt, SUM(act_trade_amt)
         FROM kxs_lkb_trade
         <where>
-            and total_type = 1
+            and total_type = #{totalType}
             <if test="type == 1">
                 and trade_date = #{date}
             </if>

+ 23 - 0
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserActTradeMapper.xml

@@ -123,6 +123,29 @@
             #{time}
         </foreach>
     </select>
+    <select id="getUserActListByAll" resultType="java.lang.Integer">
+        SELECT
+        SUM(act_num) AS total
+        FROM
+        kxs_user_act_trade
+        WHERE del_flag != 1
+        AND user_id = #{userId}
+        AND total_type = #{totalType}
+        <if test="type == 1">
+            and brand_id != 14
+        </if>
+        <if test="type == 2">
+            and brand_id = 14
+        </if>
+        <if test="toMonth != 3">
+            <if test="toMonth == 1">
+                and trade_month != #{month}
+            </if>
+            <if test="toMonth == 2">
+                and trade_month = #{month}
+            </if>
+        </if>
+    </select>
 
 
 </mapper>

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

@@ -22,7 +22,7 @@
         FROM kxs_user_act_trade
         <where>
             and brand_id = 14
-            and total_type = 1
+            and total_type = #{totalType}
             and user_id = #{userId}
             <if test="type == 1">
                 and trade_date = #{date}
@@ -35,7 +35,7 @@
     <select id="getGdTrade" resultType="com.kxs.stat.api.vo.TotalTradeAmtVO">
         select  SUM(trade_amt) as gdAmount from kxs_user_gd_trade
         <where>
-            and total_type = 1
+            and total_type = #{totalType}
             and user_id = #{userId}
             <if test="type == 1">
                 and trade_date = #{date}

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

@@ -40,7 +40,7 @@
                 #{time}
             </foreach>
         </if>
-        and total_type = 1
+        and total_type = #{totalType}
         GROUP BY
         <if test="type == 1">
             trade_date
@@ -49,5 +49,13 @@
             trade_month
         </if>
     </select>
+    <select id="getUserAllTrend" resultType="java.lang.Integer">
+        select sum(new_count) as totalCount
+        from kxs_user_new_trade
+        where
+            del_flag != 1
+        and user_id = #{userId}
+        and total_type = #{type}
+    </select>
 
 </mapper>

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

@@ -258,6 +258,23 @@
          </if>
         </where>
     </select>
+    <select id="getMyPosOrCloudTrade" resultType="com.kxs.stat.api.model.KxsUserTrade">
+        select
+        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_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 = #{param.type}
+            and user_id = #{userId}
+            and trade_type = #{tradeType}
+        </where>
+    </select>
 
 
     <insert id="insertTempShdTableData">

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

@@ -26,7 +26,7 @@
                 and trade_month = #{date}
             </if>
             and del_flag != 1
-            and total_type = 1
+            and total_type = #{totalType}
         </where>
     </select>
 

+ 0 - 6
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/dto/kxsapp/camp/CampAddBcqtTeamDTO.java

@@ -19,7 +19,6 @@ public class CampAddBcqtTeamDTO {
      * 团队名称
      */
     @Schema(description = "团队名称")
-    @NotEmpty(message = "团队名不能为空")
     private String teamName;
 
 
@@ -27,10 +26,5 @@ public class CampAddBcqtTeamDTO {
      * 队长id
      */
     @Schema(description = "队长id")
-    @NotNull(message = "用户id不能为空")
     private Long captainId;
-
-
-
-
 }

+ 2 - 2
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/feign/RemoteUserService.java

@@ -36,12 +36,12 @@ public interface RemoteUserService {
 	/**
 	 * 定时统计活动期间人员激活  定时任务
 	 */
-	@PostExchange("/setUserActivityTimeStat")
+	@PostExchange("/camp/setUserActivityTimeStat")
 	void setUserActivityTimeStat(@RequestHeader(SecurityConstants.FROM) String from);
 
 	/**
 	 * 定时任务,关闭活动结束的team和用户状态
 	 */
-	@PostExchange("/setUserActiviteStatus")
+	@PostExchange("/camp/setUserActiviteStatus")
 	void setUserActiviteStatus(@RequestHeader(SecurityConstants.FROM) String from);
 }

+ 5 - 1
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/model/KxsBcqtTeam.java

@@ -127,7 +127,11 @@ public class KxsBcqtTeam extends Model<KxsBcqtTeam> implements Serializable {
      */
     @Schema(description = "队长名")
     private String username;
-
+    /**
+     * 活动类型 1训练营
+     */
+    @Schema(description = "活动类型 1训练营")
+    private Integer activiteType;
 
 }
 

+ 5 - 1
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/vo/admin/GetByBcqtPageVO.java

@@ -102,5 +102,9 @@ public class GetByBcqtPageVO {
      */
     @Schema(description = "激活总量")
     private Integer activityTotal;
-
+    /**
+     * 活动类型 1训练营
+     */
+    @Schema(description = "活动类型 1训练营")
+    private Integer activiteType;
 }

+ 4 - 3
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/CampController.java

@@ -123,16 +123,17 @@ public class CampController {
     /**
      * 百城千团-创建团队校验
      *
-     * @param param 实体对象
      * @return 百城千团-创建团队
      */
     @PostMapping("/verifyAddTeam")
-    public R verifyAddTeam(@Valid @RequestBody CampAddBcqtTeamDTO param) {
+    public R verifyAddTeam() {
+        CampAddBcqtTeamDTO param = new CampAddBcqtTeamDTO();
         Long id = SecurityUtils.getUser().getId();
         param.setCaptainId(id);
-        return R.ok(kxsBcqtTeamService.verifyAddTeam(param));
+        return kxsBcqtTeamService.verifyAddTeam(param);
     }
 
+
     /**
      * 百城千团-退出团队
      *

+ 1 - 3
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/controller/kxsapp/MorningController.java

@@ -1,7 +1,6 @@
 package com.kxs.system.biz.controller.kxsapp;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
@@ -11,7 +10,6 @@ import com.kxs.system.biz.service.KxsMorningService;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.springdoc.core.annotations.ParameterObject;
-import org.springframework.data.annotation.CreatedBy;
 import org.springframework.web.bind.annotation.*;
 
 /**
@@ -38,7 +36,7 @@ public class MorningController {
      */
     @GetMapping("/page")
     public R page(@ParameterObject Page<KxsMorning> page,@RequestParam("month") String month) {
-        AssertUtil.isYyyyMM(month);
+        AssertUtil.isSimpleMonthPattern(month);
         String skbYear = month.substring(0, 4);
         String subMonth = month.substring(5, 7);
         //拼接sql

+ 1 - 1
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/KxsBcqtTeamService.java

@@ -48,7 +48,7 @@ public interface KxsBcqtTeamService extends IService<KxsBcqtTeam> {
      * @param param 实体对象
      * @return 百城千团-创建团队
      */
-    boolean verifyAddTeam(CampAddBcqtTeamDTO param);
+    R verifyAddTeam(CampAddBcqtTeamDTO param);
     /**
      * 百城千团-退出团队
      *

+ 40 - 20
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsBcqtTeamServiceImpl.java

@@ -3,6 +3,7 @@ package com.kxs.system.biz.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -85,8 +86,15 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     @Override
     public R addBcqtTeam(CampAddBcqtTeamDTO param) {
         String teamName = param.getTeamName();
+        if (param.getTeamName().isEmpty()){
+            return R.failed("团队名不能为空");
+        }
+        if (param.getCaptainId() == null){
+            return R.failed("队长id不能为空");
+        }
         Long captainId = param.getCaptainId();
-        if (!verifyAddTeam(param)) {
+        R r = verifyAddTeam(param);
+        if (r.getStatus() == 0) {
             return R.failed("校验未通过,非法参数");
         }
         R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(Math.toIntExact(captainId), SecurityConstants.FROM_IN);
@@ -123,27 +131,30 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     }
 
     @Override
-    public boolean verifyAddTeam(CampAddBcqtTeamDTO param) {
-        String teamName = param.getTeamName();
-        Long captainId = param.getCaptainId();
+    public R verifyAddTeam(CampAddBcqtTeamDTO param) {
 
-        //不存在同名团队
-        KxsBcqtTeam kxsBcqtTeam = baseMapper.selectOne(Wrappers.<KxsBcqtTeam>query().lambda().eq(KxsBcqtTeam::getTeamName, teamName));
-        if (kxsBcqtTeam != null) {
-            return false;
-        }
+        Long captainId = param.getCaptainId();
         //不存在未结束的团队
         KxsBcqtTeamDetail kxsBcqtTeamDetail = kxsBcqtTeamDetailMapper.selectOne(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getUserId, captainId).eq(KxsBcqtTeamDetail::getEndFlag, 0));
         if (kxsBcqtTeamDetail != null) {
-            return false;
+            return R.failed("您的参团还未结束");
         }
         //用户存在
         R<KxsUser> kxsUserR = remoteKxsUserService.loadUserById(Math.toIntExact(captainId), SecurityConstants.FROM_IN);
         if (kxsUserR.getData() == null){
-            return false;
+            return R.failed("非法参数,用户不存在");
         }
         //用户状态正常且已实名
-        return kxsUserR.getData().getStatus().equals(1) || kxsUserR.getData().getRealStatus().equals(1);
+        if (!kxsUserR.getData().getStatus().equals(1) || !kxsUserR.getData().getRealStatus().equals(1)){
+            return R.failed("用户状态异常或用户未实名");
+        }
+        //有效创客创客校验
+        boolean b = remoteKxsUserService.validUserVerify(captainId, SecurityConstants.FROM_IN);
+        if (!b){
+            return R.failed("该用户非有效创客");
+
+        }
+        return R.ok();
     }
 
     @Override
@@ -266,7 +277,7 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     public void setUserActivityTimeStat() {
         //获取全部活动中团队
         List<KxsBcqtTeam> list = list(Wrappers.<KxsBcqtTeam>query().lambda().eq(KxsBcqtTeam::getStatus, 1));
-        //构造查询数据
+        //处理查询数据
         for (KxsBcqtTeam kxsBcqtTeam : list) {
             ArrayList<GetActivityStatByIdAndTimeDTO> getActivityStatByIdAndTimeDTOS = new ArrayList<>();
             //构造该团队的查询日期
@@ -279,10 +290,10 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
                 String currentDateString = LocalDateTimeUtil.format(currentDate, DatePattern.PURE_DATE_PATTERN);
                 futureDates.add(currentDateString);
             }
-            //查询所有团队成员
+            //查询团队所有成员
             List<KxsBcqtTeamDetail> kxsBcqtTeamDetailS = kxsBcqtTeamDetailMapper.selectList(Wrappers.<KxsBcqtTeamDetail>query().lambda()
                     .eq(KxsBcqtTeamDetail::getTeamId,kxsBcqtTeam.getId()));
-            //构造dto
+            //构造查询dto
             for (KxsBcqtTeamDetail kxsBcqtTeamDetail : kxsBcqtTeamDetailS) {
                 GetActivityStatByIdAndTimeDTO getActivityStatByIdAndTimeDTO = new GetActivityStatByIdAndTimeDTO();
                 getActivityStatByIdAndTimeDTO.setUserId(kxsBcqtTeamDetail.getUserId());
@@ -353,8 +364,10 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     @Override
     public R getByBcqtPage(Page<KxsBcqtTeam> page, GetByBcqtPageDTO param) {
         ArrayList<Long> teamIds = new ArrayList<>();
+        //当传入的用户编码不为null时先行查询用户
         if (param.getUserCode() != null && !param.getUserCode().equals("")){
             List<KxsBcqtTeamDetail> kxsBcqtTeamDetails = kxsBcqtTeamDetailMapper.selectList(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getUserCode, param.getUserCode()));
+            //当用户未查询到时直接返回空
             if (kxsBcqtTeamDetails.size() == 0){
                 return R.ok();
             }
@@ -362,17 +375,21 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
                 teamIds.add(kxsBcqtTeamDetail.getTeamId());
             }
         }
-
-        Page<KxsBcqtTeam> page1 = page(page, Wrappers.<KxsBcqtTeam>query().lambda()
+        //查询团队列表
+        Page<KxsBcqtTeam> kxsBcqtTeamPage = page(page, Wrappers.<KxsBcqtTeam>query().lambda()
                 .eq(param.getStatus() != null, KxsBcqtTeam::getStatus, param.getStatus())
                 .eq(param.getReachStatus() != null, KxsBcqtTeam::getReachStatus, param.getReachStatus())
                 .like(param.getTeamName() != null && !param.getTeamName().equals(""),KxsBcqtTeam::getTeamName,param.getTeamName())
                 .in(teamIds.size() != 0, KxsBcqtTeam::getId, teamIds));
+        //构造返回列表VO集合
         ArrayList<GetByBcqtPageVO> getByBcqtPageVOS = new ArrayList<>();
-        for (KxsBcqtTeam record : page1.getRecords()) {
+        for (KxsBcqtTeam record : kxsBcqtTeamPage.getRecords()) {
+            //构造返回实体
             GetByBcqtPageVO getByBcqtPageVO = new GetByBcqtPageVO();
             BeanUtil.copyProperties(record,getByBcqtPageVO);
+            //查询团体详情数据 构造总激活数
             List<KxsBcqtTeamDetail> kxsBcqtTeamDetails = kxsBcqtTeamDetailMapper.selectList(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getTeamId, record.getId()));
+            //总激活数
             int activityTotal = 0;
             for (KxsBcqtTeamDetail kxsBcqtTeamDetail : kxsBcqtTeamDetails) {
                 if (kxsBcqtTeamDetail.getGdActivateNumber() != null){
@@ -397,8 +414,11 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
             getByBcqtPageVO.setActivityTotal(activityTotal);
             getByBcqtPageVOS.add(getByBcqtPageVO);
         }
-
-        return R.ok(getByBcqtPageVOS);
+        //构造返回page
+        Page<GetByBcqtPageVO> kxsBcqtTeamDetailPage = new Page<>();
+        kxsBcqtTeamDetailPage.setTotal(kxsBcqtTeamPage.getTotal());
+        kxsBcqtTeamDetailPage.setRecords(getByBcqtPageVOS);
+        return R.ok(kxsBcqtTeamDetailPage);
     }
 
     @Override

+ 1 - 1
kxs-system/kxs-system-biz/src/main/resources/mapper/KxsBcqtTeamDetailMapper.xml

@@ -21,7 +21,7 @@
     </resultMap>
     <select id="getMyBcqtList" resultType="com.kxs.system.api.vo.kxsapp.camp.CampGetMyBcqtListVO">
         select
-        kbt.id,kbt.team_name,kbt.start_time,kbt.end_time,kbt.status,kbt.captain_id,kbt.username
+        kbt.id,kbt.team_name,kbt.start_time,kbt.end_time,kbt.status,kbt.captain_id,kbt.username,kbt.team_number
         from
             kxs_bcqt_team_detail kbtd
                 left join kxs_bcqt_team kbt on kbtd.team_id = kbt.id

+ 4 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsPartnerServiceImpl.java

@@ -138,6 +138,10 @@ public class KxsPartnerServiceImpl extends ServiceImpl<KxsPartnerMapper, KxsPart
 
         //操作类型
         OperationType operation = dmlData.getOperation();
+        if(operation.equals(OperationType.DELETE)){
+            baseMapper.deleteById(id);
+            return;
+        }
         for (String field : changeFieldList) {
 
             switch (field) {

+ 5 - 2
kxs-transfer/src/main/java/com/kxs/transfer/api/task/taskJob.java

@@ -81,7 +81,7 @@ public class taskJob {
     @Scheduled(fixedDelay = 1000 * 60 * 5)
 //    @Scheduled(fixedDelay = 1000 * 5)
     public void tradeRepeatEntry(){
-        List<KxsDtsErrorLog> list = kxsDtsErrorLogService.list(Wrappers.<KxsDtsErrorLog>lambdaQuery().eq(KxsDtsErrorLog::getOperation, OperationType.INSERT).last("limit 100"));
+        List<KxsDtsErrorLog> list = kxsDtsErrorLogService.list(Wrappers.<KxsDtsErrorLog>lambdaQuery().in(KxsDtsErrorLog::getOperation, OperationType.INSERT, OperationType.DELETE).last("limit 100"));
 
         for (KxsDtsErrorLog kxsDtsErrorLog : list) {
             try {
@@ -109,7 +109,10 @@ public class taskJob {
                     //删除本条记录
                     kxsDtsErrorLogService.removeById(kxsDtsErrorLog.getId());
                 }
-
+                //合伙人账户余额变动记录表
+                if ("AmountRecordNew".equals(kxsDtsErrorLog.getTableName()) ) {
+                    kxsPartnerService.changeAccountLogData(JSON.parseObject(kxsDtsErrorLog.getContent(), DMLData.class));
+                }
 
 
 

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

@@ -31,6 +31,14 @@ public interface RemoteKxsUserService {
 	@GetExchange("/app/checkMobileCode")
 	R<Boolean> checkMobileCode(@RequestParam("phone") String phone, @RequestParam("code") String code, @RequestHeader(SecurityConstants.FROM) String from);
 
+	/**
+	 * 有效创客校验
+	 * @param userId 用户id
+	 * @param from
+	 * @return
+	 */
+	@GetExchange("/user/validUserVerify")
+	boolean validUserVerify(@RequestParam("userId") Long userId, @RequestHeader(SecurityConstants.FROM) String from);
 	/**
 	 * 通过手机号码查询用户信息
 	 * @param phone 电话信息

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

@@ -63,7 +63,15 @@ public class KxsUserController {
                 .eq(KxsUser::getUserCode, userCode));
         return R.ok(user);
     }
+    /**
+     * 有效创客校验
+     */
+    @Inner
+    @GetMapping(value = { "/validUserVerify" })
+    public boolean validUserVerify(@RequestParam("userId") Long userId) {
 
+        return kxsUserService.validUserVerify(userId);
+    }
     /**
      * 检查用户是否在自己伞下
      * 内部调用

+ 35 - 3
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -201,7 +201,11 @@ public interface KxsUserService extends IService<KxsUser> {
      */
     LevelDetailVO levelDetail();
 
-
+    /**
+     * 验证验证码
+     *
+     * @param mobile 手机号
+     */
     void checkValidateCode(String mobile, String code);
 
     /**
@@ -211,13 +215,41 @@ public interface KxsUserService extends IService<KxsUser> {
      * @return {@link R}
      */
     R forgetPayPwd(ForgetPayPwdDTO param);
-
+    /**
+     * 创客列表
+     *
+     * @param page 分页对象
+     * @param param 查询实体
+     * @return 创客列表
+     */
     Object myUserList(Page<KxsUser> page, UserMyUserListDTO param);
-
+    /**
+     * 用户统计
+     *
+     * @return 用户统计
+     */
     Object myUserStatistics();
 
+    /**
+     * 用户详情
+     *
+     * @param id 主键ID
+     * @return 用户详情
+     */
     R myUserDetail(Integer id);
 
+    /**
+     * 校验推荐码
+     * @param userCode
+     * @return
+     */
     Object verifyUserCode(String userCode);
+
+    /**
+     * 有效创客校验
+     * @param userId
+     * @return
+     */
+    boolean validUserVerify(Long userId);
 }
 

+ 1 - 2
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsShdTradeAmtServiceImpl.java

@@ -21,7 +21,6 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 
 /**
  * 股东大盘分红交易表(KxsShdTradeAmt)表服务实现类
@@ -39,7 +38,7 @@ public class KxsShdTradeAmtServiceImpl extends ServiceImpl<KxsShdTradeAmtMapper,
     @Override
     public Object getShareholderAmount(String tradeMonth) {
         //格式校验
-        AssertUtil.isYyyyMM(tradeMonth);
+        AssertUtil.isSimpleMonthPattern(tradeMonth);
         tradeMonth = tradeMonth.split("-")[0] + tradeMonth.split("-")[1];
         KxsShdTradeAmt kxsShdTradeAmt = kxsShdTradeAmtMapper.selectOne(Wrappers.<KxsShdTradeAmt>query().lambda().eq(KxsShdTradeAmt::getTradeMonth, tradeMonth));
         ShareholderGetShareholderAmountVO shareholderGetShareholderAmountVO = new ShareholderGetShareholderAmountVO();

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

@@ -21,6 +21,7 @@ import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.SpringContextHolder;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.product.api.vo.kxsapp.excel.ExistPayPwdVO;
 import com.kxs.store.api.feign.RemoteKxsStoreService;
 import com.kxs.store.api.model.KxsWarehouseLimit;
@@ -96,7 +97,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     private final KxsPartnerMapper kxsPartnerMapper;
 
     private final KxsUserPresetLogMapper kxsUserPresetLogMapper;
-
+    private final RemoteKxsProductService remoteKxsProductService;
 
     private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder();
     
@@ -430,6 +431,29 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         return R.ok(one.getUsername());
     }
 
+    @Override
+    public boolean validUserVerify(Long userId) {
+        //校验有效创客
+        LocalDateTime now = LocalDateTime.now();
+        //运营中心校验
+        //查询自己当前未过期的运营中心数据
+        KxsPartner kxsPartner = kxsPartnerMapper.selectOne(Wrappers.<KxsPartner>query().lambda().eq(KxsPartner::getUserId, userId).gt(KxsPartner::getExpiredDate, now));
+        if (kxsPartner != null){
+            return true;
+        }
+        //查询盟主
+        KxsLeader kxsLeader = kxsLeaderMapper.selectOne(Wrappers.<KxsLeader>query().lambda().eq(KxsLeader::getUserId, userId).gt(KxsLeader::getExpiredDate, now));
+        if (kxsLeader != null){
+            return true;
+        }
+        //查询个人名下电签兑换劵+大机兑换券>=3 或 激活POS机数量+激活来客吧商户数量+激活广电卡数量 >3 或 商城下单过指定商品(10-电签机具/广电卡通兑券,11-大POS兑换券,77-来客吧产品组合包A.78-来客吧产品组合包B.79-来客产品组合包C)
+        return remoteKxsProductService.verifyUserTickteCountAndShopAndActivite(userId, SecurityConstants.FROM_IN);
+
+    }
+
+
+
+
 
     @Override
     public R updatePwd(UserUpdatePwdDTO param) {

+ 1 - 1
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserMapper.xml

@@ -84,7 +84,7 @@
         ku.del_flag != 1
         AND ku.pid = #{param.userId}
         <if test="param.keyword != null and param.keyword != ''">
-            AND ku.username = #{param.keyword}
+            AND ku.username = #{param.keyword} or ku.user_code = #{param.keyword}
         </if>
         <if test="param.userLevel != null and param.userLevel != ''">
             AND ku.user_level = #{param.userLevel}