Procházet zdrojové kódy

股东大盘分红调整

mac před 2 roky
rodič
revize
ec793ea04d

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

@@ -6,13 +6,21 @@ import java.math.BigDecimal;
 
 /**
  * 交易统计页面各品牌交易额VO
+ * @author mac
  */
 @Data
 public class StatUserBrandTradeVO {
+
     /***
      * 品牌id
      */
-    private Long brandId;
+    private Integer brandId;
+
+    /**
+     * 品牌
+     */
+    private String brandName;
+
     /**
      * 交易额
      */

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

@@ -127,6 +127,16 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
                                       @Param("userId")Long userId,
                                       @Param("date") String date);
 
+    /**
+     * 获取pos和云闪付的交易额
+     * @param totalType 0:个人 1:计奖
+     * @param tradeDate 该参数为是否根据日查询   不根据传""
+     */
+    List<KxsUserTrade> getMyPosAndCloudTrade(@Param("tableName")String tableName,
+                                      @Param("totalType")Integer totalType,
+                                      @Param("userId")Long userId,
+                                      @Param("tradeDate") String tradeDate);
+
     /**
      * 查询用户所有交易额汇总
      * @param userId 用户id
@@ -145,7 +155,28 @@ public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
                                     @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);
+    /**
+     * 获取统计用户品牌交易总额 按月
+     *
+     * @param userId    用户 ID
+     * @param tableName 表名
+     * @param totalType 总类型
+     * @return {@link List}<{@link StatUserBrandTradeVO}>
+     */
+    List<StatUserBrandTradeVO> getStatUserBrandTradeTotalMonth(@Param("tableName") String tableName, @Param("userId") Long userId, @Param("totalType")Integer totalType);
+
+    /**
+     * 获取统计用户品牌交易总额 按天
+     *
+     * @param tableName 表名
+     * @param userId    用户 ID
+     * @param totalType 总类型
+     * @return {@link List}<{@link StatUserBrandTradeVO}>
+     */
+    List<StatUserBrandTradeVO> getStatUserBrandTradeTotalMonthDay(@Param("tableName") String tableName,
+                                                                  @Param("userId") Long userId,
+                                                                  @Param("totalType")Integer totalType,
+                                                                  @Param("tradeDate") String tradeDate);
 
 }
 

+ 57 - 35
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -1,7 +1,6 @@
 package com.kxs.stat.biz.service.impl;
 
 import cn.hutool.core.date.DatePattern;
-import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.NumberUtil;
@@ -472,37 +471,52 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         Integer getType = param.getGetType();//获取类型 1获取月 2获取半年
         Integer tradeType = param.getTradeType();//1获取增量 2获取存量 3获取全部
         LocalDate now = LocalDate.now();
-        String tableName = "";
+        String tableName;
         List<String> times = new ArrayList<>();
