Explorar o código

修复了商户交易记录的bug,小分仓增加字段brandID

Pota1ovO %!s(int64=2) %!d(string=hai) anos
pai
achega
70f782c1b9

+ 3 - 5
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/MerchantTradeDetailVO.java

@@ -4,6 +4,8 @@ import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 我的商户-商户交易记录VO
@@ -14,10 +16,6 @@ public class MerchantTradeDetailVO {
      * 创建时间
      */
     private LocalDateTime createTime;
-    /**
-     * 交易日
-     */
-    private String tradeDate;
     /**
      * 交易月
      */
@@ -25,7 +23,7 @@ public class MerchantTradeDetailVO {
     /**
      * 交易金额
      */
-    private BigDecimal tradeAmt;
+    private List<Map<String,Object>> tradeAmt;
     /**
      * 月交易总金额
      */

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

@@ -0,0 +1,20 @@
+package com.kxs.stat.api.vo.statUser;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 交易统计页面各品牌交易额VO
+ */
+@Data
+public class StatUserBrandTradeVO {
+    /***
+     * 品牌id
+     */
+    private Long brandId;
+    /**
+     * 交易额
+     */
+    private BigDecimal totalAmt;
+}

+ 12 - 161
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserGetTradeDetailVO.java

@@ -38,176 +38,27 @@ public class StatUserGetTradeDetailVO implements Serializable {
      */
     @Schema(description = "品牌ID")
     private Integer brandId;
-
-
-    /**
-     * 扶持期贷记卡交易额
-     */
-    @Schema(description = "扶持期贷记卡交易额")
-    private BigDecimal helpDirectTradeAmt = BigDecimal.ZERO;
-
-
-    /**
-     * 扶持期借记卡
-     */
-    @Schema(description = "扶持期借记卡")
-    private BigDecimal helpDebitTradeAmt= BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期贷记卡
-     */
-    @Schema(description = "稳定期贷记卡")
-    private BigDecimal proDirectTradeAmt= BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期借记卡
-     */
-    @Schema(description = "稳定期借记卡")
-    private BigDecimal proDebitTradeAmt= BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期A贷记卡
-     */
-    @Schema(description = "稳定期A贷记卡")
-    private BigDecimal proADirectTradeAmt= BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期A借记卡
-     */
-    @Schema(description = "稳定期A借记卡")
-    private BigDecimal proADebitTradeAmt= BigDecimal.ZERO;
-
-
-    /**
-     * 扶持期借记卡封顶交易额
-     */
-    @Schema(description = "扶持期借记卡封顶交易额")
-    private BigDecimal helpDebitCapTradeAmt= BigDecimal.ZERO;
-
-
-    /**
-     * 扶持期借记卡封顶交易笔数
-     */
-    @Schema(description = "扶持期借记卡封顶交易笔数")
-    private Integer helpDebitCapNum = 0;
-
-
-    /**
-     * 稳定期借记卡封顶交易额
-     */
-    @Schema(description = "稳定期借记卡封顶交易额")
-    private BigDecimal proDebitCapTradeAmt = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期借记卡封顶交易笔数
-     */
-    @Schema(description = "稳定期借记卡封顶交易笔数")
-    private Integer proDebitCapNum = 0;
-
-
-    /**
-     * 稳定期A借记卡封顶交易额
-     */
-    @Schema(description = "稳定期A借记卡封顶交易额")
-    private BigDecimal proADebitCapTradeAmt = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期A借记卡封顶交易笔数
-     */
-    @Schema(description = "稳定期A借记卡封顶交易笔数")
-    private Integer proADebitCapNum = 0;
-
-
-    /**
-     * 稳定期B借记卡
-     */
-    @Schema(description = "稳定期B借记卡")
-    private BigDecimal proBDebitTradeAmt = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期B贷记卡
-     */
-    @Schema(description = "稳定期B贷记卡")
-    private BigDecimal proBDirectTradeAmt = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期B借记卡封顶交易额
-     */
-    @Schema(description = "稳定期B借记卡封顶交易额")
-    private BigDecimal proBDebitCapTradeAmt = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期B借记卡封顶交易笔数
-     */
-    @Schema(description = "稳定期B借记卡封顶交易笔数")
-    private Integer proBDebitCapNum = 0;
-
-
     /**
-     * 稳定期A云闪付交易额
+     * 扶持期
      */
-    @Schema(description = "稳定期A云闪付交易额")
-    private Object proACloudTrade = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期B云闪付交易额
-     */
-    @Schema(description = "稳定期B云闪付交易额")
-    private Object proBCloudTrade = BigDecimal.ZERO;
-
-
-    /**
-     * 稳定期云闪付交易额
-     */
-    @Schema(description = "稳定期云闪付交易额")
-    private Object proCloudTrade = BigDecimal.ZERO;
-
-
-    /**
-     * 扶持期云闪付交易额
-     */
-    @Schema(description = "扶持期云闪付交易额")
-    private Object helpCloudTrade = BigDecimal.ZERO;
-
+    @Schema(description = "扶持期")
+    private StatUserTradeVo helpDirectTradeAmt;
 
     /**
-     * 稳定期a非封顶借记卡交易额
+     * 稳定期
      */
-    @Schema(description = "稳定期a非封顶借记卡交易额")
-    private Object proADebitNotCapTrade = BigDecimal.ZERO;
-
+    @Schema(description = "稳定期")
+    private StatUserTradeVo proDirectTradeAmt;
 
     /**
-     * 稳定期b非封顶借记卡交易额
+     * 稳定期A
      */
-    @Schema(description = "稳定期b非封顶借记卡交易额")
-    private Object proBDebitNotCapTrade = BigDecimal.ZERO;
-
+    @Schema(description = "稳定期A")
+    private StatUserTradeVo proADirectTradeAmt;
 
     /**
-     * 稳定期非封顶借记卡交易额
+     * 稳定期B
      */
-    @Schema(description = "稳定期非封顶借记卡交易额")
-    private Object proDebitNotCapTrade = BigDecimal.ZERO;
-
-    /**
-     * 扶持期b非封顶借记卡交易额
-     */
-    @Schema(description = "扶持期b非封顶借记卡交易额")
-    private Object helpBDebitNotCapTrade = BigDecimal.ZERO;
-
-
-
-	
-
+    @Schema(description = "稳定期B")
+    private StatUserTradeVo proBDirectTradeAmt;
 }

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

@@ -85,8 +85,10 @@ public class StatUserGetUserTradeStatListVO implements Serializable {
     @Schema(description = "广电活动交易额")
     private Object gdActivityAmount;
 
-
-
+    /**
+     * 各品牌交易额
+     */
+    private List<StatUserBrandTradeVO> productList;
 
 
 	

+ 48 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/StatUserTradeVo.java

@@ -0,0 +1,48 @@
+package com.kxs.stat.api.vo.statUser;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 计奖交易-交易统计页面-交易明细 - 详细vo
+ *
+ * @author 系统
+ * @date 2024-06-03 16:33:51
+ */
+@Data
+public class StatUserTradeVo {
+    /**
+     * 扶持期贷记卡交易额
+     */
+    @Schema(description = "扶持期贷记卡交易额")
+    private BigDecimal directTradeAmt = BigDecimal.ZERO;
+
+
+    /**
+     * 扶持期借记卡
+     */
+    @Schema(description = "扶持期借记卡")
+    private BigDecimal debitTradeAmt= BigDecimal.ZERO;
+
+    /**
+     * 扶持期借记卡封顶交易额
+     */
+    @Schema(description = "扶持期借记卡封顶交易额")
+    private BigDecimal debitCapTradeAmt= BigDecimal.ZERO;
+
+
+    /**
+     * 扶持期借记卡封顶交易笔数
+     */
+    @Schema(description = "扶持期借记卡封顶交易笔数")
+    private Integer debitCapNum = 0;
+
+    /**
+     * 扶持期云闪付交易额
+     */
+    @Schema(description = "扶持期云闪付交易额")
+    private Object cloudTrade = BigDecimal.ZERO;
+
+}

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

@@ -59,8 +59,8 @@ public class KxsStatUserController {
      * @return 商户交易记录
      */
     @GetMapping("/merchantTradeDetail")
-    public R merchantTradeDetail(@RequestParam("id") Long id) {
-        return kxsMerchantTradeService.merchantTradeDetail(id);
+    public R merchantTradeDetail(@RequestParam("id") Long id,@RequestParam("month") String month) {
+        return kxsMerchantTradeService.merchantTradeDetail(id,month);
     }
 
 

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

@@ -7,6 +7,9 @@ import com.kxs.stat.api.vo.statUser.MerchantTradeDetailVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  * 商户交易统计总表(KxsMerchantTrade)表数据库访问层
  *
@@ -18,6 +21,8 @@ public interface KxsMerchantTradeMapper extends BaseMapper<KxsMerchantTrade> {
 
     void automaticTableCreationTasks(String tableName);
 
-    MerchantTradeDetailVO merchantTradeDetail(@Param("id") Long id, @Param("month") String month);
+    BigDecimal merchantTradeDetail(@Param("id") Long id, @Param("time") String time);
+
+
 }
 

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

@@ -6,6 +6,7 @@ import com.kxs.stat.api.model.KxsUserTrade;
 import com.kxs.stat.api.vo.ShdTradeAmtVO;
 import com.kxs.stat.api.vo.TotalTradeAmtVO;
 import com.kxs.stat.api.vo.statUser.PercentVO;
+import com.kxs.stat.api.vo.statUser.StatUserBrandTradeVO;
 import com.kxs.stat.api.vo.statUser.StatUserGetHomeAmoutVO;
 import com.kxs.stat.api.vo.statUser.TrendTimesVO;
 import org.apache.ibatis.annotations.Mapper;
@@ -124,5 +125,8 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
                                     @Param("brandId") Long brandId,
                                     @Param("totalType") Integer totalType,
                                     @Param("tableName") String tableName);
+
+    List<StatUserBrandTradeVO> getStatUserBrandTradeVOS(@Param("userId") Long userId, @Param("getType")Integer getType,@Param("tableName") String tableName, @Param("totalType")Integer totalType, @Param("date")String date);
+
 }
 

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

@@ -12,6 +12,6 @@ import com.kxs.stat.api.model.KxsMerchantTrade;
  */
 public interface KxsMerchantTradeService extends IService<KxsMerchantTrade> {
 
-    R merchantTradeDetail(Long id);
+    R merchantTradeDetail(Long id,String month);
 }
 

+ 83 - 3
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsMerchantTradeServiceImpl.java

@@ -3,15 +3,24 @@ package com.kxs.stat.biz.service.impl;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 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.common.mybatis.handler.MonthTableNameHandler;
 import com.kxs.stat.api.vo.statUser.MerchantTradeDetailVO;
 import com.kxs.stat.biz.mapper.KxsMerchantTradeMapper;
 import com.kxs.stat.api.model.KxsMerchantTrade;
 import com.kxs.stat.biz.service.KxsMerchantTradeService;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 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;
 
 /**
  * 商户交易统计总表(KxsMerchantTrade)表服务实现类
@@ -21,12 +30,83 @@ import java.time.LocalDate;
  */
 @Service("kxsMerchantTradeService")
 @RequiredArgsConstructor
+@Slf4j
 public class KxsMerchantTradeServiceImpl extends ServiceImpl<KxsMerchantTradeMapper, KxsMerchantTrade> implements KxsMerchantTradeService {
     private final KxsMerchantTradeMapper kxsMerchantTradeMapper;
     @Override
-    public R merchantTradeDetail(Long id) {
-        String month = LocalDateTimeUtil.format(LocalDate.now(), DatePattern.SIMPLE_MONTH_PATTERN);
-        return R.ok(kxsMerchantTradeMapper.merchantTradeDetail(id, month));
+    public R merchantTradeDetail(Long id,String month) {
+        AssertUtil.isyyyyMM(month);
+        LocalDate now = LocalDate.now();
+        ArrayList<String> times = new ArrayList<>();
+        //判断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")));
+            }
+        }
+        BigDecimal totalAmt = BigDecimal.ZERO;
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(month);
+        MerchantTradeDetailVO merchantTradeDetailVO = new MerchantTradeDetailVO();
+        ArrayList<Map<String, Object>> maps = new ArrayList<>();
+        for (String time : times) {
+            HashMap<String, Object> amtMap = new HashMap<>();
+            BigDecimal amt = BigDecimal.ZERO;
+            try{//规避无表BUG
+                amt = kxsMerchantTradeMapper.merchantTradeDetail(id, time);
+            }catch (Exception e){
+                log.info(e.getMessage());
+            }
+            amtMap.put("time",time);
+            amtMap.put("amt",amt);
+            maps.add(amtMap);
+            totalAmt = totalAmt.add(amt);
+        }
+        merchantTradeDetailVO.setTradeAmt(maps);
+        merchantTradeDetailVO.setTradeAmtMonth(totalAmt);
+        merchantTradeDetailVO.setTradeMonth(month);
+        merchantTradeDetailVO.setMerchantId(id);
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+        return R.ok(merchantTradeDetailVO);
     }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 }
 

+ 59 - 45
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -484,7 +484,8 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 return R.ok(statUserGetUserTradeStatListVOS);
             }
         }
