Răsfoiți Sursa

Merge branch 'develop' into develop-kjf

Pota1ovO 2 ani în urmă
părinte
comite
ed980abc45
31 a modificat fișierele cu 1333 adăugiri și 41 ștergeri
  1. 2 1
      kxs-common/kxs-common-mybatis/src/main/java/com/kxs/common/mybatis/MybatisAutoConfiguration.java
  2. 0 40
      kxs-common/kxs-common-mybatis/src/main/java/com/kxs/common/mybatis/config/MybatisPlusConfig.java
  3. 61 0
      kxs-stat/kxs-stat-api/pom.xml
  4. 101 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsMerchantTrade.java
  5. 115 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsUserActTrade.java
  6. 233 0
      kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsUserTrade.java
  7. 0 0
      kxs-stat/kxs-stat-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  8. 195 0
      kxs-stat/kxs-stat-biz/pom.xml
  9. 24 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/KxsStatApplication.java
  10. 17 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsMerchantTradeMapper.java
  11. 17 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserActTradeMapper.java
  12. 17 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserTradeMapper.java
  13. 15 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsMerchantTradeService.java
  14. 15 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserActTradeService.java
  15. 15 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserTradeService.java
  16. 19 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsMerchantTradeServiceImpl.java
  17. 19 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserActTradeServiceImpl.java
  18. 19 0
      kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java
  19. 18 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsMerchantTradeMapper.xml
  20. 20 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserActTradeMapper.xml
  21. 36 0
      kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserTradeMapper.xml
  22. 26 0
      kxs-stat/pom.xml
  23. 4 0
      kxs-transfer/pom.xml
  24. 14 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java
  25. 19 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsMerchantTradeMapper.java
  26. 19 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsUserActTradeMapper.java
  27. 19 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsUserTradeMapper.java
  28. 18 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsMerchantTradeService.java
  29. 18 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserActTradeService.java
  30. 231 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserTradeService.java
  31. 7 0
      pom.xml

+ 2 - 1
kxs-common/kxs-common-mybatis/src/main/java/com/kxs/common/mybatis/MybatisAutoConfiguration.java

@@ -48,12 +48,13 @@ public class MybatisAutoConfiguration implements WebMvcConfigurer {
 		//动态分表
 		DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
 		dynamicTableNameInnerInterceptor.setTableNameHandler(
-				new MonthTableNameHandler("kxs_user_amount_log")
+				new MonthTableNameHandler("kxs_user_amount_log", "kxs_user_trade")
 		);
 		interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
 		return interceptor;
 	}
 
+
 	/**
 	 * 审计字段自动填充
 	 * @return {@link MetaObjectHandler}

+ 0 - 40
kxs-common/kxs-common-mybatis/src/main/java/com/kxs/common/mybatis/config/MybatisPlusConfig.java

@@ -1,40 +0,0 @@
-package com.kxs.common.mybatis.config;
-
-import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerInterceptor;
-import com.baomidou.mybatisplus.extension.plugins.inner.DynamicTableNameInnerInterceptor;
-import com.kxs.common.mybatis.handler.MonthTableNameHandler;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import java.util.Random;
-
-/**
- * mybatis plus 配置
- *
- * @author 没秃顶的码农
- * @date 2024-03-18
- */
-@Configuration
-public class MybatisPlusConfig {
-
-    /**
-     * @return {@link MybatisPlusInterceptor}
-     */
-    @Bean
-    public MybatisPlusInterceptor mybatisPlusInterceptor() {
-        //针对 update 和 delete 语句 作用: 阻止恶意的全表更新删除
-        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
-        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
-
-        //动态分表
-        DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor();
-        dynamicTableNameInnerInterceptor.setTableNameHandler(
-                new MonthTableNameHandler("kxs_user_amount_log")
-        );
-
-        interceptor.addInnerInterceptor(dynamicTableNameInnerInterceptor);
-        return interceptor;
-    }
-
-}

