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

修改了百城千团激活统计规则

Pota1ovO 2 лет назад
Родитель
Сommit
25f7161125
18 измененных файлов с 357 добавлено и 41 удалено
  1. 4 0
      kxs-product/kxs-product-api/pom.xml
  2. 26 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/dto/kxsapp/GetActivityMachineByIdAndTimeDTO.java
  3. 13 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/feign/RemoteKxsProductService.java
  4. 4 0
      kxs-product/kxs-product-biz/pom.xml
  5. 15 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MachineController.java
  6. 11 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsMachineMapper.java
  7. 11 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsMachineService.java
  8. 14 0
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMachineServiceImpl.java
  9. 15 1
      kxs-product/kxs-product-biz/src/main/resources/mapper/KxsMachineMapper.xml
  10. 6 1
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetUserTradeListDTO.java
  11. 94 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetUserTradeStatListVO.java
  12. 5 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java
  13. 12 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserTradeMapper.java
  14. 1 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserTradeService.java
  15. 6 10
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserActTradeServiceImpl.java
  16. 96 20
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java
  17. 1 1
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserActTradeMapper.xml
  18. 23 5
      kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsBcqtTeamServiceImpl.java

+ 4 - 0
kxs-product/kxs-product-api/pom.xml

@@ -71,5 +71,9 @@
             <groupId>com.pig4cloud.excel</groupId>
             <artifactId>excel-spring-boot-starter</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-stat-api</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 26 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/dto/kxsapp/GetActivityMachineByIdAndTimeDTO.java

@@ -0,0 +1,26 @@
+package com.kxs.product.api.dto.kxsapp;
+
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 作为查询激活和绑定时间在传入时间范围内的机具查询dto
+ */
+@Data
+public class GetActivityMachineByIdAndTimeDTO {
+    /**
+     * 开始时间
+     */
+    private LocalDateTime startTime;
+    /**
+     * 结束时间
+     */
+    private LocalDateTime endTime;
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+}

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

@@ -3,11 +3,13 @@ package com.kxs.product.api.feign;
 
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.util.R;
+import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.model.KxsBrand;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMachineCirculationLog;
 import com.kxs.product.api.model.KxsTicket;
 import com.kxs.product.api.vo.kxsapp.shop.ShopOrderGoodsUserVO;
+import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -41,6 +43,17 @@ public interface RemoteKxsProductService {
 	R<KxsTicket> loadTicketBySn(@RequestParam("sn") String sn, @RequestHeader(SecurityConstants.FROM) String from);
 
 
+	/**
+	 * 获取时间内的广电和pos绑定且激活量
+	 *
+	 *
+	 */
+	@PostExchange("/machine/getActivityMachineByIdAndTime")
+	GetActivityStatByIdAndTimeVO getActivityMachineByIdAndTime(@RequestBody GetActivityMachineByIdAndTimeDTO param, @RequestHeader(SecurityConstants.FROM) String from);
+
+
+
+
 	/**
 	 * 更新券
 	 *

+ 4 - 0
kxs-product/kxs-product-biz/pom.xml

@@ -87,6 +87,10 @@
             <groupId>com.kxs</groupId>
             <artifactId>kxs-common-pay</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-stat-api</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 15 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MachineController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.constant.enums.MachineTypeEnum;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.annotation.Inner;
+import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.dto.kxsapp.machine.*;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsTicket;
@@ -12,11 +13,15 @@ import com.kxs.product.api.vo.kxsapp.machine.*;
 import com.kxs.product.biz.service.KxsBrandService;
 import com.kxs.product.biz.service.KxsMachineService;
 import com.kxs.product.biz.service.KxsMachineTransferService;
+import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
+import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 仓库模块(Machine)控制层
  *
@@ -49,7 +54,17 @@ public class MachineController {
         return R.ok(kxsMachineService.recycleMachinesPage(page, brandType));
     }
 
+    /**
+     * 获取时间内的广电和pos绑定且激活量
+     *
+     *
+     */
+    @PostMapping("/getActivityMachineByIdAndTime")
+    @Inner
+    public GetActivityStatByIdAndTimeVO getActivityMachineByIdAndTime(@RequestBody GetActivityMachineByIdAndTimeDTO param) {
 
+        return kxsMachineService.getActivityMachineByIdAndTime(param);
+    }
     /**
      * 申请机具说明
      *

+ 11 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsMachineMapper.java

@@ -3,12 +3,15 @@ package com.kxs.product.biz.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.dto.kxsapp.machine.*;
 import com.kxs.product.api.dto.kxsapp.merchant.MerchantListDTO;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.product.api.vo.kxsapp.machine.*;
 import com.kxs.product.api.vo.kxsapp.merchant.MerchantListVO;
+import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
+import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
 import com.kxs.system.api.vo.kxsapp.RecycleBrandListVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -130,5 +133,13 @@ public interface KxsMachineMapper extends BaseMapper<KxsMachine> {
      * @return 机具可回收列表
      */
     List<RecycleBrandListVO> recycleBrandList(Long userId);
+
+    /**
+     * 查询激活和绑定时间在指定区间的机具
+     * @param param
+     * @param brandId
+     * @return
+     */
+    Integer getActivityMachineByIdAndTime(@Param("param")GetActivityMachineByIdAndTimeDTO param,@Param("brandId") Long brandId);
 }
 

