changhaoning 1 rok temu
rodzic
commit
53ed2dfd08

+ 41 - 0
src/main/java/com/dk/mdm/controller/mst/CpTradeController.java

@@ -0,0 +1,41 @@
+package com.dk.mdm.controller.mst;
+
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.model.pojo.mst.CpTrade;
+import com.dk.common.service.BaseService;
+import com.dk.mdm.model.query.mst.CpTradeQuery;
+import com.dk.mdm.model.response.mst.CpTradeResponse;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.Api;
+import com.dk.mdm.service.mst.CpTradeService;
+
+@Api(tags = "交易记录API接口")
+@RestController
+@RequestMapping("/mst/cpTrade")
+public class CpTradeController{
+
+    public BaseService<CpTrade> getService() {
+        return cpTradeService;
+    }
+
+    @Autowired
+    private CpTradeService cpTradeService;
+
+    /**
+     * @desc   : 条件查询
+     * @author : 常皓宁
+     * @date   : 2024/4/12 10:19
+     */
+    @ApiOperation(value = "分页、关联、条件查询", notes = "分页、关联、条件查询")
+    @PostMapping({"list_by"})
+    public ResponseResultVO<PageList<CpTradeResponse>> selectByCond(@RequestBody CpTradeQuery cpTradeQuery) {
+        return cpTradeService.selectByCond(cpTradeQuery);
+    }
+
+}

+ 32 - 0
src/main/java/com/dk/mdm/mapper/mst/CpTradeMapper.java

@@ -0,0 +1,32 @@
+package com.dk.mdm.mapper.mst;
+
+import com.dk.mdm.model.pojo.mst.CpTrade;
+import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.mst.CpTradeQuery;
+import com.dk.mdm.model.response.mst.CpTradeResponse;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+*  交易记录 Mapper
+*/
+@Repository
+public interface CpTradeMapper extends BaseMapper<CpTrade>{
+
+    /**
+     * @desc   : 根据条件进行查询
+     * @author : 常皓宁
+     * @date : 2024/2/26 10:36
+     */
+    List<CpTradeResponse> selectByCond(CpTradeQuery cpTradeQuery);
+
+    /**
+     * @desc   : 根据条件进行查询(数量)
+     * @author : 常皓宁
+     * @date : 2024/2/26 10:36
+     */
+    Long countByCond(CpTradeQuery cpTradeQuery);
+	
+}
+

+ 276 - 0
src/main/java/com/dk/mdm/mapper/mst/CpTradeMapper.xml