+ 61 - 0
kxs-stat/kxs-stat-api/pom.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.kxs</groupId>
+        <artifactId>kxs-stat</artifactId>
+        <version>1.1.0</version>
+    </parent>
+
+    <artifactId>kxs-stat-api</artifactId>
+    <packaging>jar</packaging>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+        <!--core 工具类-->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-core</artifactId>
+        </dependency>
+        <!-- excel 导入导出 https://github.com/sky-mesh/excel-spring-boot-starter -->
+        <dependency>
+            <groupId>com.pig4cloud.excel</groupId>
+            <artifactId>excel-spring-boot-starter</artifactId>
+        </dependency>
+        <!--mybatis 依赖-->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-mybatis</artifactId>
+        </dependency>
+        <!--swagger 注解-->
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
+        </dependency>
+        <!-- LB 扩展 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
+        </dependency>
+        <!--caffeine 替换LB 默认缓存实现-->
+        <dependency>
+            <groupId>com.github.ben-manes.caffeine</groupId>
+            <artifactId>caffeine</artifactId>
+        </dependency>
+        <!-- seata -->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-seata</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 101 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsMerchantTrade.java

@@ -0,0 +1,101 @@
+package com.kxs.stat.api.model;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 商户交易统计总表(KxsMerchantTrade)表实体类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsMerchantTrade extends Model<KxsMerchantTrade> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 删除标记,0未删除,1已删除
+     */
+    @Schema(description = "删除标记,0未删除,1已删除")
+    private String delFlag;
+
+
+    /**
+     * 版本
+     */
+    @Schema(description = "版本")
+    private Integer version;
+
+
+    /**
+     * 交易日
+     */
+    @Schema(description = "交易日")
+    private Integer tradeDate;
+
+
+    /**
+     * 交易月
+     */
+    @Schema(description = "交易月")
+    private Integer tradeMonth;
+
+
+    /**
+     * 交易额
+     */
+    @Schema(description = "交易额")
+    private BigDecimal tradeAmt;
+
+
+    /**
+     * 商户ID
+     */
+    @Schema(description = "商户ID")
+    private Integer merchantId;
+
+
+
+
+}
+

+ 115 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsUserActTrade.java

@@ -0,0 +1,115 @@
+package com.kxs.stat.api.model;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 创客激活统计表(KxsUserActTrade)表实体类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsUserActTrade extends Model<KxsUserActTrade> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 删除标记,0未删除,1已删除
+     */
+    @Schema(description = "删除标记,0未删除,1已删除")
+    private Integer delFlag;
+
+
+    /**
+     * 版本
+     */
+    @Schema(description = "版本")
+    private Integer version;
+
+
+    /**
+     * 用户ID
+     */
+    @Schema(description = "用户ID")
+    private Integer userId;
+
+
+    /**
+     * 交易日
+     */
+    @Schema(description = "交易日")
+    private Integer tradeDate;
+
+
+    /**
+     * 品牌ID
+     */
+    @Schema(description = "品牌ID")
+    private Integer brandId;
+
+
+    /**
+     * 激活数
+     */
+    @Schema(description = "激活数")
+    private Integer actNum;
+
+
+    /**
+     * 交易月
+     */
+    @Schema(description = "交易月")
+    private Integer tradeMonth;
+
+
+    /**
+     * 统计类型 0个人 1团队
+     */
+    @Schema(description = "统计类型 0个人 1团队")
+    private Integer totalType;
+
+
+
+
+}
+

+ 233 - 0
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/model/KxsUserTrade.java