+ 11 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/KxsMachineService.java

@@ -4,9 +4,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 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.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.dto.kxsapp.machine.*;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.vo.kxsapp.machine.*;
+import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
+import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
 
 import java.util.List;
 
@@ -144,5 +147,13 @@ public interface KxsMachineService extends IService<KxsMachine> {
      */
     Object recycleBrandList();
 
+    /**
+     * 查询激活和绑定在指定区间的机具数
+     * @param param
+     * @return
+     */
+    GetActivityStatByIdAndTimeVO getActivityMachineByIdAndTime(GetActivityMachineByIdAndTimeDTO param);
+
+
 }
 

+ 14 - 0
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMachineServiceImpl.java

@@ -14,6 +14,7 @@ import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.RetOps;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
 import com.kxs.product.api.dto.kxsapp.machine.*;
 import com.kxs.product.api.model.*;
 import com.kxs.product.api.vo.kxsapp.machine.*;
@@ -21,6 +22,8 @@ import com.kxs.common.core.constant.enums.MachineTypeEnum;
 import com.kxs.product.biz.constant.enums.ProductErrorTypeEnum;
 import com.kxs.product.biz.mapper.*;
 import com.kxs.product.biz.service.KxsMachineService;
+import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
+import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
 import com.kxs.store.api.feign.RemoteKxsStoreService;
 import com.kxs.system.api.feign.RemoteOldService;
 import com.kxs.system.api.vo.kxsapp.RecycleBrandListVO;
@@ -341,6 +344,17 @@ public class KxsMachineServiceImpl extends ServiceImpl<KxsMachineMapper, KxsMach
         return baseMapper.recycleBrandList(userId);
     }
 
+    @Override
+    public GetActivityStatByIdAndTimeVO getActivityMachineByIdAndTime(GetActivityMachineByIdAndTimeDTO param) {
+        GetActivityStatByIdAndTimeVO getActivityStatByIdAndTimeVO = new GetActivityStatByIdAndTimeVO();
+        Integer posNumber = baseMapper.getActivityMachineByIdAndTime(param,0L);//pos激活
+        Integer gdNumber = baseMapper.getActivityMachineByIdAndTime(param,14L);//广电激活
+        getActivityStatByIdAndTimeVO.setGdActivityNumber(gdNumber);
+        getActivityStatByIdAndTimeVO.setPosActivityNumber(posNumber);
+        getActivityStatByIdAndTimeVO.setUserId(param.getUserId());
+        return getActivityStatByIdAndTimeVO;
+    }
+
 
 }
 