-        return R.failed("获取增存量类型错误");
+            return R.ok();
+
     }
 
     @Override
@@ -529,55 +530,65 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetTradeDetailVO.setDate(date);//交易时间
         statUserGetTradeDetailVO.setBrandId(Math.toIntExact(brandId));//品牌
         if (kxsUserTradePos != null) {
-            statUserGetTradeDetailVO.setHelpDirectTradeAmt(kxsUserTradePos.getHelpDirectTradeAmt());//扶持期贷记卡
-            statUserGetTradeDetailVO.setHelpDebitTradeAmt(kxsUserTradePos.getHelpDebitTradeAmt());//扶持期借记卡
-            statUserGetTradeDetailVO.setHelpDebitCapTradeAmt(kxsUserTradePos.getHelpDebitCapTradeAmt());//扶持期借记卡封顶交易额
-            statUserGetTradeDetailVO.setHelpDebitCapNum(kxsUserTradePos.getHelpDebitCapNum());//扶持期借记卡封顶交易笔数
+            StatUserTradeVo statUserTradeVo = new StatUserTradeVo();
+            statUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getHelpDirectTradeAmt());//扶持期贷记卡
+            statUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getHelpDebitTradeAmt());//扶持期借记卡
+            statUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getHelpDebitCapTradeAmt());//扶持期借记卡封顶交易额
+            statUserTradeVo.setDebitCapNum(kxsUserTradePos.getHelpDebitCapNum());//扶持期借记卡封顶交易笔数
             BigDecimal helpNotCapTrade = kxsUserTradePos.getHelpDebitTradeAmt().subtract(kxsUserTradePos.getHelpDebitCapTradeAmt());//非封顶交易额