@@ -0,0 +1,276 @@
+<?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.dk.mdm.mapper.mst.CpTradeMapper">
+
+    <!-- 通用设置 -->
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        trade_id, trade_no, cp_id, wx_user_id, trade_amount, trade_time, trade_type, buy_long, buy_begin_date, buy_end_date, buy_fun_id, buy_grade_code, wx_trade_no, extend_days, dk_user_id, trade_status
+    </sql>
+
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List_list">
+        tct.trade_id,
+        tct.trade_no,
+        tct.cp_id,
+        tct.wx_user_id,
+        tct.trade_amount,
+        tct.trade_time,
+        tct.trade_type,
+        tct.buy_long,
+        tct.buy_begin_date,
+        tct.buy_end_date,
+        tct.buy_fun_id,
+        tct.wx_trade_no,
+        tct.extend_days,
+        tct.dk_user_id,
+        tct.trade_status
+    </sql>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.mst.CpTrade">
+        <id column="trade_id" property="tradeId"/>
+                <result column="trade_no" property="tradeNo"/>
+                <result column="cp_id" property="cpId"/>
+                <result column="wx_user_id" property="wxUserId" typeHandler="UuidTypeHandler"/>
+                <result column="trade_amount" property="tradeAmount"/>
+            <result column="trade_time" property="tradeTime" typeHandler="TimestampTypeHandler"/>
+                <result column="trade_type" property="tradeType"/>
+                <result column="buy_long" property="buyLong"/>
+            <result column="buy_begin_date" property="buyBeginDate" typeHandler="TimestampTypeHandler"/>
+            <result column="buy_end_date" property="buyEndDate" typeHandler="TimestampTypeHandler"/>
+                <result column="buy_fun_id" property="buyFunId" typeHandler="UuidListTypeHandler"/>
+                <result column="buy_grade_code" property="buyGradeCode"/>
+                <result column="wx_trade_no" property="wxTradeNo"/>
+                <result column="extend_days" property="extendDays"/>
+                <result column="dk_user_id" property="dkUserId" typeHandler="UuidTypeHandler"/>
+                <result column="trade_status" property="tradeStatus"/>
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap_list" type="com.dk.mdm.model.response.mst.CpTradeResponse">
+        <id column="trade_id" property="tradeId"/>
+        <result column="trade_no" property="tradeNo"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="wx_user_id" property="wxUserId" typeHandler="UuidTypeHandler"/>
+        <result column="trade_amount" property="tradeAmount"/>
+        <result column="trade_time" property="tradeTime" typeHandler="TimestampTypeHandler"/>
+        <result column="trade_type" property="tradeType"/>
+        <result column="buy_long" property="buyLong"/>
+        <result column="buy_begin_date" property="buyBeginDate" typeHandler="TimestampTypeHandler"/>
+        <result column="buy_end_date" property="buyEndDate" typeHandler="TimestampTypeHandler"/>
+        <result column="buy_fun_id" property="buyFunId" typeHandler="UuidTypeHandler"/>
+        <result column="buy_grade_code" property="buyGradeCode"/>
+        <result column="wx_trade_no" property="wxTradeNo"/>
+        <result column="extend_days" property="extendDays"/>
+        <result column="dk_user_id" property="dkUserId" typeHandler="UuidTypeHandler"/>
+        <result column="trade_status" property="tradeStatus"/>
+        <result column="cp_name" property="cpName"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="tradeNo != null and tradeNo != ''">
+                AND trade_no = #{tradeNo}
+            </if>
+            <if test="cpId != null">
+                AND cp_id = #{cpId}
+            </if>
+            <if test="wxUserId != null and wxUserId != ''">
+                AND wx_user_id = #{wxUserId}
+            </if>
+            <if test="tradeAmount != null">
+                AND trade_amount = #{tradeAmount}
+            </if>
+            <if test="tradeTime != null">
+                AND trade_time = #{tradeTime}
+            </if>
+            <if test="tradeType != null and tradeType != ''">
+                AND trade_type = #{tradeType}
+            </if>
+            <if test="buyLong != null and buyLong != ''">
+                AND buy_long = #{buyLong}
+            </if>
+            <if test="buyBeginDate != null">
+                AND buy_begin_date = #{buyBeginDate}
+            </if>
+            <if test="buyEndDate != null">
+                AND buy_end_date = #{buyEndDate}
+            </if>
+            <if test="buyFunId != null and buyFunId != ''">
+                AND buy_fun_id = #{buyFunId}
+            </if>
+            <if test="buyGradeCode != null and buyGradeCode != ''">
+                AND buy_grade_code = #{buyGradeCode}
+            </if>
+            <if test="wxTradeNo != null and wxTradeNo != ''">
+                AND wx_trade_no = #{wxTradeNo}
+            </if>
+            <if test="extendDays != null">
+                AND extend_days = #{extendDays}
+            </if>
+            <if test="dkUserId != null and dkUserId != ''">
+                AND dk_user_id = #{dkUserId}
+            </if>
+            <if test="tradeStatus != null and tradeStatus != ''">
+                AND trade_status = #{tradeStatus}
+            </if>
+        </where>
+    </sql>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition_list">
+        <where>
+            <if test="tradeNo != null and tradeNo != ''">
+                AND tct.trade_no LIKE concat('%',my_ex.likequery(#{tradeNo}),'%')
+            </if>
+            <if test="cpId != null">
+                AND tct.cp_id = #{cpId}
+            </if>
+            <if test="wxUserId != null and wxUserId != ''">
+                AND tct.wx_user_id = #{wxUserId}
+            </if>
+            <if test="tradeAmount != null">
+                AND tct.trade_amount = #{tradeAmount}
+            </if>
+            <if test="tradeTime != null">
+                AND tct.trade_time = #{tradeTime}
+            </if>
+            <if test="tradeType != null and tradeType != ''">
+                AND tct.trade_type = #{tradeType}
+            </if>
+            <if test="buyLong != null and buyLong != ''">
+                AND tct.buy_long = #{buyLong}
+            </if>
+            <if test="buyBeginDate != null">
+                AND tct.buy_begin_date = #{buyBeginDate}
+            </if>
+            <if test="buyEndDate != null">
+                AND tct.buy_end_date = #{buyEndDate}
+            </if>
+            <if test="buyFunId != null and buyFunId != ''">
+                AND tct.buy_fun_id = #{buyFunId}
+            </if>
+            <if test="buyGradeCode != null and buyGradeCode != ''">
+                AND tct.buy_grade_code = #{buyGradeCode}
+            </if>
+            <if test="wxTradeNo != null and wxTradeNo != ''">
+                AND tct.wx_trade_no = #{wxTradeNo}
+            </if>
+            <if test="extendDays != null">
+                AND tct.extend_days = #{extendDays}
+            </if>
+            <if test="dkUserId != null and dkUserId != ''">
+                AND tct.dk_user_id = #{dkUserId}
+            </if>
+            <if test="tradeStatus != null and tradeStatus != ''">
+                AND tct.trade_status = #{tradeStatus}
+            </if>
+            <if test="cpIds != null and cpIds.size()>0">
+                AND tct.cp_id = any(#{cpIds, typeHandler=IntListTypeHandler})
+            </if>
+        </where>
+    </sql>
+
+    <sql id="idsForeach">
+        <!-- 根据主键tradeId批量操作 -->
+        WHERE trade_id in
+        <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
+            #{item}
+        </foreach>
+    </sql>
+
+    <!-- 查询表dkic_a.t_cp_trade,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap_list">
+        SELECT
+        <include refid="Base_Column_List_list"/>
+        ,case when tct.buy_grade_code = 'STD'
+                then '标准版' else '专业版'
+                end as buy_grade_code
+        ,cp.cp_name
+        , sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "tradeTypeName"
+        , sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "tradeStatusName"
+        FROM dkic_a.t_cp_trade tct
+        left JOIN dkic_a.t_a_company cp
+        on tct.cp_id = cp.cp_id
+        left JOIN sys.t_data_kind as tdk1 on tct.trade_type = tdk1.kind_code
+        left JOIN sys.t_data_kind as tdk2 on tct.trade_status = tdk2.kind_code
+        <include refid="Condition_list"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表dkic_a.t_cp_trade,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM dkic_a.t_cp_trade tct
+        <include refid="Condition_list"/>
+    </select>
+
+
+    <!-- 根据主键锁定表dkic_a.t_cp_trade的一行数据 -->
+    <select id="selectByIdForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_a.t_cp_trade
+        WHERE trade_id = #{tradeId}
+        for update
+    </select>
+
+    <!-- 根据主键锁定表dkic_a.t_cp_trade的多行数据 -->
+    <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM dkic_a.t_cp_trade
+        <include refid="idsForeach"/>
+        for update
+    </select>
+
+    <insert id="insertBatch">
+        insert into dkic_a.t_cp_trade
+        (
+        <trim suffixOverrides=",">
+            trade_no,
+            cp_id,
+            wx_user_id,
+            trade_amount,
+            trade_time,
+            trade_type,
+            buy_long,
+            buy_begin_date,
+            buy_end_date,
+            buy_fun_id,
+            buy_grade_code,
+            wx_trade_no,
+            extend_days,
+            dk_user_id,
+            trade_status,
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.tradeNo},
+                #{item.cpId},
+                #{item.wxUserId}::uuid,
+                #{item.tradeAmount},
+                #{item.tradeTime},
+                #{item.tradeType},
+                #{item.buyLong},
+                #{item.buyBeginDate},
+                #{item.buyEndDate},
+                #{item.buyFunId},
+                #{item.buyGradeCode},
+                #{item.wxTradeNo},
+                #{item.extendDays},
+                #{item.dkUserId}::uuid,
+                #{item.tradeStatus},
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>

+ 192 - 0
src/main/java/com/dk/mdm/model/pojo/mst/CpTrade.java

@@ -0,0 +1,192 @@
+package com.dk.mdm.model.pojo.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.alibaba.fastjson.JSONObject;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.time.LocalDateTime;
+
+/**
+ *  交易记录
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("交易记录")
+@TableName(value = "t_cp_trade", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:交易记录", description="表名:t_cp_trade")
+public class CpTrade extends PageInfo<CpTrade> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 交易ID
+     */
+    @TableId(value = "trade_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "交易ID")
+    private Long tradeId;
+
+
+    /**
+     * 交易单号
+     */
+    @Excel(name = "交易单号")
+    @ApiModelProperty(value = "交易单号")
+    private String tradeNo;
+
+
+    /**
+     * 缴费企业
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Excel(name = "缴费企业")
+    @ApiModelProperty(value = "缴费企业")
+    private Integer cpId;
+
+
+    /**
+     * 微信用户 (null:代缴费)
+     */
+    @Excel(name = "微信用户 (null:代缴费)")
+    @ApiModelProperty(value = "微信用户 (null:代缴费)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String wxUserId;
+
+
+    /**
+     * 交易金额
+     */
+    @Excel(name = "交易金额")
+    @ApiModelProperty(value = "交易金额")
+    private BigDecimal tradeAmount;
+
+
+    /**
+     * 交易时间
+     */
+    @Excel(name = "交易时间")
+    @ApiModelProperty(value = "交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime tradeTime;
+
+
+    /**
+     * 交易类型 (版本升级、功能单买、。。。)
+     */
+    @Excel(name = "交易类型 (版本升级、功能单买、。。。)")
+    @ApiModelProperty(value = "交易类型 (版本升级、功能单买、。。。)")
+    private String tradeType;
+
+
+    /**
+     * 购买时长 (1天、1月、1年。。)
+     */
+    @Excel(name = "购买时长 (1天、1月、1年。。)")
+    @ApiModelProperty(value = "购买时长 (1天、1月、1年。。)")
+    private String buyLong;
+
+
+    /**
+     * 开始日期
+     */
+    @Excel(name = "开始日期")
+    @ApiModelProperty(value = "开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime buyBeginDate;
+
+
+    /**
+     * 结束日期
+     */
+    @Excel(name = "结束日期")
+    @ApiModelProperty(value = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime buyEndDate;
+
+
+    /**
+     * 购买功能
+     */
+    @Excel(name = "购买功能")
+    @ApiModelProperty(value = "购买功能")
+    @TableField(typeHandler = UuidListTypeHandler.class)
+    private String buyFunId;
+
+
+    /**
+     * 购买版本
+     */
+    @Excel(name = "购买版本")
+    @ApiModelProperty(value = "购买版本")
+    private String buyGradeCode;
+
+
+    /**
+     * 微信交易单号
+     */
+    @Excel(name = "微信交易单号")
+    @ApiModelProperty(value = "微信交易单号")
+    private String wxTradeNo;
+
+
+    /**
+     * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
+     */
+    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
+    @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
+    private Integer extendDays;
+
+
+    /**
+     * 东科用户 (null:自缴费)
+     */
+    @Excel(name = "东科用户 (null:自缴费)")
+    @ApiModelProperty(value = "东科用户 (null:自缴费)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String dkUserId;
+
+
+    /**
+     * 交易状态(【系统字典】未生效、生效)
+     */
+    @Excel(name = "交易状态(【系统字典】未生效、生效)")
+    @ApiModelProperty(value = "交易状态(【系统字典】未生效、生效)")
+    private String tradeStatus;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 4 - 3
src/main/java/com/dk/mdm/model/pojo/mst/MoneyAccount.java

@@ -18,6 +18,7 @@ import io.swagger.annotations.ApiModelProperty;
 import com.alibaba.fastjson.JSONObject;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.List;
 import java.time.LocalDateTime;
 
@@ -41,7 +42,7 @@ public class MoneyAccount extends PageInfo<MoneyAccount> implements Serializable
     /**
      * 资金账户ID
      */
-    @TableId(value = "mac_id", type = IdType.AUTO)
+    //@TableId(value = "mac_id", type = IdType.AUTO)
     @ApiModelProperty(value = "资金账户ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String macId;
@@ -110,9 +111,9 @@ public class MoneyAccount extends PageInfo<MoneyAccount> implements Serializable
      */
     @Excel(name = "开户日期")
     @ApiModelProperty(value = "开户日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime accDate;
+    private LocalDate accDate;
 
 
     /**

+ 193 - 0
src/main/java/com/dk/mdm/model/query/mst/CpTradeQuery.java

@@ -0,0 +1,193 @@
+package com.dk.mdm.model.query.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ *  交易记录
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("交易记录")
+@TableName(value = "t_cp_trade", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:交易记录", description="表名:t_cp_trade")
+public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 交易ID
+     */
+    @TableId(value = "trade_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "交易ID")
+    private Long tradeId;
+
+
+    /**
+     * 交易单号
+     */
+    @Excel(name = "交易单号")
+    @ApiModelProperty(value = "交易单号")
+    private String tradeNo;
+
+
+    /**
+     * 缴费企业
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Excel(name = "缴费企业")
+    @ApiModelProperty(value = "缴费企业")
+    private Integer cpId;
+
+
+    /**
+     * 微信用户 (null:代缴费)
+     */
+    @Excel(name = "微信用户 (null:代缴费)")
+    @ApiModelProperty(value = "微信用户 (null:代缴费)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String wxUserId;
+
+
+    /**
+     * 交易金额
+     */
+    @Excel(name = "交易金额")
+    @ApiModelProperty(value = "交易金额")
+    private BigDecimal tradeAmount;
+
+
+    /**
+     * 交易时间
+     */
+    @Excel(name = "交易时间")
+    @ApiModelProperty(value = "交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime tradeTime;
+
+
+    /**
+     * 交易类型 (版本升级、功能单买、。。。)
+     */
+    @Excel(name = "交易类型 (版本升级、功能单买、。。。)")
+    @ApiModelProperty(value = "交易类型 (版本升级、功能单买、。。。)")
+    private String tradeType;
+
+
+    /**
+     * 购买时长 (1天、1月、1年。。)
+     */
+    @Excel(name = "购买时长 (1天、1月、1年。。)")
+    @ApiModelProperty(value = "购买时长 (1天、1月、1年。。)")
+    private String buyLong;
+
+
+    /**
+     * 开始日期
+     */
+    @Excel(name = "开始日期")
+    @ApiModelProperty(value = "开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime buyBeginDate;
+
+
+    /**
+     * 结束日期
+     */
+    @Excel(name = "结束日期")
+    @ApiModelProperty(value = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime buyEndDate;
+
+
+    /**
+     * 购买功能
+     */
+    @Excel(name = "购买功能")
+    @ApiModelProperty(value = "购买功能")
+    @TableField(typeHandler = UuidListTypeHandler.class)
+    private String buyFunId;
+
+
+    /**
+     * 购买版本
+     */
+    @Excel(name = "购买版本")
+    @ApiModelProperty(value = "购买版本")
+    private String buyGradeCode;
+
+
+    /**
+     * 微信交易单号
+     */
+    @Excel(name = "微信交易单号")
+    @ApiModelProperty(value = "微信交易单号")
+    private String wxTradeNo;
+
+
+    /**
+     * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
+     */
+    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
+    @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
+    private Integer extendDays;
+
+
+    /**
+     * 东科用户 (null:自缴费)
+     */
+    @Excel(name = "东科用户 (null:自缴费)")
+    @ApiModelProperty(value = "东科用户 (null:自缴费)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String dkUserId;
+
+
+    /**
+     * 交易状态(【系统字典】未生效、生效)
+     */
+    @Excel(name = "交易状态(【系统字典】未生效、生效)")
+    @ApiModelProperty(value = "交易状态(【系统字典】未生效、生效)")
+    private String tradeStatus;
+
+    private List<Integer> cpIds;
+
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 197 - 0
src/main/java/com/dk/mdm/model/response/mst/CpTradeResponse.java

@@ -0,0 +1,197 @@
+package com.dk.mdm.model.response.mst;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import java.io.Serializable;
+
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.*;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.AllArgsConstructor;
+import lombok.NoArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ *  交易记录
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("交易记录")
+@TableName(value = "t_cp_trade", autoResultMap = true,schema = "dkic_a")
+@ApiModel(value="实体类:交易记录", description="表名:t_cp_trade")
+public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serializable {
+
+    /*
+     * 数据库字段
+     */
+
+    /**
+     * 交易ID
+     */
+    @TableId(value = "trade_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "交易ID")
+    private Long tradeId;
+
+
+    /**
+     * 交易单号
+     */
+    @Excel(name = "交易单号")
+    @ApiModelProperty(value = "交易单号")
+    private String tradeNo;
+
+
+    /**
+     * 缴费企业
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Excel(name = "缴费企业")
+    @ApiModelProperty(value = "缴费企业")
+    private Integer cpId;
+
+
+    /**
+     * 微信用户 (null:代缴费)
+     */
+    @Excel(name = "微信用户 (null:代缴费)")
+    @ApiModelProperty(value = "微信用户 (null:代缴费)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String wxUserId;
+
+
+    /**
+     * 交易金额
+     */
+    @Excel(name = "交易金额")
+    @ApiModelProperty(value = "交易金额")
+    private BigDecimal tradeAmount;
+
+
+    /**
+     * 交易时间
+     */
+    @Excel(name = "交易时间")
+    @ApiModelProperty(value = "交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime tradeTime;
+
+
+    /**
+     * 交易类型 (版本升级、功能单买、。。。)
+     */
+    @Excel(name = "交易类型 (版本升级、功能单买、。。。)")
+    @ApiModelProperty(value = "交易类型 (版本升级、功能单买、。。。)")
+    private String tradeType;
+
+
+    /**
+     * 购买时长 (1天、1月、1年。。)
+     */
+    @Excel(name = "购买时长 (1天、1月、1年。。)")
+    @ApiModelProperty(value = "购买时长 (1天、1月、1年。。)")
+    private String buyLong;
+
+
+    /**
+     * 开始日期
+     */
+    @Excel(name = "开始日期")
+    @ApiModelProperty(value = "开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate buyBeginDate;
+
+
+    /**
+     * 结束日期
+     */
+    @Excel(name = "结束日期")
+    @ApiModelProperty(value = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDate buyEndDate;
+
+
+    /**
+     * 购买功能
+     */
+    @Excel(name = "购买功能")
+    @ApiModelProperty(value = "购买功能")
+    @TableField(typeHandler = UuidListTypeHandler.class)
+    private String buyFunId;
+
+
+    /**
+     * 购买版本
+     */
+    @Excel(name = "购买版本")
+    @ApiModelProperty(value = "购买版本")
+    private String buyGradeCode;
+
+
+    /**
+     * 微信交易单号
+     */
+    @Excel(name = "微信交易单号")
+    @ApiModelProperty(value = "微信交易单号")
+    private String wxTradeNo;
+
+
+    /**
+     * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
+     */
+    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
+    @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
+    private Integer extendDays;
+
+
+    /**
+     * 东科用户 (null:自缴费)
+     */
+    @Excel(name = "东科用户 (null:自缴费)")
+    @ApiModelProperty(value = "东科用户 (null:自缴费)")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String dkUserId;
+
+
+    /**
+     * 交易状态(【系统字典】未生效、生效)
+     */
+    @Excel(name = "交易状态(【系统字典】未生效、生效)")
+    @ApiModelProperty(value = "交易状态(【系统字典】未生效、生效)")
+    private String tradeStatus;
+
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String cpName;
+
+    private String tradeTypeName;
+
+    private String tradeStatusName;
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+
+}

+ 39 - 0
src/main/java/com/dk/mdm/service/mst/CpTradeService.java

@@ -0,0 +1,39 @@
+package com.dk.mdm.service.mst;
+
+import com.dk.common.infrastructure.annotaiton.Pagination;
+import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.mdm.model.pojo.mst.CpTrade;
+import com.dk.mdm.mapper.mst.CpTradeMapper;
+import com.dk.common.service.BaseService;
+import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.mst.CpTradeQuery;
+import com.dk.mdm.model.response.mst.CpTradeResponse;
+import org.springframework.stereotype.Service;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+@Transactional
+public class CpTradeService extends BaseService<CpTrade> {
+
+	@Override
+	public BaseMapper<CpTrade> getRepository() {
+		return cpTradeMapper;
+	}
+
+	@Autowired
+	private CpTradeMapper cpTradeMapper;
+
+	/**
+	 * @desc : 查询
+	 * @author : 常皓宁
+	 * @date : 2023/1/5 9:39
+	 */
+	@Pagination
+	public ResponseResultVO<PageList<CpTradeResponse>> selectByCond(CpTradeQuery cpTradeQuery) {
+		return super.mergeListWithCount(cpTradeQuery, cpTradeMapper.selectByCond(cpTradeQuery),
+				cpTradeMapper.countByCond(cpTradeQuery));
+	}
+
+}

+ 27 - 2
src/main/java/com/dk/mdm/service/sys/DictionaryItemService.java

@@ -9,18 +9,21 @@ import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
 import com.dk.mdm.infrastructure.convert.mst.DictionaryDataConvert;
 import com.dk.mdm.mapper.sys.DictionaryItemMapper;
+import com.dk.mdm.model.pojo.mst.MoneyAccount;
 import com.dk.mdm.model.pojo.sys.DictionaryData;
-import com.dk.mdm.mapper.sys.DictionaryItemMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
 import com.dk.mdm.model.query.sys.DictionaryDataQuery;
 import com.dk.mdm.model.response.sys.DictionaryDataResponse;
 import com.dk.mdm.model.vo.mst.DictionaryDataVO;
 import com.dk.mdm.service.common.CommonService;
+import com.dk.mdm.service.mst.MoneyAccountService;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -42,6 +45,9 @@ public class DictionaryItemService extends BaseService<DictionaryData> {
     @Autowired
     private DictionaryDataConvert dictionaryDataConvert;
 
+    @Autowired
+    private MoneyAccountService moneyAccountService;
+
     /**
      * @desc : 重写主键
      * @author : 常皓宁
@@ -88,9 +94,28 @@ public class DictionaryItemService extends BaseService<DictionaryData> {
         Map<String, Object> uniqueNoteCode = commonService.getUniqueNoteCode(dictionaryDataVO.getDictCode(), true);
         dictionaryData.setDataId(uniqueNoteCode.get("outId").toString());
         dictionaryData.setDataCode(uniqueNoteCode.get("outNote").toString());
+        // 标准版账户类别新建要在资金账户表里插入一条一样的,编辑时两个表一起更新;专业版逻辑不变
+        if (dictionaryDataVO.getDictCode().equals("基础资料-账户")) {
+            // 获取编码和主键UuId
+            Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.MONEYACCOUNT.getName(),true);
+            // 获取显示顺序
+            Integer displayNo = commonService.getMaxDisplayNo(Constant.DisplayNoTable.MONEYACCOUNT);
+            //新建资金账户
+            moneyAccountService.insert(new MoneyAccount()
+                    .setMacId(codeMap.get("outId").toString())
+                    .setMacCode(codeMap.get("outNote").toString())
+                    .setMacName(dictionaryDataVO.getDataValue())
+                    .setMacType(dictionaryData.getDataId())
+                    .setBalance(new BigDecimal(0))
+                    .setDisplayNo(displayNo)
+                    .setAccDate(LocalDate.now())
+                    .setFlgNegative(true)
+                    .setCpId(0)
+            );
+        }
         //新建
         dictionaryItemMapper.insert(dictionaryData);
-        return ResponseResultUtil.success();
+        return ResponseResultUtil.success(dictionaryData);
     }