+ 15 - 1
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsMachineMapper.xml

@@ -215,7 +215,21 @@
         and km.status = 3
         and km.user_id = #{query.userId}
     </select>
-
+    <select id="getActivityMachineByIdAndTime" resultType="java.lang.Integer">
+        select
+            count(id) as number
+        from kxs_machine
+        where del_flag != 1
+        and bind_time between #{param.startTime} and #{param.endTime}
+        and act_time between #{param.startTime} and #{param.endTime}
+        and user_id = #{param.userId}
+        <if test="brandId == 14">
+            and brand_id = 14
+        </if>
+        <if test="brandId == 0">
+            and brand_id != 14
+        </if>
+    </select>
 
 
 </mapper>

+ 6 - 1
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/dto/statUser/StatUserGetUserTradeListDTO.java

@@ -43,5 +43,10 @@ public class StatUserGetUserTradeListDTO {
     private Integer tradeType;
 
 
-
+    /**
+     * 用户id
+     */
+    @Schema(description = "用户id")
+    @NotNull(message = "用户id")
+    private Long userId;
 }

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

@@ -0,0 +1,94 @@
+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.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 计奖交易-交易统计页面vo
+ *
+ * @author 系统
+ * @date 2024-05-29 15:40:35
+ */
+@Data
+@Schema(description = "计奖交易-交易统计页面返回实体")
+public class StatUserGetUserTradeStatListVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 总交易额
+     */
+    @Schema(description = "总交易额")
+    private Object totalAmount;
+
+
+    /**
+     * Pos借记卡交易额
+     */
+    @Schema(description = "Pos借记卡交易额")
+    private Object posDebitAmount;
+
+
+    /**
+     * Pos贷记卡交易额
+     */
+    @Schema(description = "Pos贷记卡交易额")
+    private Object posCreditAmount;
+
+
+    /**
+     * 云闪付交易额
+     */
+    @Schema(description = "云闪付交易额")
+    private Object cloudAmunt;
+
+
+    /**
+     * 助力宝交易额
+     */
+    @Schema(description = "助力宝交易额")
+    private Object zlbAmount;
+
+
+    /**
+     * 来客吧活动交易额
+     */
+    @Schema(description = "来客吧活动交易额")
+    private Object lkbActivityAmount;
+
+
+    /**
+     * 来客吧非活动交易额
+     */
+    @Schema(description = "来客吧非活动交易额")
+    private Object lkbAmount;
+
+
+    /**
+     * 广电话费
+     */
+    @Schema(description = "广电话费")
+    private Object gdTelephoneCharge;
+
+
+    /**
+     * 广电活动交易额
+     */
+    @Schema(description = "广电活动交易额")
+    private Object gdActivityAmount;
+
+
+
+
+
+	
+
+}

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