@@ -0,0 +1,233 @@
+package com.kxs.stat.api.model;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 个人交易统计总表(KxsUserTrade)表实体类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsUserTrade extends Model<KxsUserTrade> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 删除标记,0未删除,1已删除
+     */
+    @Schema(description = "删除标记,0未删除,1已删除")
+    private String delFlag;
+
+
+    /**
+     * 版本
+     */
+    @Schema(description = "版本")
+    private Integer version;
+
+
+    /**
+     * 用户ID
+     */
+    @Schema(description = "用户ID")
+    private Integer userId;
+
+
+    /**
+     * 交易日
+     */
+    @Schema(description = "交易日")
+    private Integer tradeDate;
+
+
+    /**
+     * 交易月
+     */
+    @Schema(description = "交易月")
+    private Integer tradeMonth;
+
+
+    /**
+     * 品牌ID
+     */
+    @Schema(description = "品牌ID")
+    private Integer brandId;
+
+    /**
+     * 是否会员标识
+     */
+    @Schema(description = "是否会员标识")
+    private Integer vipFlag;
+
+
+    /**
+     * 扶持期贷记卡交易额
+     */
+    @Schema(description = "扶持期贷记卡交易额")
+    private BigDecimal helpDirectTradeAmt;
+
+
+    /**
+     * 扶持期借记卡
+     */
+    @Schema(description = "扶持期借记卡")
+    private BigDecimal helpDebitTradeAmt;
+
+
+    /**
+     * 稳定期贷记卡
+     */
+    @Schema(description = "稳定期贷记卡")
+    private BigDecimal proDirectTradeAmt;
+
+
+    /**
+     * 稳定期借记卡
+     */
+    @Schema(description = "稳定期借记卡")
+    private BigDecimal proDebitTradeAmt;
+
+
+    /**
+     * 稳定期A贷记卡
+     */
+    @Schema(description = "稳定期A贷记卡")
+    private BigDecimal proADirectTradeAmt;
+
+
+    /**
+     * 稳定期A借记卡
+     */
+    @Schema(description = "稳定期A借记卡")
+    private BigDecimal proADebitTradeAmt;
+
+
+    /**
+     * 统计类型 0pos 1云闪付
+     */
+    @Schema(description = "统计类型 0pos 1云闪付")
+    private Integer tradeType;
+
+
+    /**
+     * 扶持期借记卡封顶交易额
+     */
+    @Schema(description = "扶持期借记卡封顶交易额")
+    private BigDecimal helpDebitCapTradeAmt;
+
+
+    /**
+     * 扶持期借记卡封顶交易笔数
+     */
+    @Schema(description = "扶持期借记卡封顶交易笔数")
+    private Integer helpDebitCapNum;
+
+
+    /**
+     * 稳定期借记卡封顶交易额
+     */
+    @Schema(description = "稳定期借记卡封顶交易额")
+    private BigDecimal proDebitCapTradeAmt;
+
+
+    /**
+     * 稳定期借记卡封顶交易笔数
+     */
+    @Schema(description = "稳定期借记卡封顶交易笔数")
+    private Integer proDebitCapNum;
+
+
+    /**
+     * 稳定期A借记卡封顶交易额
+     */
+    @Schema(description = "稳定期A借记卡封顶交易额")
+    private BigDecimal proADebitCapTradeAmt;
+
+
+    /**
+     * 稳定期A借记卡封顶交易笔数
+     */
+    @Schema(description = "稳定期A借记卡封顶交易笔数")
+    private Integer proADebitCapNum;
+
+
+    /**
+     * 统计类型 0个人 1团队
+     */
+    @Schema(description = "统计类型 0个人 1团队")
+    private Integer totalType;
+
+
+    /**
+     * 稳定期B借记卡
+     */
+    @Schema(description = "稳定期B借记卡")
+    private BigDecimal proBDebitTradeAmt;
+
+
+    /**
+     * 稳定期B贷记卡
+     */
+    @Schema(description = "稳定期B贷记卡")
+    private BigDecimal proBDirectTradeAmt;
+
+
+    /**
+     * 稳定期B借记卡封顶交易额
+     */
+    @Schema(description = "稳定期B借记卡封顶交易额")
+    private BigDecimal proBDebitCapTradeAmt;
+
+
+    /**
+     * 稳定期B借记卡封顶交易笔数
+     */
+    @Schema(description = "稳定期B借记卡封顶交易笔数")
+    private Integer proBDebitCapNum;
+
+
+
+
+}
+

+ 0 - 0
kxs-stat/kxs-stat-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports


+ 195 - 0
kxs-stat/kxs-stat-biz/pom.xml