-        if (tradeType.equals(3)) {//获取全部
-            tableName = PREFIX_TABLE_NAME; //全部
-            if (getType.equals(2)) {//查询近半年
-                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListVOSByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
-                return R.ok(statUserGetUserTradeStatListVOS);
-            } else if (getType.equals(1)) {//查询月详细
-                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
-                return R.ok(statUserGetUserTradeStatListVOS);
-            }
-        } else if (tradeType.equals(2)) {
-            tableName = PREFIX_TABLE_NAME_BEFORE; //存量
-            if (getType.equals(2)) {//查询近半年
-                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListVOSByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
-                return R.ok(statUserGetUserTradeStatListVOS);
-            } else if (getType.equals(1)) {//查询月详细
-                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
-                return R.ok(statUserGetUserTradeStatListVOS);
-            }
-        } else if (tradeType.equals(1)) {
-            tableName = PREFIX_TABLE_NAME_AFTER; //增量
-            if (getType.equals(2)) {//查询近半年
-                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListVOSByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
-                return R.ok(statUserGetUserTradeStatListVOS);
-            } else if (getType.equals(1)) {//查询月详细
-                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
-                return R.ok(statUserGetUserTradeStatListVOS);
-            }
+
+        switch (tradeType){
+            case 1 -> tableName = PREFIX_TABLE_NAME_AFTER; //增量
+            case 2 -> tableName = PREFIX_TABLE_NAME_BEFORE; //存量
+            case 3 -> tableName = PREFIX_TABLE_NAME; //全部
+            default -> throw new GlobalCustomerException("参数错误");
         }
-        return R.ok();
+        ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS;
+        if(getType == 1){
+            statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+        }else if(getType == 2){
+            statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListByMonth(totalType, userId, getType, now, times, tableName, tradeType);
+        }else {
+            return R.failed("参数错误");
+        }
+        return R.ok(statUserGetUserTradeStatListVOS);
+//        if (tradeType.equals(3)) {//获取全部
+//            tableName = PREFIX_TABLE_NAME; //全部
+//            if (getType.equals(2)) {//查询近半年
+//                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
+//                return R.ok(statUserGetUserTradeStatListVOS);
+//            } else if (getType.equals(1)) {//查询月详细
+//                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+//                return R.ok(statUserGetUserTradeStatListVOS);
+//            }
+//        } else if (tradeType.equals(2)) {
+//            tableName = PREFIX_TABLE_NAME_BEFORE; //存量
+//            if (getType.equals(2)) {//查询近半年
+//                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
+//                return R.ok(statUserGetUserTradeStatListVOS);
+//            } else if (getType.equals(1)) {//查询月详细
+//                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+//                return R.ok(statUserGetUserTradeStatListVOS);
+//            }
+//        } else if (tradeType.equals(1)) {
+//            tableName = PREFIX_TABLE_NAME_AFTER; //增量
+//            if (getType.equals(2)) {//查询近半年
+//                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getStatUserGetUserTradeStatListByMonth(month, totalType, userId, getType, now, times, tableName, tradeType);
+//                return R.ok(statUserGetUserTradeStatListVOS);
+//            } else if (getType.equals(1)) {//查询月详细
+//                ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = getUserGetUserTradeStatListVOSByDay(month, totalType, userId, getType, now, times, tableName, tradeType);
+//                return R.ok(statUserGetUserTradeStatListVOS);
+//            }
+//        }
 
     }
 
@@ -659,7 +673,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
 
     }
 