@@ -76,13 +76,17 @@ public class KxsStatUserController {
 
 
     /**
-     * 计奖交易-我的业绩
+     *
+     * 计奖交易-交易统计页面
      *
      * @param param 查询实体
      * @return 计奖交易-我的业绩
      */
     @GetMapping("/getUserTradeStatList")
     public R getUserTradeStatList(@ParameterObject StatUserGetUserTradeListDTO param) {
+        if (param.getUserId().equals(0L)){
+            param.setUserId(SecurityUtils.getUser().getId());
+        }
         return kxsUserTradeService.getUserTradeStatList(param);
     }
 

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

@@ -63,6 +63,7 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
      * @param userId 用户id
      * @param brandId 是否根据品牌分组  否:null  是:随意传值
      * @Param type 根据类型查询日期  1 日  2月
+     * @Param totalType 0 个人 1团队
      * @return
      */
     List<TrendTimesVO> getUserTradeListByDayOrMonth(@Param("tableName") String tableName, @Param("times") List<String> times, @Param("userId") Long userId, @Param("brandId") Integer brandId, @Param("type") Integer type,@Param("totalType") Integer totalType);
@@ -70,11 +71,21 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
     /**
      * 获取传入日期的交易额根据品牌分组
      * @param userId
+     * @param times 查询时间列表
+     * @param totalType  0个人 1团体
+     * @param type 1日查询 2月查询
      * @return
      */
     List<PercentVO> getUserTradeTotal(@Param("tableName")String tableName,@Param("userId") Long userId,@Param("times") List<String> times,@Param("type") Integer type,@Param("totalType") Integer totalType);
 
-
+    /**
+     * 获取首页交易额
+     * @param userId
+     * @param tableName 表名
+     * @param date 交易日
+     * @param month 交易月
+     * @return
+     */
     StatUserGetHomeAmoutVO getHomeAmout(@Param("userId")Long userId, @Param("tableName")String tableName,@Param("date")String date,@Param("month")String month);
 
     /**

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

@@ -48,7 +48,7 @@ public interface KxsUserTradeService extends IService<KxsUserTrade> {
     R getMyTrade(StatUserGetMyTradeDTO param);
 
     /**
-     * 计奖交易-我的业绩
+     * 计奖交易-交易统计页面
      * @param param
      * @return
      */

+ 6 - 10
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserActTradeServiceImpl.java

@@ -38,16 +38,16 @@ public class KxsUserActTradeServiceImpl extends ServiceImpl<KxsUserActTradeMappe
         for (GetActivityStatByIdAndTimeDTO getActivityStatByIdAndTimeDTO : param) {
             Long userId = getActivityStatByIdAndTimeDTO.getUserId();
             List<String> times = getActivityStatByIdAndTimeDTO.getTimes();
-            //查询pos激活
-            Integer posNumber = baseMapper.getActivityStatByGdOrPos(userId,times,1);
-            //查询广电激活
-            Integer gdNumber = baseMapper.getActivityStatByGdOrPos(userId,times,2);
+//            //查询pos激活  不再查询
+//            Integer posNumber = baseMapper.getActivityStatByGdOrPos(userId,times,1);
+//            //查询广电激活  不再查询
+//            Integer gdNumber = baseMapper.getActivityStatByGdOrPos(userId,times,2);
             //查询来客吧激活
             Integer lkbNumber = baseMapper.getActivityStatByLkb(userId,times);
             GetActivityStatByIdAndTimeVO getActivityStatByIdAndTimeVO = new GetActivityStatByIdAndTimeVO();
             getActivityStatByIdAndTimeVO.setUserId(userId);
-            getActivityStatByIdAndTimeVO.setPosActivityNumber(posNumber);
-            getActivityStatByIdAndTimeVO.setGdActivityNumber(gdNumber);
+//            getActivityStatByIdAndTimeVO.setPosActivityNumber(posNumber);
+//            getActivityStatByIdAndTimeVO.setGdActivityNumber(gdNumber);
             getActivityStatByIdAndTimeVO.setLkbActivityNumber(lkbNumber);
             getActivityStatByIdAndTimeVOS.add(getActivityStatByIdAndTimeVO);
         }
@@ -70,9 +70,6 @@ public class KxsUserActTradeServiceImpl extends ServiceImpl<KxsUserActTradeMappe
                 String currentDateString = LocalDateTimeUtil.format(currentDay, DatePattern.SIMPLE_MONTH_PATTERN);
                 times.add(currentDateString);
             }
-            //获取全部激活并构造为TimeVo格式
-            ArrayList<TimeVO> timeVOS = getTimeVOArrayList(totalType,userId, times, type);
-            return R.ok(timeVOS);
         }else {
             type = 1;
             //校验时间格式是yyyyMM
@@ -100,7 +97,6 @@ public class KxsUserActTradeServiceImpl extends ServiceImpl<KxsUserActTradeMappe
         }
         //获取全部激活并构造为TimeVo格式
         ArrayList<TimeVO> timeVOArrayList = getTimeVOArrayList(totalType,userId, times, type);