@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.kxs</groupId>
+        <artifactId>kxs-stat</artifactId>
+        <version>1.1.0</version>
+    </parent>
+
+    <artifactId>kxs-stat-biz</artifactId>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+        <!--注册中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+        </dependency>
+        <!--配置中心客户端-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+        </dependency>
+        <!--undertow容器-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-undertow</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-stat-api</artifactId>
+        </dependency>
+        <!-- 产品模块 -->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-product-api</artifactId>
+        </dependency>
+        <!-- 用户模块 -->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-user-api</artifactId>
+        </dependency>
+        <!--core 工具类-->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-core</artifactId>
+        </dependency>
+        <!-- excel 导入导出 https://github.com/sky-mesh/excel-spring-boot-starter -->
+        <dependency>
+            <groupId>com.pig4cloud.excel</groupId>
+            <artifactId>excel-spring-boot-starter</artifactId>
+        </dependency>
+        <!--日志处理-->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-log</artifactId>
+        </dependency>
+        <!--安全模块-->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-security</artifactId>
+        </dependency>
+        <!-- orm 模块-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.mysql</groupId>
+            <artifactId>mysql-connector-j</artifactId>
+        </dependency>
+        <!--多数据源-->
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
+        </dependency>
+        <!--接口文档-->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-swagger</artifactId>
+        </dependency>
+    </dependencies>
+    <build>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <!--打包java路径下的静态文件-->
+            <resource>
+                <directory>src/main/java</directory>
+                <filtering>false</filtering>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
+        <plugins>
+            <!--该插件的作用是打包spring-boot的jar包-->
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <!--不排除的话,systemScope的依赖包会自动被此插件打包进xxx.jar\BOOT-INF\lib,和外部依赖产生冲突 -->
+                    <includeSystemScope>false</includeSystemScope>
+                    <skip>false</skip>
+                    <!--分离Jar包-->
+                    <layout>ZIP</layout>
+                    <includes>
+                        <include>
+                            <groupId>nothing</groupId>
+                            <artifactId>nothing</artifactId>
+                        </include>
+                    </includes>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- 该插件的作用是复制依赖的jar包到指定的文件夹里 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib/</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- 该插件的作用是复制指定的文件 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <executions>
+                    <!-- 复制配置文件 -->
+                    <execution>
+                        <id>copy-resources</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>copy-resources</goal>
+                        </goals>
+                        <configuration>
+                            <resources>
+                                <!--复制资源文件到外部,注意这里先不做filtering处理,防止某些静态文件损坏-->
+                                <resource>
+                                    <filtering>false</filtering>
+                                    <directory>src/main/resources</directory>
+                                    <includes>
+                                        <include>**/*</include>
+                                    </includes>
+                                </resource>
+                                <!--仅针对配置文件filtering处理(占位符@@等)-->
+                                <resource>
+                                    <directory>src/main/resources</directory>
+                                    <filtering>true</filtering>
+                                    <includes>
+                                        <include>*.xml</include>
+                                        <include>*.yml</include>
+                                        <include>*.properties</include>
+                                    </includes>
+                                </resource>
+                            </resources>
+                            <outputDirectory>${project.build.directory}/config</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>16</source>
+                    <target>16</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 24 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/KxsStatApplication.java

@@ -0,0 +1,24 @@
+package com.kxs.stat.biz;
+
+import com.kxs.common.security.annotation.EnableAuthResourceServer;
+import com.kxs.common.swagger.annotation.EnableKxsDoc;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+
+/**
+ * KXS统计模块
+ *
+ * @author 没秃顶的码农
+ * @date 2024-01-15
+ */
+@SpringBootApplication
+@EnableAuthResourceServer
+@EnableKxsDoc(value = "stat")
+public class KxsStatApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(KxsStatApplication.class, args);
+	}
+
+}

+ 17 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsMerchantTradeMapper.java

@@ -0,0 +1,17 @@
+package com.kxs.stat.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsMerchantTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 商户交易统计总表(KxsMerchantTrade)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Mapper
+public interface KxsMerchantTradeMapper extends BaseMapper<KxsMerchantTrade> {
+
+}
+

+ 17 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/mapper/KxsUserActTradeMapper.java

@@ -0,0 +1,17 @@
+package com.kxs.stat.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsUserActTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 创客激活统计表(KxsUserActTrade)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:05
+ */
+@Mapper
+public interface KxsUserActTradeMapper extends BaseMapper<KxsUserActTrade> {
+
+}
+

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

@@ -0,0 +1,17 @@
+package com.kxs.stat.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsUserTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 个人交易统计总表(KxsUserTrade)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Mapper
+public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
+
+}
+

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