-    private ArrayList<StatUserGetUserTradeStatListVO> getStatUserGetUserTradeStatListVOSByMonth(String month, Integer totalType, Long userId, Integer getType, LocalDate now, List<String> times, String tableName, Integer tradeType) {
+    private ArrayList<StatUserGetUserTradeStatListVO> getStatUserGetUserTradeStatListByMonth(Integer totalType, Long userId, Integer getType, LocalDate now, List<String> times, String tableName, Integer tradeType) {
         //近半年
         for (int i = 0; i < 6; i++) {
             // 计算过去半年每月月份
@@ -671,7 +685,6 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         //获取交易额
         //构造查询Dto
         StatUserGetMyTradeDTO statUserGetMyTradeDTO = new StatUserGetMyTradeDTO();
-        statUserGetMyTradeDTO.setMonth(Integer.valueOf(month));
         statUserGetMyTradeDTO.setType(totalType);
         ArrayList<StatUserGetUserTradeStatListVO> statUserGetUserTradeStatListVOS = new ArrayList<>();
         //查询进半年需要循环查询不同的表
@@ -685,7 +698,7 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
                 if (myPosTrade == null) {
                     myPosTrade = new KxsUserTrade();
                 }
-                StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = getMonthTrade(totalType, userId, getType, statUserGetMyTradeDTO, myPosTrade, month, time, tableName, tradeType);
+                StatUserGetUserTradeStatListVO statUserGetUserTradeStatListVO = getMonthTrade(totalType, userId, getType, statUserGetMyTradeDTO, myPosTrade, time, time, tableName, tradeType);
                 statUserGetUserTradeStatListVO.setTime(time);
                 statUserGetUserTradeStatListVOS.add(statUserGetUserTradeStatListVO);
             } catch (Exception e) {
@@ -752,7 +765,8 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetUserTradeStatListVO.setCloudAmunt(posAmount);
         totalAmount = totalAmount.add(posAmount);
 
-        if (!tradeType.equals(2)) {//存量不存在以下数据
+        //存量不存在以下数据
+        if (tradeType != 2) {
             //助力宝交易额
             TotalTradeAmtVO TotalTradeAmtVO = kxsZlbTradeMapper.getZlbTrade(userId, Integer.valueOf(date), totalType);
             TotalTradeAmtVO = TotalTradeAmtVO == null ? new TotalTradeAmtVO() : TotalTradeAmtVO;
@@ -807,7 +821,15 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         statUserGetUserTradeStatListVO.setTotalAmount(totalAmount);
 
         //查询各品牌交易总额
-        List<StatUserBrandTradeVO> statUserBrandTradeVOS = baseMapper.getStatUserBrandTradeVOS(userId, getType, tableName, totalType, date);
+        List<StatUserBrandTradeVO> statUserBrandTradeVOS;
+        if(getType == 1){
+            statUserBrandTradeVOS = baseMapper.getStatUserBrandTradeTotalMonthDay(tableName, userId, totalType, date);
+        }else{
+            statUserBrandTradeVOS = baseMapper.getStatUserBrandTradeTotalMonth(tableName, userId, totalType);
+        }
+        for (StatUserBrandTradeVO statUserBrandTradeVO : statUserBrandTradeVOS) {
+            statUserBrandTradeVO.setBrandName(getBrandMap().get(statUserBrandTradeVO.getBrandId()).getName());
+        }
         statUserGetUserTradeStatListVO.setProductList(statUserBrandTradeVOS);
         return statUserGetUserTradeStatListVO;
     }

+ 36 - 5
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserTradeMapper.xml

@@ -70,7 +70,7 @@
         select * from `${tableName}`
     </select>
     <select id="getStatAmount" resultType="java.math.BigDecimal">
-        select sum(pro_debit_trade_amt + pro_direct_trade_amt) from `${tableName}` where user_id = 1 and del_flag != 1
+        select ifnull(sum(pro_debit_trade_amt + pro_direct_trade_amt), 0) from `${tableName}` where user_id = 1 and del_flag != 1
     </select>
     <select id="getUserTradeMonthTotal" resultType="com.kxs.stat.api.vo.myUser.PercentVO">
         select sum(pro_b_direct_trade_amt + pro_b_debit_trade_amt + pro_a_debit_trade_amt + pro_a_direct_trade_amt +
@@ -129,6 +129,27 @@
                 and trade_date = #{date}
             </if>
         </where>
+        group by trade_type
+    </select>
+    <select id="getMyPosAndCloudTrade" 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 = #{totalType}
+            and user_id = #{userId}
+            <if test="tradeDate != null and tradeDate != '' ">
+                and trade_date = #{tradeDate}
+            </if>
+        </where>
+        group by trade_type
     </select>
     <select id="getAllUserTradeSum" resultType="com.kxs.stat.api.model.KxsUserTrade">
         select
@@ -162,7 +183,7 @@
             </if>
         </where>
     </select>
-    <select id="getStatUserBrandTradeVOS" resultType="com.kxs.stat.api.vo.statUser.StatUserBrandTradeVO">
+    <select id="getStatUserBrandTradeTotalMonth" 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
@@ -170,9 +191,19 @@
         <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>
+    <select id="getStatUserBrandTradeTotalMonthDay" 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}
+            and trade_date = #{tradeDate}
         </where>
         group by
             brand_id