-            statUserGetTradeDetailVO.setHelpBDebitNotCapTrade(helpNotCapTrade);//扶持期非封顶借记卡交易额
+            statUserTradeVo.setCloudTrade(helpNotCapTrade);//扶持期非封顶借记卡交易额
+            statUserGetTradeDetailVO.setHelpDirectTradeAmt(statUserTradeVo);
+
 
 
-            statUserGetTradeDetailVO.setProDirectTradeAmt(kxsUserTradePos.getProDirectTradeAmt());//稳定期贷记卡
-            statUserGetTradeDetailVO.setProDebitTradeAmt(kxsUserTradePos.getProDebitTradeAmt());//稳定期借记卡
-            statUserGetTradeDetailVO.setProDebitCapTradeAmt(kxsUserTradePos.getProDebitCapTradeAmt());//稳定期借记卡封顶交易额
-            statUserGetTradeDetailVO.setProDebitCapNum(kxsUserTradePos.getProDebitCapNum());//稳定期借记卡封顶交易笔数
+            StatUserTradeVo proStatUserTradeVo = new StatUserTradeVo();
+            proStatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProDirectTradeAmt());//稳定期贷记卡
+            proStatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProDebitTradeAmt());//稳定期借记卡
+            proStatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProDebitCapTradeAmt());//稳定期借记卡封顶交易额
+            proStatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProDebitCapNum());//稳定期借记卡封顶交易笔数
             BigDecimal proNotCapTrade = kxsUserTradePos.getProDebitTradeAmt().subtract(kxsUserTradePos.getProDebitCapTradeAmt());//非封顶交易额