@@ -0,0 +1,15 @@
+package com.kxs.stat.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.stat.api.model.KxsMerchantTrade;
+
+/**
+ * 商户交易统计总表(KxsMerchantTrade)表服务接口
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+public interface KxsMerchantTradeService extends IService<KxsMerchantTrade> {
+
+}
+

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

@@ -0,0 +1,15 @@
+package com.kxs.stat.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.stat.api.model.KxsUserActTrade;
+
+/**
+ * 创客激活统计表(KxsUserActTrade)表服务接口
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+public interface KxsUserActTradeService extends IService<KxsUserActTrade> {
+
+}
+

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

@@ -0,0 +1,15 @@
+package com.kxs.stat.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.stat.api.model.KxsUserTrade;
+
+/**
+ * 个人交易统计总表(KxsUserTrade)表服务接口
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+public interface KxsUserTradeService extends IService<KxsUserTrade> {
+
+}
+

+ 19 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsMerchantTradeServiceImpl.java

@@ -0,0 +1,19 @@
+package com.kxs.stat.biz.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.stat.biz.mapper.KxsMerchantTradeMapper;
+import com.kxs.stat.api.model.KxsMerchantTrade;
+import com.kxs.stat.biz.service.KxsMerchantTradeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 商户交易统计总表(KxsMerchantTrade)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Service("kxsMerchantTradeService")
+public class KxsMerchantTradeServiceImpl extends ServiceImpl<KxsMerchantTradeMapper, KxsMerchantTrade> implements KxsMerchantTradeService {
+
+}
+

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

@@ -0,0 +1,19 @@
+package com.kxs.stat.biz.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.stat.biz.mapper.KxsUserActTradeMapper;
+import com.kxs.stat.api.model.KxsUserActTrade;
+import com.kxs.stat.biz.service.KxsUserActTradeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 创客激活统计表(KxsUserActTrade)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Service("kxsUserActTradeService")
+public class KxsUserActTradeServiceImpl extends ServiceImpl<KxsUserActTradeMapper, KxsUserActTrade> implements KxsUserActTradeService {
+
+}
+

+ 19 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -0,0 +1,19 @@
+package com.kxs.stat.biz.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.stat.biz.mapper.KxsUserTradeMapper;
+import com.kxs.stat.api.model.KxsUserTrade;
+import com.kxs.stat.biz.service.KxsUserTradeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 个人交易统计总表(KxsUserTrade)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Service("kxsUserTradeService")
+public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, KxsUserTrade> implements KxsUserTradeService {
+
+}
+

+ 18 - 0
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsMerchantTradeMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<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" />
+
+    </resultMap>
+
+</mapper>

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

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kxs.stat.biz.mapper.KxsUserActTradeMapper">
+
+    <resultMap type="com.kxs.stat.api.model.KxsUserActTrade" id="KxsUserActTradeMap">
+        <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="user_id" property="userId" />
+        <result column="trade_date" property="tradeDate" />
+        <result column="brand_id" property="brandId" />
+        <result column="act_num" property="actNum" />
+        <result column="trade_month" property="tradeMonth" />
+        <result column="total_type" property="totalType" />
+
+    </resultMap>
+
+</mapper>

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

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kxs.stat.biz.mapper.KxsUserTradeMapper">
+
+    <resultMap type="com.kxs.stat.api.model.KxsUserTrade" id="KxsUserTradeMap">
+        <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="user_id" property="userId" />
+        <result column="trade_date" property="tradeDate" />
+        <result column="trade_month" property="tradeMonth" />
+        <result column="brand_id" property="brandId" />
+        <result column="help_direct_trade_amt" property="helpDirectTradeAmt" />
+        <result column="help_debit_trade_amt" property="helpDebitTradeAmt" />
+        <result column="pro_direct_trade_amt" property="proDirectTradeAmt" />
+        <result column="pro_debit_trade_amt" property="proDebitTradeAmt" />
+        <result column="pro_a_direct_trade_amt" property="proADirectTradeAmt" />
+        <result column="pro_a_debit_trade_amt" property="proADebitTradeAmt" />
+        <result column="trade_type" property="tradeType" />
+        <result column="help_debit_cap_trade_amt" property="helpDebitCapTradeAmt" />
+        <result column="help_debit_cap_num" property="helpDebitCapNum" />
+        <result column="pro_debit_cap_trade_amt" property="proDebitCapTradeAmt" />
+        <result column="pro_debit_cap_num" property="proDebitCapNum" />
+        <result column="pro_a_debit_cap_trade_amt" property="proADebitCapTradeAmt" />
+        <result column="pro_a_debit_cap_num" property="proADebitCapNum" />
+        <result column="total_type" property="totalType" />
+        <result column="pro_b_debit_trade_amt" property="proBDebitTradeAmt" />
+        <result column="pro_b_direct_trade_amt" property="proBDirectTradeAmt" />
+        <result column="pro_b_debit_cap_trade_amt" property="proBDebitCapTradeAmt" />
+        <result column="pro_b_debit_cap_num" property="proBDebitCapNum" />
+
+    </resultMap>
+
+</mapper>

+ 26 - 0
kxs-stat/pom.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.kxs</groupId>
+        <artifactId>kxs-cloud</artifactId>
+        <version>1.1.0</version>
+    </parent>
+
+    <artifactId>kxs-stat</artifactId>
+    <packaging>pom</packaging>
+    <description>客小爽 统计模块</description>
+    <modules>
+        <module>kxs-stat-api</module>
+        <module>kxs-stat-biz</module>
+    </modules>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+</project>

+ 4 - 0
kxs-transfer/pom.xml

@@ -66,6 +66,10 @@
             <groupId>com.kxs</groupId>
             <artifactId>kxs-store-api</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-stat-api</artifactId>
+        </dependency>
         <!--core 工具类-->
         <dependency>
             <groupId>com.kxs</groupId>

+ 14 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -19,6 +19,7 @@ import com.kxs.transfer.api.service.KxsDtsLogService;
 import com.kxs.transfer.api.service.product.*;
 import com.kxs.transfer.api.service.product.impl.KxsMachineTrackService;
 import com.kxs.transfer.api.service.product.impl.KxsShopOrderService;
+import com.kxs.transfer.api.service.stat.KxsUserTradeService;
 import com.kxs.transfer.api.service.store.KxsMachineRecycleService;
 import com.kxs.transfer.api.service.store.KxsWarehouseService;
 import com.kxs.transfer.api.service.store.impl.*;
@@ -95,6 +96,9 @@ public class DtsController {
     private final KxsWarehouseLimitLogService kxsWarehouseLimitLogService;
     private final KxsActTotalService kxsActTotalService;
 
+    //统计模块
+    private final KxsUserTradeService kxsUserTradeService;
+
     @Value("${spring.profiles.active}")
     private String active;
 
@@ -338,6 +342,16 @@ public class DtsController {
                 kxsSysMsgService.changeModalData(dmlData);
             }
 
+            //创客交易额统计表
+            if ("TradeDaySummary".equals(dmlData.getTableName())) {
+                kxsUserTradeService.changeData(dmlData);
+            }
+            if ("TradeDaySummary2".equals(dmlData.getTableName())) {
+                kxsUserTradeService.change2Data(dmlData);
+            }
+
+
+
             //存储历史数据
             KxsDtsLog kxsDtsLog = new KxsDtsLog();
             kxsDtsLog.setDataId(dataId);

+ 19 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsMerchantTradeMapper.java

@@ -0,0 +1,19 @@
+package com.kxs.transfer.api.mapper.stat;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsMerchantTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 商户交易统计总表(KxsMerchantTrade)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Mapper
+@DS("stat")
+public interface KxsMerchantTradeMapper extends BaseMapper<KxsMerchantTrade> {
+
+}
+

+ 19 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsUserActTradeMapper.java

@@ -0,0 +1,19 @@
+package com.kxs.transfer.api.mapper.stat;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsUserActTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 创客激活统计表(KxsUserActTrade)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:05
+ */
+@Mapper
+@DS("stat")
+public interface KxsUserActTradeMapper extends BaseMapper<KxsUserActTrade> {
+
+}
+