-
         return R.ok(timeVOArrayList);
     }
 

+ 96 - 20
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.core.constant.SecurityConstants;
+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;
@@ -38,6 +39,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -257,6 +259,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         String today = LocalDateTimeUtil.format(now, DatePattern.PURE_DATE_PATTERN);
         //拼接表名
         String tableName = PREFIX_TABLE_NAME + month;
+////        一次性查询全部数据 已弃用
 //        StatUserGetHomeAmoutVO statUserGetHomeAmoutVO1 = baseMapper.getHomeAmout(userId,tableName,date,month);
         //今日交易额
         StatUserGetHomeAmoutVO statUserGetHomeAmoutVO = new StatUserGetHomeAmoutVO();
@@ -315,8 +318,14 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
          //拼接表名
         String tableName = PREFIX_TABLE_NAME + month;
         StatUserGetMyTradeVO statUserGetMyTradeVO = new StatUserGetMyTradeVO();
+        KxsUserTrade kxsUserPosTrade = new KxsUserTrade();
         //获取pos交易额
-        KxsUserTrade kxsUserPosTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,0,userId);
+        try {
+            //此处存在查询的月份不在统计范围,找不到表的错误,直接包裹跳过视为当月无交易
+            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){
@@ -338,9 +347,14 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         }
         statUserGetMyTradeVO.setPosDebitAmount(posDebitAmount);//Pos借记卡
         statUserGetMyTradeVO.setPosCreditAmount(posCreditAmount);//Pos贷记卡
-
+        KxsUserTrade kxsUserCloudTrade = new KxsUserTrade();
         //获取云闪付交易额
-        KxsUserTrade kxsUserCloudTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,1,userId);
+        try {
+            //此处存在查询的月份不在统计范围,找不到表的错误,直接包裹跳过视为当月无交易
+            kxsUserCloudTrade = baseMapper.getMyPosOrCloudTrade(param,tableName,1,userId);
+        }catch (Exception e){
+            log.info(e.getMessage());
+        }
         BigDecimal cloudAmount = BigDecimal.ZERO;
         if (kxsUserCloudTrade != null){
             cloudAmount = cloudAmount.add(kxsUserCloudTrade.getProBDirectTradeAmt())
@@ -431,13 +445,81 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
     public R getUserTradeStatList(StatUserGetUserTradeListDTO param) {
 //         String month = param.getMonth();
 //         Integer totalType = param.getTotalType();
-//         Integer getType = param.getGetType();
+//        Long userId = param.getUserId();
+//        Integer getType = param.getGetType();
 //         Integer tradeType = param.getTradeType();
-//         if (tradeType.equals(3)){
-//             //获取全部
+//        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;
     }
 
@@ -508,9 +590,6 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             List<TrendTimesVO> trendTimesActVOSLast = kxsUserActTradeMapper.getUserActListByDayOrMonth(lastMonthTimes, userId,null,type,totalType);
             trendTimesActVOS.addAll(trendTimesActVOSLast);
         }
-        repZero(times,trendTimesActVOS);
-
-
         //查询用户全部激活量根据 日期以及品牌 分组
         List<TrendTimesVO> trendTimesActBrandVOS = kxsUserActTradeMapper.getUserActListByDayOrMonth(times, userId,1,type,totalType);
         //判断是否二次查询
@@ -518,9 +597,8 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             List<TrendTimesVO> trendTimesActBrandVOSLast = kxsUserActTradeMapper.getUserActListByDayOrMonth(lastMonthTimes, userId,1,type,totalType);
             trendTimesActBrandVOS.addAll(trendTimesActBrandVOSLast);
         }
-        repZero(times,trendTimesActBrandVOS);
         //构造数据