-            statUserGetTradeDetailVO.setProDebitNotCapTrade(proNotCapTrade);//稳定期非封顶借记卡交易额
+            proStatUserTradeVo.setCloudTrade(proNotCapTrade);//稳定期非封顶借记卡交易额
+            statUserGetTradeDetailVO.setProDirectTradeAmt(proStatUserTradeVo);
 
 
-            statUserGetTradeDetailVO.setProADirectTradeAmt(kxsUserTradePos.getProADirectTradeAmt());//稳A贷记
-            statUserGetTradeDetailVO.setProADebitTradeAmt(kxsUserTradePos.getProADebitTradeAmt());//稳A借记
-            statUserGetTradeDetailVO.setProADebitCapTradeAmt(kxsUserTradePos.getProADebitCapTradeAmt());//稳定期A借记卡封顶交易额
-            statUserGetTradeDetailVO.setProADebitCapNum(kxsUserTradePos.getProADebitCapNum());//稳定期A借记卡封顶交易笔数
+
+            StatUserTradeVo proAstatUserTradeVo = new StatUserTradeVo();
+            proAstatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProADirectTradeAmt());//稳A贷记
+            proAstatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProADebitTradeAmt());//稳A借记
+            proAstatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProADebitCapTradeAmt());//稳定期A借记卡封顶交易额
+            proAstatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProADebitCapNum());//稳定期A借记卡封顶交易笔数
             BigDecimal proANotCapTrade = kxsUserTradePos.getProADebitTradeAmt().subtract(kxsUserTradePos.getProADebitCapTradeAmt());//非封顶交易额