+ 19 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/mapper/stat/KxsUserTradeMapper.java

@@ -0,0 +1,19 @@
+package com.kxs.transfer.api.mapper.stat;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.stat.api.model.KxsUserTrade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 个人交易统计总表(KxsUserTrade)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Mapper
+@DS("stat")
+public interface KxsUserTradeMapper extends BaseMapper<KxsUserTrade> {
+
+}
+

+ 18 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsMerchantTradeService.java

@@ -0,0 +1,18 @@
+package com.kxs.transfer.api.service.stat;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.stat.api.model.KxsMerchantTrade;
+import com.kxs.transfer.api.mapper.stat.KxsMerchantTradeMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * 商户交易统计总表(KxsMerchantTrade)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Service("kxsMerchantTradeService")
+public class KxsMerchantTradeService extends ServiceImpl<KxsMerchantTradeMapper, KxsMerchantTrade>{
+
+}
+

+ 18 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserActTradeService.java

@@ -0,0 +1,18 @@
+package com.kxs.transfer.api.service.stat;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.stat.api.model.KxsUserActTrade;
+import com.kxs.transfer.api.mapper.stat.KxsUserActTradeMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * 创客激活统计表(KxsUserActTrade)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Service("kxsUserActTradeService")
+public class KxsUserActTradeService extends ServiceImpl<KxsUserActTradeMapper, KxsUserActTrade> {
+
+}
+

