姜永辉 2 gadi atpakaļ
vecāks
revīzija
35b4081a05

+ 42 - 0
src/main/java/com/dk/oauth/controller/TradeController.java

@@ -0,0 +1,42 @@
+package com.dk.oauth.controller;
+
+import com.dk.common.response.ResponseResultVO;
+import com.dk.oauth.entity.Trade;
+import com.dk.oauth.service.ITradeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = "交易记录接口")
+@RestController
+@RequestMapping("/trade")
+public class TradeController {
+    /**
+     * 服务对象
+     */
+    @Autowired
+    private ITradeService tradeService;
+
+    /**
+     * @desc : 通过ID查询
+     * @author : admin
+     * @date : 2023/2/3 13:32
+     */
+    @PostMapping({"{id}"})
+    public ResponseResultVO<?> selectById(@PathVariable Integer id) {
+        return tradeService.selectById(id);
+    }
+
+
+    /**
+     * @desc : 插入记录
+     * @author : admin
+     * @date : 2024/2/1 14:55
+     */
+    @ApiOperation(value = "注册商户", notes = "注册商户")
+    @PostMapping(value = "/insert_trade")
+    public ResponseResultVO<?> insertTrade(@RequestBody Trade trade) {
+        return tradeService.insertTrade(trade);
+    }
+}

+ 166 - 0
src/main/java/com/dk/oauth/entity/Trade.java

@@ -0,0 +1,166 @@
+package com.dk.oauth.entity;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidListTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 交易记录
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@ExportTitle("企业")
+@TableName(value = "t_cp_trade", schema = "dkic_a", autoResultMap = true)
+@ApiModel(value = "实体类:交易记录", description = "表名:t_cp_trade")
+public class Trade  extends PageInfo<Trade> implements Serializable {
+    /**
+     * 交易ID
+     */
+    @TableId(value = "trade_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "交易ID")
+    private Integer tradeId;
+
+    /**
+     * 企业ID
+     */
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 交易单号
+     */
+    @Excel(name = "交易单号")
+    @ApiModelProperty(value = "交易单号")
+    private String tradeCode;
+
+    /**
+     * 员工工种
+     */
+    @Excel(name = "微信用户")
+    @ApiModelProperty(value = "微信用户")
+    @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, updateStrategy = FieldStrategy.IGNORED)
+    private LocalDate buyBeginDate;
+
+    /**
+     * 结束日期
+     */
+    @Excel(name = "结束日期")
+    @ApiModelProperty(value = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class, updateStrategy = FieldStrategy.IGNORED)
+    private LocalDate buyEndDate;
+
+    /**
+     * @desc   : 购买功能
+     */
+    @ApiModelProperty(value = "购买功能")
+    @Excel(name = "购买功能")
+    @TableField(typeHandler = UuidListTypeHandler.class)
+    private List<String> buyFunId;
+
+    /**
+     * 购买版本
+     */
+    @Excel(name = "购买版本")
+    @ApiModelProperty(value = "购买版本")
+    private String buyGradeCode;
+
+    /**
+     * 微信交易单号
+     */
+    @Excel(name = "微信交易单号")
+    @ApiModelProperty(value = "微信交易单号")
+    private String wxGradeCoNo;
+
+
+    /**
+     * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
+     */
+    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)'")
+    @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)'")
+    private Integer extendDays;
+
+    /**
+     * @desc   : 东科用户 (null:自缴费)
+     */
+    @ApiModelProperty(value = "东科用户")
+    @Excel(name = "东科用户")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String dkUserId;
+
+    /*
+     * 相关属性
+     * @TableField(exist = false)
+     */
+
+    /*
+     * 关联属性 + 查询条件
+     * @TableField(exist = false)
+     */
+
+
+    private static final long serialVersionUID = 1L;
+}

+ 132 - 0
src/main/java/com/dk/oauth/entity/TradeResponse.java

