From d16984b80d2b8bebc5038a6f70990f7443d8d4a0 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期六, 10 八月 2024 11:02:27 +0800
Subject: [PATCH] 2024-08-10 朱宝民 注册虚拟卡、虚拟卡充值添加操作记录(新加操作记录表)

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardCtrl.java       |   21 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java          |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java |    9 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java             |   22 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentSv.java               |   14 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcOperateMapper.java                          |   27 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcOperate.java                               |   75 ++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/enums/LastOperateENUM.java     |    9 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcOperateMapper.xml                                         |  126 +++++++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java         |   35 ++++-
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java         |   11 -
 11 files changed, 316 insertions(+), 36 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcOperateMapper.java
new file mode 100644
index 0000000..95c21b5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVcOperateMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoSe;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoSe.SeVcOperate;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-10 10:15
+ * @LastEditTime 2024-08-10 10:15
+ * @Description
+ */
+
+@Mapper
+public interface SeVcOperateMapper extends BaseMapper<SeVcOperate> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(SeVcOperate record);
+
+    int insertSelective(SeVcOperate record);
+
+    SeVcOperate selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(SeVcOperate record);
+
+    int updateByPrimaryKey(SeVcOperate record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcOperate.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcOperate.java
new file mode 100644
index 0000000..f1464a5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVcOperate.java
@@ -0,0 +1,75 @@
+package com.dy.pipIrrGlobal.pojoSe;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-10 10:15
+ * @LastEditTime 2024-08-10 10:15
+ * @Description
+ */
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * 铏氭嫙鍗℃搷浣滆〃
+ */
+@TableName(value = "se_vc_operate", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class SeVcOperate implements BaseEntity {
+    public static final long serialVersionUID = 202408100908001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing = ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 铏氭嫙鍗D
+     */
+    @JSONField(serializeUsing = ObjectWriterImplToString.class)
+    private Long vcId;
+
+    /**
+     * 鍐滄埛ID
+     */
+    @JSONField(serializeUsing = ObjectWriterImplToString.class)
+    private Long clientId;
+
+    /**
+     * 鎿嶄綔绫诲瀷;1-寮�鎴凤紝2-鍏呭�硷紝3-娑堣垂锛�4-閿�鎴凤紝5-鐢宠閫�娆撅紝6-閫�娆惧鏍革紝7-閫�娆�
+     */
+    private Byte operateType;
+
+    /**
+     * 鍏呭�糏D;鍏呭�兼椂濉啓
+     */
+    @JSONField(serializeUsing = ObjectWriterImplToString.class)
+    private Long rechargeId;
+
+    /**
+     * 鎿嶄綔浜�
+     */
+    @JSONField(serializeUsing = ObjectWriterImplToString.class)
+    private Long operator;
+
+    /**
+     * 鎿嶄綔鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operateTime;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcOperateMapper.xml
new file mode 100644
index 0000000..0e5b341
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcOperateMapper.xml
@@ -0,0 +1,126 @@
+<?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.dy.pipIrrGlobal.daoSe.SeVcOperateMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
+    <!--@mbg.generated-->
+    <!--@Table se_vc_operate-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="vc_id" jdbcType="BIGINT" property="vcId" />
+    <result column="client_id" jdbcType="BIGINT" property="clientId" />
+    <result column="operate_type" jdbcType="TINYINT" property="operateType" />
+    <result column="recharge_id" jdbcType="BIGINT" property="rechargeId" />
+    <result column="operator" jdbcType="BIGINT" property="operator" />
+    <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, vc_id, client_id, operate_type, recharge_id, `operator`, operate_time
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from se_vc_operate
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from se_vc_operate
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
+    <!--@mbg.generated-->
+    insert into se_vc_operate (id, vc_id, client_id, 
+      operate_type, recharge_id, `operator`, 
+      operate_time)
+    values (#{id,jdbcType=BIGINT}, #{vcId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, 
+      #{operateType,jdbcType=TINYINT}, #{rechargeId,jdbcType=BIGINT}, #{operator,jdbcType=BIGINT}, 
+      #{operateTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
+    <!--@mbg.generated-->
+    insert into se_vc_operate
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="vcId != null">
+        vc_id,
+      </if>
+      <if test="clientId != null">
+        client_id,
+      </if>
+      <if test="operateType != null">
+        operate_type,
+      </if>
+      <if test="rechargeId != null">
+        recharge_id,
+      </if>
+      <if test="operator != null">
+        `operator`,
+      </if>
+      <if test="operateTime != null">
+        operate_time,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="vcId != null">
+        #{vcId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="operateType != null">
+        #{operateType,jdbcType=TINYINT},
+      </if>
+      <if test="rechargeId != null">
+        #{rechargeId,jdbcType=BIGINT},
+      </if>
+      <if test="operator != null">
+        #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
+    <!--@mbg.generated-->
+    update se_vc_operate
+    <set>
+      <if test="vcId != null">
+        vc_id = #{vcId,jdbcType=BIGINT},
+      </if>
+      <if test="clientId != null">
+        client_id = #{clientId,jdbcType=BIGINT},
+      </if>
+      <if test="operateType != null">
+        operate_type = #{operateType,jdbcType=TINYINT},
+      </if>
+      <if test="rechargeId != null">
+        recharge_id = #{rechargeId,jdbcType=BIGINT},
+      </if>
+      <if test="operator != null">
+        `operator` = #{operator,jdbcType=BIGINT},
+      </if>
+      <if test="operateTime != null">
+        operate_time = #{operateTime,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
+    <!--@mbg.generated-->
+    update se_vc_operate
+    set vc_id = #{vcId,jdbcType=BIGINT},
+      client_id = #{clientId,jdbcType=BIGINT},
+      operate_type = #{operateType,jdbcType=TINYINT},
+      recharge_id = #{rechargeId,jdbcType=BIGINT},
+      `operator` = #{operator,jdbcType=BIGINT},
+      operate_time = #{operateTime,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/enums/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/enums/LastOperateENUM.java
index 5d0411c..dd49cb9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/enums/LastOperateENUM.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/virtualCard/enums/LastOperateENUM.java
@@ -16,11 +16,10 @@
     OPEN_ACCOUNT((byte)1, "寮�鎴�"),
     RECHARGE((byte)2, "鍏呭��"),
     CONSUME((byte)3, "娑堣垂"),
-    APPLY_REFUND((byte)4, "鐢宠閫�娆�"),
-    AUDIT_REFUND((byte)5, "閫�娆惧鏍�"),
-    REFUND((byte)6, "閫�娆�"),
-    OPEN_VALVE((byte)7, "寮�闃�"),
-    CLOSE_VALVE((byte)8, "鍏抽榾");
+    CLOSING_ACCOUNT((byte)4, "閿�鎴�"),
+    APPLY_REFUND((byte)5, "鐢宠閫�娆�"),
+    AUDIT_REFUND((byte)6, "閫�娆惧鏍�"),
+    REFUND((byte)7, "閫�娆�");
 
     private final Byte code;
     private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
index 8884740..6b3e977 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -4,18 +4,9 @@
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pipIrrGlobal.voSt.VoClient;
-import com.dy.pipIrrGlobal.voSt.VoClientOpenCardCount;
-import com.dy.pipIrrGlobal.voSt.VoClientRechargeTotal;
-import com.dy.pipIrrGlobal.voSt.VoICCard;
+import com.dy.pipIrrGlobal.voSt.*;
 import com.dy.pipIrrStatistics.card.IcCardqo.CommonQO;
 import com.dy.pipIrrStatistics.client.qo.*;
-import com.dy.pipIrrGlobal.voSt.VoDayClient;
-import com.dy.pipIrrGlobal.voSt.VoMonthClient;
-import com.dy.pipIrrStatistics.client.qo.AmountSpentQO;
-import com.dy.pipIrrStatistics.client.qo.OpenCountQO;
-import com.dy.pipIrrStatistics.client.qo.WaterConsumptionQO;
-import com.dy.pipIrrStatistics.client.qo.WaterDurationQO;
 import com.dy.pipIrrStatistics.intake.qo.ClientAmountQO;
 import com.dy.pipIrrStatistics.result.StatisticlResultCode;
 import jakarta.validation.Valid;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
index 2d103d1..0525e6f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -10,6 +10,7 @@
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -335,7 +336,7 @@
      */
     @GetMapping(path = "/getDayIntakeAmount")
     @SsoAop()
-    public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(IntakeAmountQO qo) {
+    public BaseResponse<QueryResultVo<List<VoDayIntakeAmount>>> getDayIntakeAmount(@NotNull IntakeAmountQO qo) {
         if(qo.getYearMonth() == null) {
             return BaseResponseUtils.buildErrorMsg(StatisticlResultCode.YEAR_AND_MONTH_CANNOT_BE_NULL.getMessage());
         }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardCtrl.java
index 727175d..3c8baf4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardCtrl.java
@@ -3,6 +3,7 @@
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.pojoSe.SeVcOperate;
 import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
 import com.dy.pipIrrGlobal.voSe.VoVcRecharge;
 import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
@@ -15,6 +16,7 @@
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -48,6 +50,7 @@
      * @return
      */
     @PostMapping(path = "add_vc")
+    @Transactional(rollbackFor = Exception.class)
     public BaseResponse<Boolean> addVC(@RequestBody @Valid DtoRegist po, BindingResult bindingResult) {
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
@@ -79,6 +82,7 @@
             vcNum = areaCode + "00001";
         }
 
+        // 鐢熸垚铏氭嫙鍗¤褰�
         SeVirtualCard seVirtualCard = new SeVirtualCard();
         seVirtualCard.setVcNum(Long.parseLong(vcNum));
         seVirtualCard.setClientId(clientId);
@@ -87,10 +91,23 @@
         seVirtualCard.setLastOperateTime(new Date());
         seVirtualCard.setInUse((byte) 0);
         seVirtualCard.setCreateTime(new Date());
-        Long rec = virtualCardSv.insertVirtualCard(seVirtualCard);
-        if(rec == null) {
+        Long vcId = virtualCardSv.insertVirtualCard(seVirtualCard);
+        if(vcId == null) {
             return BaseResponseUtils.buildErrorMsg(WechatResultCode.VC_OPEN_ACCOUNT_FAIL.getMessage());
         }
+
+        // 鐢熸垚铏氭嫙鍗℃搷浣滆褰曪紝娉ㄥ唽铏氭嫙鍗℃搷浣滀汉涓哄啘鎴�
+        SeVcOperate seVcOperate = new SeVcOperate();
+        seVcOperate.setVcId(vcId);
+        seVcOperate.setClientId(clientId);
+        seVcOperate.setOperateType(LastOperateENUM.OPEN_ACCOUNT.getCode());
+        seVcOperate.setOperator(clientId);
+        seVcOperate.setOperateTime(new Date());
+        Long vcOperateId = virtualCardSv.insertVcOperate(seVcOperate);
+        if(vcOperateId == null) {
+            return BaseResponseUtils.buildErrorMsg(WechatResultCode.VC_OPEN_ACCOUNT_FAIL.getMessage());
+        }
+
         return BaseResponseUtils.buildSuccess(true) ;
     }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java
index 2f4a5ff..d6d9cd4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java
@@ -4,10 +4,7 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoSe.*;
-import com.dy.pipIrrGlobal.pojoSe.SeVcRecharge;
-import com.dy.pipIrrGlobal.pojoSe.SeVcRefund;
-import com.dy.pipIrrGlobal.pojoSe.SeVcRefundItem;
-import com.dy.pipIrrGlobal.pojoSe.SeVirtualCard;
+import com.dy.pipIrrGlobal.pojoSe.*;
 import com.dy.pipIrrGlobal.voSe.VoOrders;
 import com.dy.pipIrrGlobal.voSe.VoVcRecharge;
 import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
@@ -50,6 +47,9 @@
 
     @Autowired
     private SeClientMapper seClientMapper;
+
+    @Autowired
+    private SeVcOperateMapper seVcOperateMapper;
 
     /**
      * 鏍规嵁鍐滄埛ID鑾峰彇5绾ц鏀垮尯鍒掍唬鐮侊紝娉ㄥ唽铏氭嫙鍗′娇鐢�
@@ -128,9 +128,10 @@
      * 娣诲姞铏氭嫙鍗″厖鍊艰褰�
      * JSAPI涓嬪崟鍚庣敓鎴愰儴鍒嗗厖鍊艰褰�
      * @param po
-     * @return
+     * @return -1锛氳櫄鎷熷崱涓嶅瓨鍦紝0锛氭坊鍔犲厖鍊艰褰曞け璐�
      */
-    public BaseResponse<Boolean> insertVCRecharge(DtoVirtualCard po) {
+    //public BaseResponse<Boolean> insertVCRecharge(DtoVirtualCard po) {
+    public Long insertVCRecharge(DtoVirtualCard po) {
         String orderNumber = po.getOrderNumber();
         Long virtualId = po.getVirtualId();
         Long clientId = po.getClientId();
@@ -138,8 +139,9 @@
 
         // 楠岃瘉璇ヨ櫄鎷熷崱璐︽埛鏄惁瀛樺湪骞跺彇鍑哄綋鍓嶈处鎴蜂綑棰�
         SeVirtualCard seVirtualCard = seVirtualCardMapper.selectByPrimaryKey(virtualId);
+
         if(seVirtualCard == null) {
-            return BaseResponseUtils.buildFail(WechatResultCode.NO_ACCOUNT.getMessage());
+            return -1L;
         }
         Double money = seVirtualCard.getMoney();
 
@@ -152,11 +154,12 @@
         seVcRecharge.setRechargeAmount(rechargeAmount);
         seVcRecharge.setOrderTime(new Date());
         seVcRecharge.setOrderState(OrderStateENUM.NON_PAYMENT.getCode());
-        Integer rec = seVcRechargeMapper.insert(seVcRecharge);
-        if(rec == null) {
-            return BaseResponseUtils.buildFail(WechatResultCode.RECHARGE_FAIL.getMessage());
+        seVcRechargeMapper.insert(seVcRecharge);
+        Long rechargeId = seVcRecharge.getId();
+        if(rechargeId == null) {
+            return 0L;
         }
-        return BaseResponseUtils.buildSuccess(true) ;
+        return rechargeId;
     }
 
     /**
@@ -349,4 +352,14 @@
 
         return rsVo;
     }
+
+    /**
+     * 娣诲姞铏氭嫙鍗℃搷浣滆褰�
+     * @param po
+     * @return
+     */
+    public Long insertVcOperate(SeVcOperate po) {
+        seVcOperateMapper.insert(po);
+        return po.getId();
+    }
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java
index 7a4cc72..d637a61 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/enums/LastOperateENUM.java
@@ -16,11 +16,10 @@
     OPEN_ACCOUNT((byte)1, "寮�鎴�"),
     RECHARGE((byte)2, "鍏呭��"),
     CONSUME((byte)3, "娑堣垂"),
-    APPLY_REFUND((byte)4, "鐢宠閫�娆�"),
-    AUDIT_REFUND((byte)5, "閫�娆惧鏍�"),
-    REFUND((byte)6, "閫�娆�"),
-    OPEN_VALVE((byte)7, "寮�闃�"),
-    CLOSE_VALVE((byte)8, "鍏抽榾");
+    CLOSING_ACCOUNT((byte)4, "閿�鎴�"),
+    APPLY_REFUND((byte)5, "鐢宠閫�娆�"),
+    AUDIT_REFUND((byte)6, "閫�娆惧鏍�"),
+    REFUND((byte)7, "閫�娆�");
 
     private final Byte code;
     private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
index b6043c0..356ac1f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentCtrl.java
@@ -237,8 +237,26 @@
         virtualCard.setClientId(clientId);
         virtualCard.setOrderNumber(orderNumber);
         virtualCard.setRechargeAmount(rechargeAmount);
-        BaseResponse result = virtualCardSv.insertVCRecharge(virtualCard);
-        if(!result.getCode().equals("0001")) {
+
+        // -1锛氳櫄鎷熷崱涓嶅瓨鍦紝0锛氭坊鍔犲厖鍊艰褰曞け璐�
+        Long rechargeId = virtualCardSv.insertVCRecharge(virtualCard);
+        if(rechargeId.equals(-1)) {
+            return BaseResponseUtils.buildFail(WechatResultCode.NO_ACCOUNT.getMessage());
+        }
+        if(rechargeId.equals(0)) {
+            return BaseResponseUtils.buildFail(WechatResultCode.RECHARGE_FAIL.getMessage());
+        }
+
+        // 鐢熸垚鍏呭�兼搷浣滆褰曪紝鍏呭�兼搷浣滀汉涓哄啘鎴�
+        SeVcOperate seVcOperate = new SeVcOperate();
+        seVcOperate.setVcId(virtualId);
+        seVcOperate.setClientId(clientId);
+        seVcOperate.setOperateType(LastOperateENUM.RECHARGE.getCode());
+        seVcOperate.setRechargeId(rechargeId);
+        seVcOperate.setOperator(clientId);
+        seVcOperate.setOperateTime(new Date());
+        Long vcOperateId = virtualCardSv.insertVcOperate(seVcOperate);
+        if(vcOperateId == null) {
             return BaseResponseUtils.buildErrorMsg(WechatResultCode.RECHARGE_ADD_FAIL.getMessage());
         }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentSv.java
index bac6e73..50edb2b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/wechatpay/PaymentSv.java
@@ -2,6 +2,7 @@
 
 import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
 import com.dy.pipIrrGlobal.daoSe.SeOpenIdMapper;
+import com.dy.pipIrrGlobal.daoSe.SeVcOperateMapper;
 import com.dy.pipIrrGlobal.daoSe.SeVcRechargeMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeClient;
 import com.dy.pipIrrGlobal.pojoSe.SeOpenId;
@@ -30,6 +31,9 @@
 
     @Autowired
     private SeClientMapper seClientMapper;
+
+    @Autowired
+    private SeVcOperateMapper seVcOperateMapper;
 
     /**
      * 鏍规嵁鐧诲綍鎬両D鑾峰彇鐧诲綍鎬佸璞�
@@ -80,4 +84,14 @@
         //return po.getClientId();
         return po.getId();
     }
+
+    /**
+     * 娣诲姞铏氭嫙鍗℃搷浣滆褰�
+     * @param po
+     * @return
+     */
+    //public Long insertVcOperate(SeVcOperate po) {
+    //    seVcOperateMapper.insert(po);
+    //    return po.getId();
+    //}
 }
\ No newline at end of file

--
Gitblit v1.8.0