+ 231 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/stat/KxsUserTradeService.java

@@ -0,0 +1,231 @@
+package com.kxs.transfer.api.service.stat;
+
+import com.aliyun.dts.subscribe.clients.record.OperationType;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.mybatis.handler.MonthTableNameHandler;
+import com.kxs.stat.api.model.KxsUserTrade;
+import com.kxs.transfer.api.mapper.stat.KxsUserTradeMapper;
+import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 个人交易统计总表(KxsUserTrade)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-05-07 17:25:06
+ */
+@Service("kxsUserTradeService")
+public class KxsUserTradeService extends ServiceImpl<KxsUserTradeMapper, KxsUserTrade> {
+
+    public void changeData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserTrade userTrade = new KxsUserTrade();
+
+        String tradeMonth;
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            userTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("VipFlag").getValue() != null) {
+            userTrade.setVipFlag(Integer.valueOf(fieldDataMap.get("VipFlag").getValue().toString()));
+        }
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userTrade.setTotalType(0);
+                userTrade.setHelpDirectTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectTradeAmt").getValue().toString()));
+                userTrade.setHelpDebitTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProDirectTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectTradeAmt").getValue().toString()));
+                userTrade.setProDebitTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDirectTradeAmt").getValue().toString()));
+                userTrade.setProADebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDirectDebitCapTradeAmt").getValue().toString()));
+            } else {
+                userTrade.setTotalType(1);
+                userTrade.setHelpDirectTradeAmt(new BigDecimal(fieldDataMap.get("HelpNonDirectTradeAmt").getValue().toString()));
+                userTrade.setHelpDebitTradeAmt(new BigDecimal(fieldDataMap.get("HelpNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProDirectTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpNonDirectTradeAmt").getValue().toString()));
+                userTrade.setProDebitTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectTradeAmt").getValue().toString()));
+                userTrade.setProADebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+                userTrade.setProADebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitNonDirectDebitTradeAmt").getValue().toString()));
+            }
+        }
+        if (fieldDataMap.get("QueryCount").getValue() != null) {
+            userTrade.setTradeType(Integer.valueOf(fieldDataMap.get("QueryCount").getValue().toString()));
+        }
+        if (fieldDataMap.get("HelpDirectDebitCapTradeAmt").getValue() != null) {
+            userTrade.setHelpDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("HelpDirectDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("NotHelpDirectDebitCapTradeAmt").getValue() != null) {
+            userTrade.setProDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("HelpDirectDebitCapNum").getValue() != null) {
+            userTrade.setHelpDebitCapNum(new BigDecimal(fieldDataMap.get("HelpDirectDebitCapNum").getValue().toString()).intValue());
+        }
+        if (fieldDataMap.get("NotHelpDirectDebitCapNum").getValue() != null) {
+            userTrade.setProDebitCapNum(new BigDecimal(fieldDataMap.get("NotHelpDirectDebitCapNum").getValue().toString()).intValue());
+        }
+        if (fieldDataMap.get("ProfitDirectDebitCapNum").getValue() != null) {
+            userTrade.setProADebitCapNum(new BigDecimal(fieldDataMap.get("ProfitDirectDebitCapNum").getValue().toString()).intValue());
+        }
+
+        KxsUserTrade kxsUserTrade = baseMapper.selectOne(Wrappers.<KxsUserTrade>lambdaQuery()
+                .eq(KxsUserTrade::getUserId, userTrade.getUserId())
+                .eq(KxsUserTrade::getBrandId, userTrade.getBrandId())
+                .eq(KxsUserTrade::getTradeType, userTrade.getTradeType())
+                .eq(KxsUserTrade::getTotalType, userTrade.getTotalType())
+                .eq(KxsUserTrade::getTradeMonth, userTrade.getTradeMonth())
+                .eq(KxsUserTrade::getTradeDate, userTrade.getTradeDate())
+                .eq(KxsUserTrade::getVipFlag, userTrade.getVipFlag()));
+        if (kxsUserTrade == null) {
+            // 插入数据
+            baseMapper.insert(userTrade);
+        } else {
+            userTrade.setId(kxsUserTrade.getId());
+            baseMapper.updateById(userTrade);
+        }
+
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+
+    }
+
+    public void change2Data(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserTrade userTrade = new KxsUserTrade();
+
+        String tradeMonth;
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("TradeMonth") != null && fieldDataMap.get("TradeMonth").getValue() != null) {
+            tradeMonth = fieldDataMap.get("TradeMonth").getValue().toString();
+        } else {
+            tradeMonth = MonthTableNameHandler.getThisMoth();
+        }
+        //每个请求线程维护一个month数据,避免多线程数据冲突
+        MonthTableNameHandler.setData(tradeMonth);
+
+        if (fieldDataMap.get("SeoTitle").getValue() != null) {
+            String seoTitle = fieldDataMap.get("SeoTitle").getValue().toString();
+            if ("self".equals(seoTitle)) {
+                userTrade.setTotalType(0);
+            }else{
+                userTrade.setTotalType(1);
+            }
+        }
+        if (fieldDataMap.get("QueryCount").getValue() != null) {
+            userTrade.setTradeType(Integer.valueOf(fieldDataMap.get("QueryCount").getValue().toString()));
+        }
+        if (fieldDataMap.get("UserId").getValue() != null) {
+            userTrade.setUserId(Integer.valueOf(fieldDataMap.get("UserId").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeDate").getValue() != null) {
+            userTrade.setTradeDate(Integer.valueOf(fieldDataMap.get("TradeDate").getValue().toString()));
+        }
+        if (fieldDataMap.get("TradeMonth").getValue() != null) {
+            userTrade.setTradeMonth(Integer.valueOf(fieldDataMap.get("TradeMonth").getValue().toString()));
+        }
+        if (fieldDataMap.get("BrandId").getValue() != null) {
+            userTrade.setBrandId(Integer.valueOf(fieldDataMap.get("BrandId").getValue().toString()));
+        }
+        if (fieldDataMap.get("VipFlag").getValue() != null) {
+            userTrade.setVipFlag(Integer.valueOf(fieldDataMap.get("VipFlag").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitTradeAmt").getValue() != null) {
+            userTrade.setProBDirectTradeAmt(new BigDecimal(fieldDataMap.get("ProfitTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitTradeAmt").getValue() != null) {
+            userTrade.setProBDebitTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDebitTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitCapTradeAmt").getValue() != null) {
+            userTrade.setProBDebitCapTradeAmt(new BigDecimal(fieldDataMap.get("ProfitDebitCapTradeAmt").getValue().toString()));
+        }
+        if (fieldDataMap.get("ProfitDebitCapNum").getValue() != null) {
+            userTrade.setProBDebitCapNum(new BigDecimal(fieldDataMap.get("ProfitDebitCapNum").getValue().toString()).intValue());
+        }
+
+        KxsUserTrade kxsUserTrade = baseMapper.selectOne(Wrappers.<KxsUserTrade>lambdaQuery()
+                .eq(KxsUserTrade::getUserId, userTrade.getUserId())
+                .eq(KxsUserTrade::getBrandId, userTrade.getBrandId())
+                .eq(KxsUserTrade::getTradeType, userTrade.getTradeType())
+                .eq(KxsUserTrade::getTotalType, userTrade.getTotalType())
+                .eq(KxsUserTrade::getTradeMonth, userTrade.getTradeMonth())
+                .eq(KxsUserTrade::getTradeDate, userTrade.getTradeDate())
+                .eq(KxsUserTrade::getVipFlag, userTrade.getVipFlag()));
+        if (kxsUserTrade == null) {
+            // 插入数据
+            baseMapper.insert(userTrade);
+        } else {
+            userTrade.setId(kxsUserTrade.getId());
+            baseMapper.updateById(userTrade);
+        }
+
+        //删除线程,避免线程污染
+        MonthTableNameHandler.removeData();
+    }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+ 7 - 0
pom.xml

@@ -83,6 +83,7 @@
         <module>kxs-product</module>
         <module>kxs-visual</module>
         <module>kxs-transfer</module>
+        <module>kxs-stat</module>
     </modules>
 
     <dependencyManagement>
@@ -287,6 +288,12 @@
                 <artifactId>kxs-product-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <!-- 统计模块 -->
+            <dependency>
+                <groupId>com.kxs</groupId>
+                <artifactId>kxs-stat-api</artifactId>
+                <version>${project.version}</version>
+            </dependency>
 
         </dependencies>
     </dependencyManagement>