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

我的商户接口优化和修复

mac 2 лет назад
Родитель
Сommit
1e707c0c38
16 измененных файлов с 213 добавлено и 99 удалено
  1. 15 0
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/CommonConstants.java
  2. 1 1
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/util/AssertUtil.java
  3. 5 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/dto/kxsapp/merchant/MerchantListDTO.java
  4. 15 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantDetailVO.java
  5. 2 1
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantListVO.java
  6. 1 1
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/controller/kxsapp/MerchantController.java
  7. 4 2
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsMerchantMapper.java
  8. 78 17
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java
  9. 13 15
      kxs-product/kxs-product-biz/src/main/resources/mapper/KxsMerchantMapper.xml
  10. 10 4
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/MerchantTradeDetailVO.java
  11. 2 2
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatUserController.java
  12. 9 3
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsMerchantTradeMapper.java
  13. 37 33
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsMerchantTradeServiceImpl.java
  14. 2 1
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/task/KxsStatTaskJob.java
  15. 19 17
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsMerchantTradeMapper.xml
  16. 0 2
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineAdvanceServiceImpl.java

+ 15 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/CommonConstants.java

@@ -113,4 +113,19 @@ public interface CommonConstants {
 	 */
 	BigDecimal GD_CARDINAL_NUMBER = new BigDecimal(10000);
 
+	/**
+	 * 扶持期天数
+	 */
+	Integer BIND_DAY_NUM = 90;
+
+	String MCH_TABLE_PREFIX = "kxs_merchant_trade_";
+
+	String USER_TABLE_PREFIX = "kxs_user_trade_";
+
+	String USER_TABLE_AFTER_PREFIX = "kxs_user_trade_after_";
+
+	String USER_TABLE_BEFORE_PREFIX = "kxs_user_trade_before_";
+	String KXS_USER_AMOUNT_LOG_PREFIX = "kxs_user_amount_log_";
+
+
 }

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