-            statUserGetTradeDetailVO.setProADebitNotCapTrade(proANotCapTrade);//稳定期b非封顶借记卡交易额
+            proAstatUserTradeVo.setCloudTrade(proANotCapTrade);//稳定期b非封顶借记卡交易额
+            statUserGetTradeDetailVO.setProADirectTradeAmt(proAstatUserTradeVo);
 
 
-            statUserGetTradeDetailVO.setProBDebitTradeAmt(kxsUserTradePos.getProBDirectTradeAmt());//稳定期B借记卡
-            statUserGetTradeDetailVO.setProBDirectTradeAmt(kxsUserTradePos.getProBDebitTradeAmt());//稳定期B贷记卡
-            statUserGetTradeDetailVO.setProBDebitCapTradeAmt(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期B借记卡封顶交易额
-            statUserGetTradeDetailVO.setProBDebitCapNum(kxsUserTradePos.getProBDebitCapNum());//稳定期B借记卡封顶交易笔数
+            StatUserTradeVo proBstatUserTradeVo = new StatUserTradeVo();
+            proBstatUserTradeVo.setDirectTradeAmt(kxsUserTradePos.getProBDirectTradeAmt());//稳定期B借记卡
+            proBstatUserTradeVo.setDebitTradeAmt(kxsUserTradePos.getProBDebitTradeAmt());//稳定期B贷记卡
+            proBstatUserTradeVo.setDebitCapTradeAmt(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期B借记卡封顶交易额
+            proBstatUserTradeVo.setDebitCapNum(kxsUserTradePos.getProBDebitCapNum());//稳定期B借记卡封顶交易笔数
             BigDecimal proBNotCapTrade = kxsUserTradePos.getProBDebitTradeAmt().subtract(kxsUserTradePos.getProBDebitCapTradeAmt());//稳定期b非封顶交易额
-            statUserGetTradeDetailVO.setProBDebitNotCapTrade(proBNotCapTrade);//稳定期b非封顶借记卡交易额
-        }
-        KxsUserTrade kxsUserTradeCloud = null;
-        try {
-            kxsUserTradeCloud = baseMapper.getAllUserTrderSum(userId, date, getType, 1, brandId, totalType, tableName);//云闪付
-        }catch (Exception e){
-            log.info(e.getMessage());
-        }
-        if (kxsUserTradeCloud != null) {
-            BigDecimal helpTrade = kxsUserTradeCloud.getHelpDebitCapTradeAmt().add(kxsUserTradeCloud.getHelpDirectTradeAmt());//计算扶持期云闪付交易额
-            statUserGetTradeDetailVO.setHelpCloudTrade(helpTrade);//扶持期云闪付交易额
+            proBstatUserTradeVo.setCloudTrade(proBNotCapTrade);//稳定期b非封顶借记卡交易额
+            statUserGetTradeDetailVO.setProBDirectTradeAmt(proBstatUserTradeVo);
+            KxsUserTrade kxsUserTradeCloud = null;
+            try {
+                kxsUserTradeCloud = baseMapper.getAllUserTrderSum(userId, date, getType, 1, brandId, totalType, tableName);//云闪付
+            }catch (Exception e){
+                log.info(e.getMessage());
+            }
+            if (kxsUserTradeCloud != null) {
+                BigDecimal helpTrade = kxsUserTradeCloud.getHelpDebitCapTradeAmt().add(kxsUserTradeCloud.getHelpDirectTradeAmt());//计算扶持期云闪付交易额
+                statUserTradeVo.setCloudTrade(helpTrade);//扶持期云闪付交易额
 
-            BigDecimal proTrade = kxsUserTradeCloud.getProDebitCapTradeAmt().add(kxsUserTradeCloud.getProDirectTradeAmt());//计算稳定期云闪付交易额
-            statUserGetTradeDetailVO.setProCloudTrade(proTrade);//稳定期云闪付交易额
+                BigDecimal proTrade = kxsUserTradeCloud.getProDebitCapTradeAmt().add(kxsUserTradeCloud.getProDirectTradeAmt());//计算稳定期云闪付交易额
+                proStatUserTradeVo.setCloudTrade(proTrade);//稳定期云闪付交易额
 
-            BigDecimal proATrade = kxsUserTradeCloud.getProADebitCapTradeAmt().add(kxsUserTradeCloud.getProADirectTradeAmt());//计算稳定期b云闪付交易额
-            statUserGetTradeDetailVO.setProACloudTrade(proATrade);//稳定期A云闪付交易额
+                BigDecimal proATrade = kxsUserTradeCloud.getProADebitCapTradeAmt().add(kxsUserTradeCloud.getProADirectTradeAmt());//计算稳定期b云闪付交易额
+                proAstatUserTradeVo.setCloudTrade(proATrade);//稳定期A云闪付交易额
 
-            BigDecimal proBTrade = kxsUserTradeCloud.getProBDebitCapTradeAmt().add(kxsUserTradeCloud.getProBDirectTradeAmt());//计算稳定期a云闪付交易额
-            statUserGetTradeDetailVO.setProBCloudTrade(proBTrade);//稳定期B云闪付交易额
+                BigDecimal proBTrade = kxsUserTradeCloud.getProBDebitCapTradeAmt().add(kxsUserTradeCloud.getProBDirectTradeAmt());//计算稳定期a云闪付交易额
+                proBstatUserTradeVo.setCloudTrade(proBTrade);//稳定期B云闪付交易额
+            }
         }
         return R.ok(statUserGetTradeDetailVO);
     }