-        ArrayList<TrendVO> trendVOSBrand = getTrendVOS(trendTimesActVOS, trendTimesActBrandVOS);
+        ArrayList<TrendVO> trendVOSBrand = getTrendVOS(trendTimesActVOS, trendTimesActBrandVOS,times);
         statUserGetUserStatByDayOrMonthVO.setActMerchantTrend(trendVOSBrand);//激活趋势图
     }
 
@@ -593,8 +671,6 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                     log.info(e.getMessage());
                 }
             }
-            //此处需要判断查询出的日期跟times比较,不存在的自动补0
-            repZero(times, trendTimesVOS);
         }else {
             for (String month : times) {
                 //拼接表名
@@ -607,8 +683,6 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                     log.info(e.getMessage());
                 }
             }
-            //此处需要判断查询出的日期跟查询的times比较,不存在的自动补0
-            repZero(times, trendTimesVOS);
         }
         //查询用户全部交易额根据 日期以及品牌 分组
         List<TrendTimesVO> trendTimesVOListBrand = baseMapper.getUserTradeListByDayOrMonth(tableName, times, userId,1,type,totalType);
@@ -622,7 +696,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             trendTimesVOListBrand.addAll(trendTimesVOListBrandLast);
         }
         //构造数据
-        ArrayList<TrendVO> trendVOS = getTrendVOS(trendTimesVOS, trendTimesVOListBrand);
+        ArrayList<TrendVO> trendVOS = getTrendVOS(trendTimesVOS, trendTimesVOListBrand,times);
         statUserGetUserStatByDayOrMonthVO.setTreadeTrend(trendVOS);//交易趋势
     }
 
@@ -649,7 +723,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         }
     }
 
-    private static ArrayList<TrendVO> getTrendVOS(List<TrendTimesVO> trendTimesVOS, List<TrendTimesVO> trendTimesVOListBrand) {
+    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<>();
         treadTrend.put("all", trendTimesVOS);
@@ -659,7 +733,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 //未查询到则构造map  key为品牌id
                 trendTimesVOSBrand = new ArrayList<>();
                 trendTimesVOSBrand.add(trendTimesVO);
-                treadTrend.put(trendTimesVO.getBrandId().toString(),trendTimesVOSBrand);
+                treadTrend.put(trendTimesVO.getBrandId() != null ? trendTimesVO.getBrandId().toString():"all",trendTimesVOSBrand);
             }else {
                 trendTimesVOSBrand.add(trendTimesVO);
             }