@@ -0,0 +1,132 @@
+package com.dk.oauth.entity;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.*;
+import com.dk.common.infrastructure.annotaiton.ExportTitle;
+import com.dk.common.infrastructure.handler.TimestampTypeHandler;
+import com.dk.common.infrastructure.handler.UuidListTypeHandler;
+import com.dk.common.infrastructure.handler.UuidTypeHandler;
+import com.dk.common.model.pojo.PageInfo;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 交易记录
+ */
+@Data
+public class TradeResponse   {
+    /**
+     * 交易ID
+     */
+    @ApiModelProperty(value = "交易ID")
+    private Integer tradeId;
+
+    /**
+     * 企业ID
+     */
+    @ApiModelProperty(value = "企业ID")
+    private Integer cpId;
+
+
+    /**
+     * 交易单号
+     */
+    @ApiModelProperty(value = "交易单号")
+    private String tradeCode;
+
+    /**
+     * 员工工种
+     */
+    @ApiModelProperty(value = "微信用户")
+    private String wxUserId;
+
+
+    /**
+     * 交易金额
+     */
+    @ApiModelProperty(value = "交易金额")
+    private BigDecimal tradeAmount;
+
+    /**
+     * 交易时间
+     */
+    @ApiModelProperty(value = "交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class)
+    private LocalDateTime tradeTime;
+
+    /**
+     * 交易类型 (版本升级、功能单买、。。。)
+     */
+    @ApiModelProperty(value = "交易类型")
+    private String tradeType;
+
+    /**
+     * 购买时长 (1天、1月、1年。。)
+     */
+    @ApiModelProperty(value = "购买时长 (1天、1月、1年。。)")
+    private String buyLong;
+
+
+    /**
+     * 开始日期
+     */
+    @ApiModelProperty(value = "开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class, updateStrategy = FieldStrategy.IGNORED)
+    private LocalDate buyBeginDate;
+
+    /**
+     * 结束日期
+     */
+    @ApiModelProperty(value = "结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @TableField(typeHandler = TimestampTypeHandler.class, updateStrategy = FieldStrategy.IGNORED)
+    private LocalDate buyEndDate;
+
+    /**
+     * @desc   : 购买功能
+     */
+    @ApiModelProperty(value = "购买功能")
+    @TableField(typeHandler = UuidListTypeHandler.class)
+    private List<String> buyFunId;
+
+    /**
+     * 购买版本
+     */
+    @ApiModelProperty(value = "购买版本")
+    private String buyGradeCode;
+
+    /**
+     * 微信交易单号
+     */
+    @ApiModelProperty(value = "微信交易单号")
+    private String wxGradeCoNo;
+
+
+    /**
+     * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
+     */
+    @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)'")
+    private Integer extendDays;
+
+    /**
+     * @desc   : 东科用户 (null:自缴费)
+     */
+    @ApiModelProperty(value = "东科用户")
+    @TableField(typeHandler = UuidTypeHandler.class)
+    private String dkUserId;
+
+}

+ 43 - 0
src/main/java/com/dk/oauth/mapper/TradeMapper.java

@@ -0,0 +1,43 @@
+package com.dk.oauth.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dk.oauth.entity.Trade;
+import com.dk.oauth.entity.TradeResponse;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author : 姜永辉
+ * @desc : CompanyMapper
+ * @date : 2024-2-18 15:39
+ */
+public interface TradeMapper extends BaseMapper<Trade> {
+    /**
+     * @desc : 通过ID查询
+     * @author : 洪旭东
+     * @date : 2024-02-18 15:21
+     */
+    TradeResponse getByCpId(@Param("cpId") Integer cpId);
+
+    int insertBatch(@Param("list") List<Trade> list);
+
+    List<Trade> selectByCond(Trade t);
+
+    Long countByCond(Trade t);
+
+    /**
+     * @desc : 通过ID查询
+     * @author : 洪旭东
+     * @date : 2024-02-18 15:21
+     */
+    Trade selectById(@Param("cpId") Integer cpId);
+
+    /**
+     * @desc : 获取商户的地址服务
+     * @author : 姜永辉
+     * @date : 2024-02-18 15:21
+     */
+    String selectServiceAllot(@Param("gradeCode") String gradeCode);
+
+}

+ 21 - 0
src/main/java/com/dk/oauth/service/ITradeService.java

@@ -0,0 +1,21 @@
+package com.dk.oauth.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.oauth.entity.Trade;
+
+import java.util.Map;
+
+/**
+ * 交易记录接口
+ *
+ * @author admin
+ * @since 2023-07-01 09:41:05
+ */
+public interface ITradeService extends IService<Trade> {
+
+    ResponseResultVO insertTrade(Trade company);
+
+    ResponseResultVO selectById(Integer id);
+
+}

+ 48 - 0
src/main/java/com/dk/oauth/service/impl/TradeServiceImpl.java

@@ -0,0 +1,48 @@
+package com.dk.oauth.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dk.common.response.ResponseResultUtil;
+import com.dk.common.response.ResponseResultVO;
+import com.dk.oauth.entity.Trade;
+import com.dk.oauth.mapper.TradeMapper;
+import com.dk.oauth.service.ITradeService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ * 交易记录接口实现类
+ *
+ * @author admin
+ * @since 2023-07-01 09:41:05
+ */
+@Service("tradeService")
+public class TradeServiceImpl extends ServiceImpl<TradeMapper, Trade> implements ITradeService {
+    @Resource
+    TradeMapper TradeMapper;
+
+    /**
+     * @desc : 通过ID查询
+     * @author : admin
+     * @date : 2023/2/3 13:32
+     */
+    @Override
+    public ResponseResultVO selectById(Integer id) {
+        return ResponseResultUtil.success(TradeMapper.selectById(id));
+    }
+
+
+
+    /**
+     * @desc : 注册-商户
+     * @author : 姜永辉
+     * @date : 2024-02-20 13:55
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ResponseResultVO insertTrade(Trade trade) {
+        TradeMapper.insert(trade);
+        return ResponseResultUtil.success(trade);
+    }
+}

+ 201 - 0
src/main/resources/mapper/TradeMapper.xml

@@ -0,0 +1,201 @@
+<?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.oauth.mapper.TradeMapper">
+
+    <!-- 通用查询列 -->
+    <sql id="Base_Column_List">
+        t
+        .
+        trade_id
+        ,t.trade_no
+        ,t.cp_id
+        ,t.wx_user_id
+        ,t.trade_amount
+        ,t.trade_time
+        ,t.trade_type
+        ,t.buy_long
+        ,t.buy_begin_date
+        ,t.buy_end_date
+        ,t.buy_fun_id
+        ,t.buy_grade_code
+        ,t.wx_trade_no
+        ,t.extend_days
+        ,t.dk_user_id
+    </sql>
+
+    <resultMap type="com.dk.oauth.entity.Trade" id="ResultMap">
+        <id column="trade_id" property="tradeId"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="trade_no" property="tradeCode"/>
+        <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="wxGradeCoNo"/>
+        <result column="extend_days" property="extendDays"/>
+        <result column="dk_user_id" property="dkUserId" typeHandler="UuidTypeHandler"/>
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.dk.oauth.entity.TradeResponse">
+        <id column="trade_id" property="tradeId"/>
+        <result column="cp_id" property="cpId"/>
+        <result column="trade_no" property="tradeCode"/>
+        <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="wxGradeCoNo"/>
+        <result column="extend_days" property="extendDays"/>
+        <result column="dk_user_id" property="dkUserId" typeHandler="UuidTypeHandler"/>
+    </resultMap>
+
+    <!-- 通用条件列 -->
+    <sql id="Condition">
+        <where>
+            <if test="tradeId != null and tradeId != ''">
+                AND t.trade_id = #{tradeId}
+            </if>
+            <if test="tradeCode != null and tradeCode != ''">
+                AND t.trade_no = #{tradeCode}
+            </if>
+            <if test="cpId != null and cpId != ''">
+                AND t.cp_id = #{cpId}
+            </if>
+            <if test="wxUserId != null and wxUserId != ''">
+                AND t.wx_user_id = #{wxUserId}::uuid
+            </if>
+            <if test="tradeType != null and tradeType != ''">
+                AND t.trade_type = #{tradeType}
+            </if>
+            <if test="dkUserId != null  and dkUserId != ''">
+                AND t.dk_user_id = #{dkUserId}::uuid
+            </if>
+
+        </where>
+    </sql>
+
+    <!-- 根据主键查询表t_mst_staff的一行数据 -->
+    <select id="selectById" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        ,g.grade_name gradeName
+        FROM dkic_a.t_cp_trade        t
+        left join sys.t_grade g on t.buy_grade_code = g.grade_code
+        WHERE t.trade_id = #{tradeId}
+    </select>
+
+    <insert id="insert">
+        insert into dkic_a.t_cp_trade
+        (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)
+        values (
+        #{tradeId},
+        #{tradeCode},
+        #{cpId},
+        #{wxUserId}::uuid,
+        #{tradeAmount},
+        #{tradeTime},
+        #{tradeType},
+        #{buyLong},
+        #{buyBeginDate},
+        #{buyEndDate},
+        #{buyFunId}::uuid[],
+        #{buyGradeCode},
+        #{wxGradeCoNo},
+        #{extendDays},
+        #{dkUserId}::uuid)
+
+    </insert>
+
+    <!-- 查询表t_cp_trade,(条件查询+分页)列表 -->
+    <select id="selectByCond" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        ,g.grade_name gradeName
+        FROM dkic_a.t_cp_trade t
+        left join sys.t_grade g on t.buy_grade_code = g.grade_code
+        <include refid="Condition"/>
+        <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
+            limit #{end} offset #{start}
+        </if>
+    </select>
+
+    <!-- 查询表t_cp_trade,(条件查询)个数 -->
+    <select id="countByCond" resultType="Long">
+        SELECT
+        count(1)
+        FROM dkic_a.t_cp_trade t
+        <include refid="Condition"/>
+    </select>
+
+
+    <insert id="insertBatch">
+        insert into dkic_a.t_cp_trade
+        (
+        <trim suffixOverrides=",">
+            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
+        </trim>
+        )
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+            <trim suffixOverrides=",">
+                #{item.tradeId},
+                #{item.tradeCode},
+                #{item.cpId},
+                #{item.wxUserId}::uuid,
+                #{item.tradeAmount},
+                #{item.tradeTime},
+                #{item.tradeType},
+                #{item.buyLong},
+                #{item.buyBeginDate},
+                #{item.buyEndDate},
+                #{item.buyFunId}::uuid[],
+                #{item.buyGradeCode},
+                #{item.wxGradeCoNo},
+                #{item.extendDays},
+                #{item.dkUserId}::uuid,
+            </trim>
+            )
+        </foreach>
+    </insert>
+</mapper>
+