@@ -630,6 +641,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
             statUserGetUserTradeStatListVOS.add(statUserGetUserTradeStatListVO);
         }
         return statUserGetUserTradeStatListVOS;
+
     }
 
     private ArrayList<StatUserGetUserTradeStatListVO> getStatUserGetUserTradeStatListVOSByMonth(String month, Integer totalType, Long userId, Integer getType, LocalDate now, List<String> times, String tableName, Integer tradeType) {
@@ -684,17 +696,18 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         BigDecimal totalAmount = BigDecimal.ZERO;
 
         StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = new StatUserGetUserTradeStatListVO();
-
+        BigDecimal debitPos = helpDebitTradeAmt.add(proDebitTradeAmt).add(proADebitTradeAmt).add(proBDebitTradeAmt);
+        BigDecimal diretPos = helpDirectTradeAmt.add(proDirectTradeAmt).add(proADirectTradeAmt).add(proBDirectTradeAmt);
         //pos机交易额
-        statUserGetUserTradeStatListVO.setPosDebitAmount(helpDebitTradeAmt.add(proDebitTradeAmt).add(proADebitTradeAmt).add(proBDirectTradeAmt));
-        statUserGetUserTradeStatListVO.setPosCreditAmount(helpDirectTradeAmt.add(proDirectTradeAmt).add(proADirectTradeAmt).add(proBDebitTradeAmt));
-
+        statUserGetUserTradeStatListVO.setPosDebitAmount(debitPos);
+        statUserGetUserTradeStatListVO.setPosCreditAmount(diretPos);
+        totalAmount = totalAmount.add(debitPos).add(diretPos);
         //拼接表名
         tableName = tableName + month;
         KxsUserTrade myCloudTrade = null;
         try {
-            //存在表不存在的月份,跳过报错视为无数据
-            myCloudTrade = baseMapper.getMyPosOrCloudTrade(statUserGetMyTradeDTO, tableName, 1, userId, "");
+            //存在表不存在的月份,跳过报错视为无数据  查询云闪付
+            myCloudTrade = baseMapper.getMyPosOrCloudTrade(statUserGetMyTradeDTO, tableName, 1, userId, getType == 1 ? date:null);
         } catch (Exception e) {
             log.info(e.getMessage());
         }
@@ -765,7 +778,6 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
                 BigDecimal gdActAmt = BigDecimal.valueOf(TotalTradeAmtVO.getGdCount() != null ? TotalTradeAmtVO.getGdCount() * 10000 : 0);
                 statUserGetUserTradeStatListVO.setGdActivityAmount(gdActAmt);
-                totalAmount = totalAmount.add(gdActAmt);
             }
             if (tradeType.equals(1)) {//广电获取增量  只获取当前时间
                 //广电激活量
@@ -774,12 +786,14 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
                 BigDecimal gdActAmt = BigDecimal.valueOf(TotalTradeAmtVO.getGdCount() != null ? TotalTradeAmtVO.getGdCount() * 10000 : 0);
                 statUserGetUserTradeStatListVO.setGdActivityAmount(gdActAmt);
-                totalAmount = totalAmount.add(gdActAmt);
             }
         }
         //总额
         statUserGetUserTradeStatListVO.setTotalAmount(totalAmount);
 