@@ -61,7 +61,7 @@ public class AssertUtil {
     /**--------------------------------------------------------
      区间格式校验  金额
      --------------------------------------------------------**/
-    public static void IsIntervalVariableAmount(String month){
+    public static void isIntervalVariableAmount(String month){
 
         //格式校验
         Matcher m = INTERVAL_VARIABLE_AMOUNT.matcher(month);

+ 5 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/dto/kxsapp/merchant/MerchantListDTO.java

@@ -60,5 +60,10 @@ public class MerchantListDTO {
     @Schema(description = "用户Id")
     private Long userId;
 
+    /**
+     * 贸易月
+     */
+    private String tradeMonth;
+
 
 }

+ 15 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantDetailVO.java

@@ -99,6 +99,11 @@ public class MerchantDetailVO implements Serializable {
     @Schema(description = "激活时间")
     private String actTime;
 
+    /**
+     * 是否激活 1已激活
+     */
+    private String isAct;
+
 
     /**
      * 机具号
@@ -113,6 +118,16 @@ public class MerchantDetailVO implements Serializable {
     @Schema(description = "机具品牌")
     private String brand;
 
+    /**
+     * 品牌
+     */
+    private String brandName;
+
+    /**
+     * MCH状态
+     */
+    private String mchStatus;
+
 
 
 

+ 2 - 1
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/merchant/MerchantListVO.java

@@ -27,7 +27,7 @@ public class MerchantListVO implements Serializable {
      * 新增时间
      */
     @Schema(description = "新增时间")
-    private LocalDateTime createTime;
+    private String createTime;
 
 
     /**
@@ -48,6 +48,7 @@ public class MerchantListVO implements Serializable {
      */
     @Schema(description = "当前机具费率")
     private BigDecimal machineRatio;
+
     /**
      * 费率调降标记 0未调 1已调
      */

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

@@ -72,7 +72,7 @@ public class MerchantController {
 
 
     /**
-     * 费率调整  todo等待对接
+     * 费率调整
      *
      * @param param 实体对象
      * @return 费率调整

+ 4 - 2
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/mapper/KxsMerchantMapper.java

@@ -20,11 +20,13 @@ public interface KxsMerchantMapper extends BaseMapper<KxsMerchant> {
     /**
      * 商户列表
      *
-     * @param page 分页对象
+     * @param page  分页对象
      * @param param 查询实体
+     * @param tableName 表名
      * @return 商户列表
      */
-    Page<MerchantListVO> merchantList(Page<KxsMerchant> page, @Param("param") MerchantListDTO param);
+    Page<MerchantListVO> merchantList(Page<KxsMerchant> page, @Param("param") MerchantListDTO param, @Param("tableName") String tableName);
+
     /**
      * 汇总数据激活等
      *

+ 78 - 17
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsMerchantServiceImpl.java

@@ -1,9 +1,10 @@
 package com.kxs.product.biz.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.util.IdcardUtil;
-import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -18,31 +19,29 @@ import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.dto.kxsapp.merchant.MachineRatioDTO;
 import com.kxs.product.api.dto.kxsapp.merchant.MerchantListDTO;
 import com.kxs.product.api.dto.kxsapp.merchant.ToMerchantMakerDTO;
+import com.kxs.product.api.model.KxsBrand;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.model.KxsMachineRatio;
-import com.kxs.product.api.model.KxsMachineTrack;
+import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.product.api.req.kxs.FeeSetReq;
 import com.kxs.product.api.vo.kxsapp.merchant.MerchantDetailVO;
-import com.kxs.product.api.vo.kxsapp.merchant.MerchantListVO;
-import com.kxs.product.api.vo.kxsapp.merchant.MerchantTotalVO;
+import com.kxs.product.biz.mapper.KxsBrandMapper;
 import com.kxs.product.biz.mapper.KxsMachineMapper;
 import com.kxs.product.biz.mapper.KxsMachineRatioMapper;
 import com.kxs.product.biz.mapper.KxsMerchantMapper;
-import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.product.biz.service.KxsMerchantService;
 import com.kxs.system.api.feign.RemoteOldService;
 import com.kxs.user.api.feign.RemoteKxsUserService;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUserReal;
-import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import io.seata.spring.annotation.GlobalTransactional;
 import lombok.RequiredArgsConstructor;
-import net.bytebuddy.implementation.bytecode.Throw;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
-import java.util.HashMap;
 
 /**
  * 客小爽商户表(KxsMerchant)表服务实现类
@@ -54,6 +53,7 @@ import java.util.HashMap;
 @RequiredArgsConstructor
 public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMerchant> implements KxsMerchantService {
     private final KxsMachineMapper kxsMachineMapper;
+    private final KxsBrandMapper kxsBrandMapper;
     private final RemoteKxsUserService remoteKxsUserService;
     private final KxsMerchantMapper kxsMerchantMapper;
     private final KxsMachineRatioMapper kxsMachineRatioMapper;
@@ -62,17 +62,14 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
     public Object merchantList(Page<KxsMerchant> page, MerchantListDTO param) {
         Long userId = SecurityUtils.getUser().getId();
         param.setUserId(userId);
-        if (param.getSort() != null && param.getSort().equals("amount")){
-            param.setSort("thisMonthTrade");
-        }else if (param.getSort() != null && param.getSort().equals("time")){
-            param.setSort("create_time");
-        }else {
-            param.setSort(null);
-        }
+
         if (param.getAmountSection() != null){
-            AssertUtil.IsIntervalVariableAmount(param.getAmountSection());
+            AssertUtil.isIntervalVariableAmount(param.getAmountSection());
         }
-        return kxsMerchantMapper.merchantList(page,param);
+        //查询本月交易额
+        String month = LocalDateTimeUtil.format(LocalDate.now(), DatePattern.SIMPLE_MONTH_PATTERN);
+        param.setTradeMonth(month);
+        return kxsMerchantMapper.merchantList(page, param, CommonConstants.MCH_TABLE_PREFIX + month);
     }
 
     @Override
@@ -86,7 +83,71 @@ public class KxsMerchantServiceImpl extends ServiceImpl<KxsMerchantMapper, KxsMe
         merchantDetailVO.setPosSn(kxsMachine.getPosSn());
         merchantDetailVO.setBrand(kxsMachine.getBrandId().toString());
         merchantDetailVO.setActTime(kxsMachine.getActTime().toString());
+        KxsBrand brand = kxsBrandMapper.selectById(kxsMachine.getBrandId());
+        merchantDetailVO.setBrandName(brand.getName());
+
+        if (kxsMachine.getBrandId() == 12 || kxsMachine.getBrandId() == 13 || kxsMachine.getBrandId() == 15)
+        {
+            if (kxsMachine.getUpFeeFlag() == 1 && kxsMachine.getDownFeeFlag() == 0)
+            {
+                merchantDetailVO.setMchStatus("稳定期A");
+            }
+            else if (kxsMachine.getDownFeeFlag() == 1)
+            {
+                if(kxsMachine.getMachineRatio().compareTo(new BigDecimal("0.6")) == 0)
+                {
+                    merchantDetailVO.setMchStatus("稳定期B");
+                }
+                        else
+                {
+                    merchantDetailVO.setMchStatus( "稳定期A");
+                }
+            }
+            else
+            {
+                merchantDetailVO.setMchStatus("扶持期");
+            }
+        }
+        else if (kxsMachine.getBrandId() == 14) //广电卡
+        {
+            if (kxsMachine.getBindTime().plusDays(CommonConstants.BIND_DAY_NUM).isAfter(LocalDateTime.now()))
+            {
+                merchantDetailVO.setMchStatus("扶持期");
+            }
+            else
+            {
+                merchantDetailVO.setMchStatus("稳定期");
+            }
+        }
+        else
+        {
+            if (kxsMachine.getBindTime().plusDays(CommonConstants.BIND_DAY_NUM).isAfter(LocalDateTime.now()) && kxsMachine.getIsFirst() == 1 && kxsMachine.getCashPledge().compareTo(BigDecimal.ZERO) > 0)
+            {
+                merchantDetailVO.setMchStatus("扶持期");
+            }
+            else if (kxsMachine.getDownFeeFlag() == 1)
+            {
+                if (kxsMachine.getMachineRatio().compareTo(new BigDecimal("0.6")) == 0 )
+                {
+                    merchantDetailVO.setMchStatus("稳定期B");
+                }
+                        else if (kxsMachine.getMachineRatio().compareTo(new BigDecimal("0.63")) == 0 )
+                {
+                    merchantDetailVO.setMchStatus("稳定期A");
+                }
+                        else
+                {
+                    merchantDetailVO.setMchStatus("稳定期");
+                }
+            }
+            else
+            {
+                merchantDetailVO.setMchStatus("稳定期");
+            }
+        }
+
         return merchantDetailVO;
+
     }
 
     @Override

+ 13 - 15
kxs-product/kxs-product-biz/src/main/resources/mapper/KxsMerchantMapper.xml

@@ -27,19 +27,21 @@
     <select id="merchantList" resultType="com.kxs.product.api.vo.kxsapp.merchant.MerchantListVO">
         SELECT
         kme.id,
-        kme.create_time,
+        DATE_FORMAT(kme.create_time, '%Y-%m-%d') as create_time,
         kme.merchant_name,
         kma.machine_ratio,
         kma.down_fee_flag,
-        SUM(kskm.trade_amt) as thisMonthTrade
+        SUM(kskm.trade_amt) as this_month_trade,
+        kskm.trade_month
         FROM
         kxs_merchant kme
         LEFT JOIN
         kxs_machine kma ON kme.machine_id = kma.id
         LEFT JOIN
-        kxs_stat.kxs_merchant_trade kskm ON kskm.merchant_id = kme.id
+        kxs_stat.${tableName} kskm ON kskm.merchant_id = kme.id
         WHERE
-        kme.del_flag != 1
+        kme.del_flag = 0
+        AND kskm.trade_month = #{param.tradeMonth}
         AND kme.brand_id = #{param.brandId}
         AND kma.user_id = #{param.userId}
         <if test="param.keyword != null and param.keyword != ''">
@@ -56,22 +58,18 @@
         <if test="param.actStatus != null and param.actStatus != ''">
             AND kma.is_act = #{param.actStatus}
         </if>
-        GROUP BY
-        kme.id,
-        kme.create_time,
-        kme.merchant_name,
-        kma.machine_ratio
+        GROUP BY kme.id
         <if test="param.amountSection != null and param.amountSection != ''">
-            HAVING
-            thisMonthTrade BETWEEN
+            HAVING this_month_trade BETWEEN
             SUBSTRING_INDEX(#{param.amountSection}, '-', 1)
             AND SUBSTRING_INDEX(#{param.amountSection}, '-', -1)
         </if>
-        <if test="param.sort != null and param.sort != ''">
-            ORDER BY
-            #{param.sort} DESC
+        <if test="param.sort != null and param.sort == 'amount'">
+            ORDER BY this_month_trade DESC
+        </if>
+        <if test="param.sort != null and param.sort == 'time'">
+            ORDER BY create_time DESC
         </if>
-
     </select>
     <select id="merchantTotal" resultType="com.kxs.product.api.vo.kxsapp.merchant.MerchantTotalVO">
         SELECT

+ 10 - 4
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/vo/statUser/MerchantTradeDetailVO.java

@@ -1,5 +1,6 @@
 package com.kxs.stat.api.vo.statUser;
 
+import lombok.Builder;
 import lombok.Data;
 
 import java.math.BigDecimal;
@@ -7,27 +8,32 @@ import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
+
 /**
  * 我的商户-商户交易记录VO
+ *
+ * @author 没秃顶的码农
+ * @date 2024-06-12
  */
 @Data
+@Builder
 public class MerchantTradeDetailVO {
-    /**
-     * 创建时间
-     */
-    private LocalDateTime createTime;
+
     /**
      * 交易月
      */
     private String tradeMonth;
+
     /**
      * 交易金额
      */
     private List<Map<String,Object>> tradeAmt;
+
     /**
      * 月交易总金额
      */
     private BigDecimal tradeAmtMonth;
+
     /**
      * 商户id
      */

+ 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,@RequestParam("month") String month) {
-        return kxsMerchantTradeService.merchantTradeDetail(id,month);
+    public R merchantTradeDetail(@RequestParam("id") Long id, @RequestParam("month") String month) {
+        return kxsMerchantTradeService.merchantTradeDetail(id, month);
     }
 
 

+ 9 - 3
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsMerchantTradeMapper.java

@@ -1,9 +1,7 @@
 package com.kxs.stat.biz.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.kxs.common.core.util.R;
 import com.kxs.stat.api.model.KxsMerchantTrade;
-import com.kxs.stat.api.vo.statUser.MerchantTradeDetailVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -21,7 +19,15 @@ public interface KxsMerchantTradeMapper extends BaseMapper<KxsMerchantTrade> {
 
     void automaticTableCreationTasks(String tableName);
 
-    BigDecimal merchantTradeDetail(@Param("id") Long id, @Param("time") String time);
+    /**
+     * 根据日期天in查询交易额
+     *
+     * @param mchId 商户ID
+     * @param times     日期集合
+     * @param tableName 表名
+     * @return {@link List}<{@link KxsMerchantTrade}>
+     */
+    List<KxsMerchantTrade> mchTradeInListOfDay(@Param("mchId") Long mchId, @Param("times") List<Integer> times, @Param("tableName") String tableName);
 
 
 }

+ 37 - 33
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsMerchantTradeServiceImpl.java

@@ -1,14 +1,13 @@
 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.constant.CommonConstants;
 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.model.KxsMerchantTrade;
 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;
@@ -16,11 +15,9 @@ 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;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 商户交易统计总表(KxsMerchantTrade)表服务实现类
@@ -32,12 +29,18 @@ import java.util.Map;
 @RequiredArgsConstructor
 @Slf4j
 public class KxsMerchantTradeServiceImpl extends ServiceImpl<KxsMerchantTradeMapper, KxsMerchantTrade> implements KxsMerchantTradeService {
+
+
     private final KxsMerchantTradeMapper kxsMerchantTradeMapper;
+
+
     @Override
-    public R merchantTradeDetail(Long id,String month) {
+    public R merchantTradeDetail(Long mchId, String month) {
         AssertUtil.isyyyyMM(month);
+        String tableName = CommonConstants.MCH_TABLE_PREFIX + month;
+
         LocalDate now = LocalDate.now();
-        ArrayList<String> times = new ArrayList<>();
+        List<Integer> times = new ArrayList<>();
         //判断month是否是本月  否则获取月份中全部日日期
         int year = Integer.parseInt(month.substring(0, 4));
         int monthOfYear = Integer.parseInt(month.substring(4, 6));
@@ -47,7 +50,7 @@ public class KxsMerchantTradeServiceImpl extends ServiceImpl<KxsMerchantTradeMap
         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")));
+                times.add(Integer.valueOf(date.format(DatePattern.PURE_DATE_FORMATTER)));
             }
         } else {
             // 如果不是当前月份,则生成整个月的日期字符串
@@ -55,34 +58,35 @@ public class KxsMerchantTradeServiceImpl extends ServiceImpl<KxsMerchantTradeMap
             int daysInMonth = firstDayOfMonth.lengthOfMonth();
             for (int day = 1; day <= daysInMonth; day++) {
                 LocalDate date = firstDayOfMonth.withDayOfMonth(day);
-                times.add(date.format(DateTimeFormatter.ofPattern("yyyyMMdd")));
+                times.add(Integer.valueOf(date.format(DatePattern.PURE_DATE_FORMATTER)));
             }
         }
+        Collections.reverse(times);
+
         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());
+        List<KxsMerchantTrade> mchTrades = kxsMerchantTradeMapper.mchTradeInListOfDay(mchId, times, tableName);
+        //使用交易日作为map的key
+        Map<Integer, KxsMerchantTrade> tradeMap = mchTrades.stream().collect(Collectors.toMap(KxsMerchantTrade::getTradeDate, Function.identity()));
+
+        List<Map<String, Object>> tradeDays = new ArrayList<>();
+        for (Integer time : times) {
+            BigDecimal tradeAmt = BigDecimal.ZERO;
+            KxsMerchantTrade mchTrade = tradeMap.get(time);
+            if(mchTrade != null){
+                tradeAmt = mchTrade.getTradeAmt();
             }
+            HashMap<String, Object> amtMap = new HashMap<>();
             amtMap.put("time",time);
-            amtMap.put("amt",amt);
-            maps.add(amtMap);
-            totalAmt = totalAmt.add(amt);
+            amtMap.put("amt",tradeAmt);
+            tradeDays.add(amtMap);
+            totalAmt = totalAmt.add(tradeAmt);
         }
-        merchantTradeDetailVO.setTradeAmt(maps);
-        merchantTradeDetailVO.setTradeAmtMonth(totalAmt);
-        merchantTradeDetailVO.setTradeMonth(month);
-        merchantTradeDetailVO.setMerchantId(id);
-        //删除线程,避免线程污染
-        MonthTableNameHandler.removeData();
-        return R.ok(merchantTradeDetailVO);
+        MerchantTradeDetailVO mchTradeVo = MerchantTradeDetailVO.builder().tradeAmt(tradeDays)
+                .tradeAmtMonth(totalAmt)
+                .tradeMonth(month)
+                .merchantId(mchId).build();
+
+        return R.ok(mchTradeVo);
     }
 
 

+ 2 - 1
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/task/KxsStatTaskJob.java

@@ -2,6 +2,7 @@ package com.kxs.stat.biz.task;
 
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
+import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.common.security.annotation.Inner;
 import com.kxs.stat.biz.mapper.KxsMerchantTradeMapper;
 import com.kxs.stat.biz.mapper.KxsUserTradeAfterMapper;
@@ -62,7 +63,7 @@ public class KxsStatTaskJob {
         kxsUserTradeBeforeMapper.automaticTableCreationTasks(PREFIX_TABLE_NAME + "before_" + thisMoth);
         kxsUserTradeAfterMapper.automaticTableCreationTasks(PREFIX_TABLE_NAME + "after_" + thisMoth);
         //新建商户交易统计表
-        kxsMerchantTradeMapper.automaticTableCreationTasks("kxs_merchant_trade_" + thisMoth);
+        kxsMerchantTradeMapper.automaticTableCreationTasks(CommonConstants.MCH_TABLE_PREFIX + thisMoth);
     }
 
 

+ 19 - 17
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsMerchantTradeMapper.xml

@@ -3,32 +3,34 @@
 <mapper namespace="com.kxs.stat.biz.mapper.KxsMerchantTradeMapper">
 
     <resultMap type="com.kxs.stat.api.model.KxsMerchantTrade" id="KxsMerchantTradeMap">
-        <result column="id" property="id" />
-        <result column="create_time" property="createTime" />
-        <result column="update_time" property="updateTime" />
-        <result column="del_flag" property="delFlag" />
-        <result column="version" property="version" />
-        <result column="trade_date" property="tradeDate" />
-        <result column="trade_month" property="tradeMonth" />
-        <result column="trade_amt" property="tradeAmt" />
-        <result column="merchant_id" property="merchantId" />
-        <result column="brand_id" property="brandId" />
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="del_flag" property="delFlag"/>
+        <result column="version" property="version"/>
+        <result column="trade_date" property="tradeDate"/>
+        <result column="trade_month" property="tradeMonth"/>
+        <result column="trade_amt" property="tradeAmt"/>
+        <result column="merchant_id" property="merchantId"/>
+        <result column="brand_id" property="brandId"/>
 
     </resultMap>
     <update id="automaticTableCreationTasks">
         CREATE TABLE IF NOT EXISTS `${tableName}` LIKE kxs_merchant_trade;
     </update>
-    <select id="merchantTradeDetail" resultType="java.math.BigDecimal">
+    <select id="mchTradeInListOfDay" resultType="com.kxs.stat.api.model.KxsMerchantTrade">
         select
-            trade_amt
+            *
         from
-            kxs_merchant_trade
+            `${tableName}`
         where
-            del_flag != 1
-            and merchant_id = #{id}
-          and trade_date = #{time}
+            del_flag = 0
+            and merchant_id = #{mchId}
+            and trade_date in
+            <foreach collection="times" item="time" index="index" open="(" close=")" separator=",">
+                #{time}
+            </foreach>
     </select>
 
 
-
 </mapper>

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

@@ -211,8 +211,6 @@ public class KxsMachineAdvanceServiceImpl extends ServiceImpl<KxsMachineAdvanceM
             //构建用户小分仓
             //todo 此时需同步用户上月分润金额作为小分仓额度,暂时无法实现 初始化为0
             kxsWarehouseLimit = new KxsWarehouseLimit();
-            kxsWarehouseLimit.setCreateTime(LocalDateTime.now());
-            kxsWarehouseLimit.setDelFlag("0");
             kxsWarehouseLimit.setUserId(toUser.getId());
             kxsWarehouseLimit.setValidAmount(BigDecimal.ZERO);
             kxsWarehouseLimit.setFixedAmount(BigDecimal.ZERO);