@@ -667,6 +741,8 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //将map转换为返回实体类
         ArrayList<TrendVO> trendVOS = new ArrayList<>();
         for (Map.Entry<String, List<TrendTimesVO>> entry : treadTrend.entrySet()) {
+            //补0数据
+            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/KxsUserActTradeMapper.xml

@@ -28,7 +28,7 @@
     <select id="getUserTradeTotal" resultType="com.kxs.stat.api.vo.statUser.PercentVO">
         SELECT
         SUM(act_num) AS total,
-        brand_id
+        brand_id as name
         FROM
         kxs_user_act_trade
         WHERE del_flag != 1

+ 23 - 5
kxs-system/kxs-system-biz/src/main/java/com/kxs/system/biz/service/impl/KxsBcqtTeamServiceImpl.java

@@ -11,6 +11,8 @@ import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.dto.kxsapp.GetActivityMachineByIdAndTimeDTO;
+import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.stat.api.dto.statUser.GetActivityStatByIdAndTimeDTO;
 import com.kxs.stat.api.feign.RemoteKxsStatService;
 import com.kxs.stat.api.vo.GetActivityStatByIdAndTimeVO;
@@ -61,6 +63,7 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
     private final RemoteKxsUserService remoteKxsUserService;
     private final RemoteKxsStatService remoteKxsStatService;
     private final KxsBcqtTeamMapper kxsBcqtTeamMapper;
+    private final RemoteKxsProductService remoteKxsProductService;
 
     @Override
     public R getBcqtList(Page<KxsBcqtTeam> page, String keyword) {
@@ -276,6 +279,9 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
         return R.ok(campGetBcqtDetailVO);
     }
 
+
+
+
     @Override
     @Transactional
     public void setUserActivityTimeStat() {
@@ -306,7 +312,20 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
                 getActivityStatByIdAndTimeDTOS.add(getActivityStatByIdAndTimeDTO);
                 //查询得到统计数据
                 List<GetActivityStatByIdAndTimeVO> activityStatByIdAndTime = remoteKxsStatService.getActivityStatByIdAndTime(getActivityStatByIdAndTimeDTOS, SecurityConstants.FROM_IN);
-                activityStatByIdAndTimes.addAll(activityStatByIdAndTime);
+                Integer lkbNumber = 0;
+                for (GetActivityStatByIdAndTimeVO getActivityStatByIdAndTimeVO : activityStatByIdAndTime) {
+                    lkbNumber = getActivityStatByIdAndTimeVO.getLkbActivityNumber();
+                }
+                //查询pos和广电数据
+                //查询dto
+                GetActivityMachineByIdAndTimeDTO getActivityMachineByIdAndTimeDTO = new GetActivityMachineByIdAndTimeDTO();
+                getActivityMachineByIdAndTimeDTO.setStartTime(kxsBcqtTeam.getStartTime());
+                getActivityMachineByIdAndTimeDTO.setEndTime(kxsBcqtTeam.getEndTime());
+                getActivityMachineByIdAndTimeDTO.setUserId(kxsBcqtTeamDetail.getUserId());
+                GetActivityStatByIdAndTimeVO activityMachineByIdAndTime =  remoteKxsProductService.getActivityMachineByIdAndTime(getActivityMachineByIdAndTimeDTO,SecurityConstants.FROM_IN);
+                activityMachineByIdAndTime.setLkbActivityNumber(lkbNumber);
+                activityMachineByIdAndTime.setUserId(kxsBcqtTeamDetail.getUserId());
+                activityStatByIdAndTimes.add(activityMachineByIdAndTime);
             }
             int reachNumber = 0;
             //修改查询到的数据的当前激活数
@@ -327,9 +346,9 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
                 //查询当前在活动的该用户
                 KxsBcqtTeamDetail kxsBcqtTeamDetail = kxsBcqtTeamDetailMapper.selectOne(Wrappers.<KxsBcqtTeamDetail>query().lambda().eq(KxsBcqtTeamDetail::getUserId, userId).eq(KxsBcqtTeamDetail::getEndFlag, 0));
                 kxsBcqtTeamDetail.setUpdateTime(LocalDateTime.now());
-                kxsBcqtTeamDetail.setPosActivateNumber(posActivityNumber);
-                kxsBcqtTeamDetail.setLkbActivateNumber(lkbActivityNumber);
-                kxsBcqtTeamDetail.setGdActivateNumber(gdActivityNumber);
+                kxsBcqtTeamDetail.setPosActivateNumber(posActivityNumber == null ? 0 :posActivityNumber);
+                kxsBcqtTeamDetail.setLkbActivateNumber(lkbActivityNumber == null ? 0 :lkbActivityNumber);
+                kxsBcqtTeamDetail.setGdActivateNumber(gdActivityNumber == null ? 0 :gdActivityNumber);
                 //修改激活数
                 kxsBcqtTeamDetailMapper.updateById(kxsBcqtTeamDetail);
             }
@@ -338,7 +357,6 @@ public class KxsBcqtTeamServiceImpl extends ServiceImpl<KxsBcqtTeamMapper, KxsBc
                 kxsBcqtTeam.setReachStatus(1);
                 updateById(kxsBcqtTeam);
             }
-
         }
     }