+        //查询各品牌交易总额
+        List<StatUserBrandTradeVO> statUserBrandTradeVOS = baseMapper.getStatUserBrandTradeVOS(userId,getType, tableName,totalType,date);
+        statUserGetUserTradeStatListVO.setProductList(statUserBrandTradeVOS);
         return statUserGetUserTradeStatListVO;
     }
 

+ 5 - 14
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsMerchantTradeMapper.xml

@@ -18,26 +18,17 @@
     <update id="automaticTableCreationTasks">
         CREATE TABLE IF NOT EXISTS `${tableName}` LIKE kxs_merchant_trade;
     </update>
-    <select id="merchantTradeDetail" resultType="com.kxs.stat.api.vo.statUser.MerchantTradeDetailVO">
+    <select id="merchantTradeDetail" resultType="java.math.BigDecimal">
         select
-            create_time,
-            trade_date,
-            trade_month,
-            merchant_id,
-            trade_amt,
-            sum(trade_amt)
+            trade_amt
         from
             kxs_merchant_trade
         where
             del_flag != 1
             and merchant_id = #{id}
-            and trade_month = #{month}
-        GROUP BY
-            create_time,
-            trade_date,
-            trade_month,
-            merchant_id,
-            trade_amt
+          and trade_date = #{time}
     </select>
 
+
+
 </mapper>

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

@@ -310,6 +310,21 @@
             </if>
         </where>
     </select>
+    <select id="getStatUserBrandTradeVOS" resultType="com.kxs.stat.api.vo.statUser.StatUserBrandTradeVO">
+        select
+            sum(pro_b_direct_trade_amt + pro_b_debit_trade_amt + pro_a_debit_trade_amt + pro_a_direct_trade_amt +
+                pro_debit_trade_amt + pro_direct_trade_amt + help_debit_trade_amt + help_direct_trade_amt) as totalAmt,brand_id
+        from ${tableName}
+        <where>
+            and total_type = #{totalType}
+            and user_id = #{userId}
+            <if test="date != '' and date != null">
+                and trade_date = #{date}
+            </if>
+        </where>
+        group by
+            brand_id
+    </select>
 
 
     <insert id="insertTempShdTableData">

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

@@ -122,6 +122,7 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
                         sn.put("isUseAmount", info.get("isUseAmount"));//是否占用语法额度  0否  1是
                         sn.put("isConfirm", info.get("isConfirm"));//是否确认收货  0未确认 1已确认  2已拒绝
                         sn.put("createTime", info.get("createTime"));//创建时间
+                        sn.put("brandId", info.get("brandId"));//品牌id
                         snList.add(sn);
                     }
                 }
@@ -130,7 +131,6 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
             });
             record.setBrandList(brandList);
         }
-
         return userWareHouseList;
     }