From d065b6ed33493aec24d3b0e974e7ef331a2261d5 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 21 十月 2024 16:45:47 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoCancel.java | 28 ++++
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java | 2
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml | 8
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java | 15 ++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml | 93 +++++++++----
/dev/null | 15 --
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/qo/QoVcRecharge.java | 20 ++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVirtualCard.java | 7 +
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java | 45 +++---
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardCtrl.java | 53 +++++++
pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/VirtualCardSv.java | 26 +++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoVcRecharge.java | 66 +++++---
pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml | 10
13 files changed, 280 insertions(+), 108 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
index 6d453c3..002de4d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeVirtualCardMapper.java
@@ -114,4 +114,19 @@
* @param money
*/
void updateMoney(@Param("id")Long id , @Param("money")Double money);
+
+ /**
+ * 鏍规嵁鍐滄埛ID鍙婅櫄鎷熷崱ID鑾峰彇姝e父鐘舵�佺殑铏氭嫙鍗″璞★紝閿�鍗′娇鐢�
+ * @param clientId
+ * @param vcId
+ * @return
+ */
+ SeVirtualCard getVcByClientIdAndVcId(@Param("clientId")Long clientId, @Param("vcId")Long vcId);
+
+ /**
+ * 娉ㄩ攢铏氭嫙鍗�
+ * @param vcId
+ * @return
+ */
+ Integer cancelVc(@Param("clientId")Long clientId, @Param("vcId")Long vcId);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVirtualCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVirtualCard.java
index bb3b69b..8a895fb 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVirtualCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeVirtualCard.java
@@ -64,6 +64,13 @@
private Double money;
/**
+ * 姘村崱鐘舵�侊紱1-姝e父锛�2-宸叉敞閿�
+ */
+ @Min(value = 1, message = "姘村崱鐘舵�佷笉鑳藉皬浜�1")
+ @Max(value = 2, message = "姘村崱鐘舵�佷笉鑳藉ぇ浜�2")
+ private Byte state;
+
+ /**
* 鏈�鍚庢搷浣�;1-寮�鎴凤紝2-鍏呭�硷紝3-娑堣垂锛�4-鐢宠閫�娆撅紝5-閫�娆惧鏍�
*/
@Schema(description = "鎿嶄綔绫诲瀷", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoVcRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoVcRecharge.java
index 0e9c043..9f955ca 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoVcRecharge.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoVcRecharge.java
@@ -1,8 +1,12 @@
package com.dy.pipIrrGlobal.voSe;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
import com.dy.common.po.BaseEntity;
-import io.swagger.v3.oas.annotations.media.Schema;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -13,39 +17,47 @@
* @Description
*/
@Data
+@JsonPropertyOrder({"vcId", "clientId", "rechargeTime", "rechargeAmount", "afterRecharge", "rechargeType"})
public class VoVcRecharge implements BaseEntity {
+ private static final long serialVersionUID = 202410211420001L;
- @Schema(title = "鍏呭�糏D")
- private Long id;
-
- @Schema(description = "铏氭嫙鍗D")
+ /**
+ * 铏氭嫙鍗D
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
private Long vcId;
- @Schema(description = "鍐滄埛ID")
+ /**
+ * 鍐滄埛ID
+ */
+ @JSONField(serializeUsing= ObjectWriterImplToString.class)
private Long clientId;
-
- @Schema(description = "閽卞寘浣欓")
- private Double money;
-
- @Schema(description = "鍏呭�煎悗浣欓")
- private Double afterRecharge;
-
- @Schema(description = "璁㈠崟鍙�")
- private String orderNumber;
-
- @Schema(description = "鍏呭�奸噾棰�")
- private Integer rechargeAmount;
-
- @Schema(description = "涓嬪崟鏃堕棿")
- private Date orderTime;
-
- @Schema(description = "鍏呭�煎畬鎴愭椂闂�")
+ /**
+ * 鍏呭�煎畬鎴愭椂闂�
+ */
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date rechargeTime;
- @Schema(description = "璁㈠崟鐘舵��")
- private Byte orderState;
+ /**
+ * 鍏呭�奸噾棰�
+ */
+ private Integer rechargeAmount;
- @Schema(description = "璁㈠崟鐘舵��")
- private String orderStateName;
+ /**
+ * 鍏呭�煎悗浣欓
+ */
+ private Double afterRecharge;
+
+ /**
+ * 鍏呭�肩被鍨�
+ */
+ private String rechargeType;
+
+ /**
+ * 铏氭嫙鍗$姸鎬侊紝鏆傛椂涓嶇敤锛岀洿鎺ヨ繃婊ゆ帀宸叉敞閿�铏氭嫙鍗�
+ */
+ //private String cardState;
+
}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
index 00d6993..eecab7f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
@@ -69,9 +69,8 @@
<user name="瓒呯骇绠$悊鍛�" phone="admin" password="admin" supperAdmin="1" />
<payments>
<item1 name="鐜伴噾"/>
- <item2 name="寰俊鏀粯"/>
- <item3 name="鏀粯瀹濇敮浠�"/>
- <item4 name="閾惰杞处"/>
+ <item2 name="POS鏈�"/>
+ <item3 name="閾惰杞处"/>
</payments>
<settings>
<item1 item_name="lng" item_value="101.87345" remarks="缁忓害"/>
@@ -118,9 +117,8 @@
<user name="瓒呯骇绠$悊鍛�" phone="admin" password="admin" supperAdmin="1" />
<payments>
<item1 name="鐜伴噾"/>
- <item2 name="寰俊鏀粯"/>
- <item3 name="鏀粯瀹濇敮浠�"/>
- <item4 name="閾惰杞处"/>
+ <item2 name="POS鏈�"/>
+ <item3 name="閾惰杞处"/>
</payments>
<settings>
<item1 item_name="lng" item_value="101.87345" remarks="缁忓害"/>
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
index fefa9d6..e1d1b20 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -411,7 +411,7 @@
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�-->
<select id="getAreaCodeByNum" resultType="java.lang.Long">
- SELECT districtNum FROM se_client WHERE clientNum = ${clientNum} LIMIT 0,1
+ SELECT districtNum FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
</select>
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤-->
@@ -421,7 +421,7 @@
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID-->
<select id="getClientIdByNum" resultType="java.lang.Long">
- SELECT id FROM se_client WHERE clientNum = ${clientNum} LIMIT 0,1
+ SELECT id FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
</select>
<!--鏍规嵁鐢佃瘽鍙风爜鑾峰彇鍐滄埛ID-->
@@ -434,14 +434,14 @@
update se_client set deleted = 1
<where>
<if test = "id != null and id > 0">
- AND id = ${id}
+ AND id = #{id}
</if>
</where>
</update>
<!--鏍规嵁涓婚敭鑾峰彇鏉慖D-->
<select id="getVillageIdById" parameterType="java.lang.Long" resultType="java.lang.Long">
- SELECT villageId FROM se_client WHERE id = ${id}
+ SELECT villageId FROM se_client WHERE id = #{id}
</select>
<!--鑾峰彇铏氭嫙鍗″彿鏈�澶у��-->
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
index cdc44c2..734119c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml
@@ -8,6 +8,7 @@
<result column="vc_num" jdbcType="BIGINT" property="vcNum" />
<result column="client_id" jdbcType="BIGINT" property="clientId" />
<result column="money" jdbcType="FLOAT" property="money" />
+ <result column="state" jdbcType="TINYINT" property="state" />
<result column="last_operate" jdbcType="TINYINT" property="lastOperate" />
<result column="last_operate_time" jdbcType="TIMESTAMP" property="lastOperateTime" />
<result column="in_use" jdbcType="TINYINT" property="inUse" />
@@ -16,7 +17,7 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, vc_num, client_id, money, last_operate, last_operate_time, in_use, intake_id, create_time
+ id, vc_num, client_id, money, state, last_operate, last_operate_time, in_use, intake_id, create_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
@@ -34,10 +35,10 @@
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
<!--@mbg.generated-->
insert into se_virtual_card (id, vc_num, client_id,
- money, last_operate, last_operate_time,
+ money, state, last_operate, last_operate_time,
in_use, intake_id, create_time)
values (#{id,jdbcType=BIGINT}, #{vcNum,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},
- #{money,jdbcType=FLOAT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP},
+ #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP},
#{inUse,jdbcType=TINYINT}, #{intakeId,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
@@ -55,6 +56,9 @@
</if>
<if test="money != null">
money,
+ </if>
+ <if test="state != null">
+ state,
</if>
<if test="lastOperate != null">
last_operate,
@@ -84,6 +88,9 @@
</if>
<if test="money != null">
#{money,jdbcType=FLOAT},
+ </if>
+ <if test="state != null">
+ #{state,jdbcType=TINYINT},
</if>
<if test="lastOperate != null">
#{lastOperate,jdbcType=TINYINT},
@@ -115,6 +122,9 @@
<if test="money != null">
money = #{money,jdbcType=FLOAT},
</if>
+ <if test="state != null">
+ state = #{state,jdbcType=TINYINT},
+ </if>
<if test="lastOperate != null">
last_operate = #{lastOperate,jdbcType=TINYINT},
</if>
@@ -139,6 +149,7 @@
set vc_num = #{vcNum,jdbcType=BIGINT},
client_id = #{clientId,jdbcType=BIGINT},
money = #{money,jdbcType=FLOAT},
+ state = #{state,jdbcType=TINYINT},
last_operate = #{lastOperate,jdbcType=TINYINT},
last_operate_time = #{lastOperateTime,jdbcType=TIMESTAMP},
in_use = #{inUse,jdbcType=TINYINT},
@@ -162,6 +173,7 @@
SELECT COUNT(*) AS recordCount
FROM se_virtual_card
<where>
+ AND state = 1
<if test = "clientId != null and clientId > 0">
AND client_id = #{clientId}
</if>
@@ -185,6 +197,7 @@
END) AS isAlarmValue
FROM se_virtual_card
<where>
+ AND state = 1
<if test = "clientId != null">
AND client_id = #{clientId}
</if>
@@ -204,19 +217,19 @@
WHEN in_use = 1 THEN '浣跨敤涓�'
END) AS inUseName
FROM se_virtual_card
- WHERE id = #{vcId}
+ WHERE state = 1 AND id = #{vcId}
</select>
<!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱-->
<select id="getVcCardByNum" resultType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
select
<include refid="Base_Column_List" />
- FROM se_virtual_card WHERE vc_num = #{vcNum}
+ FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum}
</select>
<!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID-->
<select id="getVcIdByNum" resultType="java.lang.Long">
- SELECT id FROM se_virtual_card WHERE vc_num = #{vcNum}
+ SELECT id FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum}
</select>
<!--鏍规嵁铏氭嫙鍗$紪鍙疯幏鍙栬櫄鎷熷崱ID-->
@@ -226,7 +239,7 @@
cli.name AS clientName
FROM se_virtual_card card
INNER JOIN se_client cli ON card.client_id = cli.id
- WHERE card.vc_num = #{vcNum}
+ WHERE card.state = 1 AND card.vc_num = #{vcNum}
</select>
<!-- 鏍规嵁姘村崱缂栧彿鑾峰彇铏氭嫙姘村崱 -->
@@ -235,38 +248,41 @@
id,
money
FROM se_virtual_card
- WHERE vc_num = #{cardNum}
+ WHERE state = 1 AND vc_num = #{cardNum}
</select>
<!--鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈣櫄鎷熷崱缂栧彿-->
<select id="getVcCardNumOfMax" resultType="java.lang.String">
SELECT vc_num
FROM se_virtual_card
- WHERE vc_num LIKE CONCAT('%',#{areaCode},'%')
+ WHERE state = 1 AND vc_num LIKE CONCAT('%',#{areaCode},'%')
ORDER BY vc_num desc
LIMIT 0,1
</select>
- <!--鑾峰彇铏氭嫙鍗″厖鍊艰褰�-->
+ <!--鑾峰彇铏氭嫙鍗″厖鍊艰褰曪紝涓嶅寘鎷凡宸叉敞閿�鍗$殑鍏呭�艰褰�-->
<select id="getVcRechargeRecords" resultType="com.dy.pipIrrGlobal.voSe.VoVcRecharge" >
SELECT
- CAST(id AS char) AS id,
- CAST(vc_id AS char) AS vcId,
- CAST(client_id AS char) AS clientId,
- money,
- after_recharge AS afterRecharge,
- order_number AS orderNumber,
- recharge_amount AS rechargeAmount,
- order_time AS orderTime,
- recharge_time AS rechargeTime,
- order_state AS orderState,
- (CASE
- WHEN order_state = 1 THEN '鏈敮浠�'
- WHEN order_state = 2 THEN '宸叉敮浠�'
- END) AS orderStateName
- FROM se_vc_recharge
- where order_state = 2
- order by recharge_time DESC
+ rec.vc_id AS vcId,
+ rec.client_id AS clientId,
+ rec.recharge_time AS rechargeTime,
+ rec.recharge_amount AS rechargeAmount,
+ rec.after_recharge AS afterRecharge,
+ '寰俊鏀粯' AS rechargeType
+ <!-- CASE-->
+ <!-- WHEN card.state = 1 THEN '姝e父閿�铏氭嫙鍗�'-->
+ <!-- WHEN card.state = 2 THEN '宸叉敞閿�铏氭嫙鍗�'-->
+ <!-- END AS cardState,-->
+ FROM se_vc_recharge rec
+ INNER JOIN se_virtual_card card ON card.id = rec.vc_id
+ <where>
+ AND card.state = 1
+ AND rec.order_state = 2
+ <if test = "vcId != null and vcId > 0">
+ AND rec.vc_id = #{vcId}
+ </if>
+ </where>
+ order by rec.recharge_time DESC
<if test="start != null and count != null">
LIMIT #{start}, #{count}
</if>
@@ -275,7 +291,26 @@
<select id="getRechargeRecordCount" resultType="java.lang.Long">
SELECT
COUNT(*)
- FROM se_vc_recharge
- where order_state = 2
+ FROM se_vc_recharge rec
+ INNER JOIN se_virtual_card card ON card.id = rec.vc_id
+ <where>
+ AND card.state = 1
+ AND rec.order_state = 2
+ <if test = "vcId != null and vcId > 0">
+ AND rec.vc_id = #{vcId}
+ </if>
+ </where>
</select>
+
+ <!--鏍规嵁鍐滄埛ID鍙婅櫄鎷熷崱ID鑾峰彇姝e父鐘舵�佺殑铏氭嫙鍗″璞★紝閿�鍗′娇鐢�-->
+ <select id="getVcByClientIdAndVcId" resultType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
+ SELECT * FROM se_virtual_card
+ WHERE state = 1 AND client_id = #{clientId} AND id = #{vcId}
+ </select>
+
+ <!--娉ㄩ攢铏氭嫙鍗�-->
+ <update id="cancelVc">
+ UPDATE se_virtual_card SET state = 2, last_operate = 4 , last_operate_time = NOW()
+ WHERE id = #{vcId} AND client_id = #{clientId}
+ </update>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
index 974622e..d098d1f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/ValveCtrl.java
@@ -775,7 +775,7 @@
}
/**
- * 寮哄埗鍥犳鏈叧闃�璁板綍锛氫负鎸囧畾锛堥榾鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
+ * 寮哄埗闅愯棌鏈叧闃�璁板綍锛氫负鎸囧畾锛堥榾鎺у櫒鍦板潃銆佹按鍗$紪鍙枫�佹棤鍏抽榾璁板綍锛夊紑鍏抽榾鏈�鏂拌褰曟坊鍔犲叧闃�鏃堕棿锛屼娇涔嬩笉鍦ㄦ湭鍏抽榾璁板綍涓樉绀�
* @param po
* @param bindingResult
* @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java
index 4b8b279..935c64d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/result/WechatResultCode.java
@@ -37,32 +37,35 @@
/**
* 寰俊鐢ㄦ埛
*/
- PHONE_NUMBER_CANNOT_BE_NULL(20001, "鎵嬫満鍙蜂笉鑳戒负绌�"),
- SECURITY_CODE_SEND_FAIL(20001, "楠岃瘉鐮佸彂閫佸け璐�"),
- VERIFY_PARAMS_INCOMPLETE(20001, "楠岃瘉鍙傛暟涓嶅畬鏁�"),
- CODE_VERIFY_FAIL(20001, "楠岃瘉鐮佹牎楠屽け璐�"),
+ PHONE_NUMBER_CANNOT_BE_NULL(30001, "鎵嬫満鍙蜂笉鑳戒负绌�"),
+ SECURITY_CODE_SEND_FAIL(30002, "楠岃瘉鐮佸彂閫佸け璐�"),
+ VERIFY_PARAMS_INCOMPLETE(30003, "楠岃瘉鍙傛暟涓嶅畬鏁�"),
+ CODE_VERIFY_FAIL(30004, "楠岃瘉鐮佹牎楠屽け璐�"),
- NO_SECURITY_CODE_FOR_PHONE(20002, "璇ユ墜鏈哄彿鏈彂閫侀獙璇佺爜"),
- SECURITY_CODE_ERROR(20003, "楠岃瘉鐮侀敊璇�"),
- VALIDATION_TIMEOUT(20004, "楠岃瘉瓒呮椂"),
- PHONE_NUMBER_IS_ERROR(20004, "鎵嬫満鍙烽敊璇紝闈炴敞鍐屽啘鎴�"),
- INVALID_CODE(20004, "鏃犳晥鐨勪复鏃剁櫥褰曞嚟璇�"),
- LOGIN_FAIL(20004, "鐧诲綍澶辫触"),
+ NO_SECURITY_CODE_FOR_PHONE(30005, "璇ユ墜鏈哄彿鏈彂閫侀獙璇佺爜"),
+ SECURITY_CODE_ERROR(30006, "楠岃瘉鐮侀敊璇�"),
+ VALIDATION_TIMEOUT(30007, "楠岃瘉瓒呮椂"),
+ PHONE_NUMBER_IS_ERROR(30008, "鎵嬫満鍙烽敊璇紝闈炴敞鍐屽啘鎴�"),
+ INVALID_CODE(30009, "鏃犳晥鐨勪复鏃剁櫥褰曞嚟璇�"),
+ LOGIN_FAIL(30010, "鐧诲綍澶辫触"),
/**
* 铏氭嫙鍗�
*/
- AREA_CODE_MISTAKE(10001, "璇ュ啘鎴疯鏀垮尯鍒掑紓甯�"),
- ABNORMAL(10001, "閫�娆惧紓甯�"),
- PROCESSING(10001, "閫�娆惧鐞嗕腑"),
- VC_OPEN_ACCOUNT_FAIL(90002, "铏氭嫙鍗¤处鎴锋敞鍐屽け璐�"),
- CARD_NUMBER_OVERRUN(10002, "姘村崱缂栧彿宸叉弧"),
- VIRTUAL_CARD_NOT_EXIST(90006, "铏氭嫙鍗¤处鎴蜂笉瀛樺湪"),
- RECHARGE_NOT_EXIST(90006, "鍏呭�艰褰曚笉瀛樺湪"),
- RECHARGE_FAIL(90006, "鍏呭�煎け璐�"),
- RECHARGE_ADD_FAIL(10001, "鍏呭�艰褰曟坊鍔犲け璐�"),
- NO_ACCOUNT(40001, "鎮ㄦ寚瀹氱殑铏氭嫙鍗℃湭娉ㄥ唽"),
- VIRTUAL_CARD_CLIENT_NOT_EXIST(40001, "铏氭嫙鍗℃墍灞炲啘鎴蜂笉瀛樺湪"),
+ AREA_CODE_MISTAKE(40001, "璇ュ啘鎴疯鏀垮尯鍒掑紓甯�"),
+ ABNORMAL(40002, "閫�娆惧紓甯�"),
+ PROCESSING(40003, "閫�娆惧鐞嗕腑"),
+ VC_OPEN_ACCOUNT_FAIL(40004, "铏氭嫙鍗¤处鎴锋敞鍐屽け璐�"),
+ NO_VC_FIT_THE_BILL(40004, "娌℃湁绗﹀悎鏉′欢鐨勮櫄鎷熷崱"),
+ VC_CANCEL_FAIL(40005, "铏氭嫙鍗℃敞閿�澶辫触"),
+
+ CARD_NUMBER_OVERRUN(40006, "姘村崱缂栧彿宸叉弧"),
+ VIRTUAL_CARD_NOT_EXIST(40007, "铏氭嫙鍗¤处鎴蜂笉瀛樺湪"),
+ RECHARGE_NOT_EXIST(40008, "鍏呭�艰褰曚笉瀛樺湪"),
+ RECHARGE_FAIL(40009, "鍏呭�煎け璐�"),
+ RECHARGE_ADD_FAIL(40010, "鍏呭�艰褰曟坊鍔犲け璐�"),
+ NO_ACCOUNT(40011, "鎮ㄦ寚瀹氱殑铏氭嫙鍗℃湭娉ㄥ唽"),
+ VIRTUAL_CARD_CLIENT_NOT_EXIST(40012, "铏氭嫙鍗℃墍灞炲啘鎴蜂笉瀛樺湪"),
/**
* 浣嶇疆鏀粯
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 3c8baf4..b8dd640 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
@@ -9,9 +9,10 @@
import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
import com.dy.pipIrrWechat.result.WechatResultCode;
import com.dy.pipIrrWechat.util.PayHelper;
+import com.dy.pipIrrWechat.virtualCard.dto.DtoCancel;
import com.dy.pipIrrWechat.virtualCard.dto.DtoRegist;
-import com.dy.pipIrrWechat.virtualCard.dto.DtoVcRecharge;
import com.dy.pipIrrWechat.virtualCard.enums.LastOperateENUM;
+import com.dy.pipIrrWechat.virtualCard.qo.QoVcRecharge;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -87,6 +88,7 @@
seVirtualCard.setVcNum(Long.parseLong(vcNum));
seVirtualCard.setClientId(clientId);
seVirtualCard.setMoney(0d);
+ seVirtualCard.setState((byte)1);
seVirtualCard.setLastOperate(LastOperateENUM.OPEN_ACCOUNT.getCode());
seVirtualCard.setLastOperateTime(new Date());
seVirtualCard.setInUse((byte) 0);
@@ -101,6 +103,49 @@
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) ;
+ }
+
+ /**
+ * 鏍规嵁铏氭嫙鍗D娉ㄩ攢铏氭嫙鍗�
+ * @param po
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "cancel")
+ @Transactional(rollbackFor = Exception.class)
+ public BaseResponse<Boolean> cancelVC(@RequestBody @Valid DtoCancel po, BindingResult bindingResult) {
+ if(bindingResult != null && bindingResult.hasErrors()){
+ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ Long clientId = po.getClientId();
+ Long vcId = po.getVcId();
+
+ // 鏍规嵁鍐滄埛ID鍙婅櫄鎷熷崱Id鍒ゆ柇鏄惁瀛樺湪姝e父鐘舵�侊紙鍙敞閿�锛夌殑铏氭嫙鍗�
+ SeVirtualCard seVirtualCard = virtualCardSv.getVcByClientIdAndVcId(clientId, vcId);
+ if(seVirtualCard == null) {
+ return BaseResponseUtils.buildErrorMsg(WechatResultCode.NO_VC_FIT_THE_BILL.getMessage());
+ }
+
+ // 娉ㄩ攢铏氭嫙鍗�
+ Integer rec = virtualCardSv.cancelVc(clientId, vcId);
+ if(rec == null || rec == 0) {
+ return BaseResponseUtils.buildErrorMsg(WechatResultCode.VC_CANCEL_FAIL.getMessage());
+ }
+
+ // 鐢熸垚铏氭嫙鍗℃搷浣滆褰曪紝娉ㄥ唽铏氭嫙鍗℃搷浣滀汉涓哄啘鎴�
+ SeVcOperate seVcOperate = new SeVcOperate();
+ seVcOperate.setVcId(vcId);
+ seVcOperate.setClientId(clientId);
+ seVcOperate.setOperateType(LastOperateENUM.CLOSING_ACCOUNT.getCode());
seVcOperate.setOperator(clientId);
seVcOperate.setOperateTime(new Date());
Long vcOperateId = virtualCardSv.insertVcOperate(seVcOperate);
@@ -271,8 +316,12 @@
* @return
*/
@GetMapping(path = "/getVcRechargeRecords")
- public BaseResponse<QueryResultVo<List<VoVcRecharge>>> getVcRechargeRecords(DtoVcRecharge dtoVcRecharge){
+ public BaseResponse<QueryResultVo<List<VoVcRecharge>>> getVcRechargeRecords(QoVcRecharge dtoVcRecharge){
try {
+ if(dtoVcRecharge.getVcId() == null) {
+ return BaseResponseUtils.buildErrorMsg("铏氭嫙鍗′笉鑳戒负绌�");
+ }
+
QueryResultVo<List<VoVcRecharge>> res = virtualCardSv.getVcRechargeRecords(dtoVcRecharge);
return BaseResponseUtils.buildSuccess(res);
} catch (Exception e) {
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 334aafa..903bf55 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
@@ -8,11 +8,11 @@
import com.dy.pipIrrGlobal.voSe.VoOrders;
import com.dy.pipIrrGlobal.voSe.VoVcRecharge;
import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
-import com.dy.pipIrrWechat.virtualCard.dto.DtoVcRecharge;
+import com.dy.pipIrrWechat.result.WechatResultCode;
import com.dy.pipIrrWechat.virtualCard.dto.DtoVirtualCard;
import com.dy.pipIrrWechat.virtualCard.enums.LastOperateENUM;
import com.dy.pipIrrWechat.virtualCard.enums.OrderStateENUM;
-import com.dy.pipIrrWechat.result.WechatResultCode;
+import com.dy.pipIrrWechat.virtualCard.qo.QoVcRecharge;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -89,6 +89,26 @@
public Long insertVirtualCard(SeVirtualCard po) {
seVirtualCardMapper.insert(po);
return po.getId();
+ }
+
+ /**
+ * 鏍规嵁鍐滄埛ID鍙婅櫄鎷熷崱ID鑾峰彇姝e父鐘舵�佺殑铏氭嫙鍗″璞�
+ * @param clientId
+ * @param vcId
+ * @return
+ */
+ public SeVirtualCard getVcByClientIdAndVcId (Long clientId, Long vcId) {
+ return seVirtualCardMapper.getVcByClientIdAndVcId(clientId, vcId);
+ }
+
+ /**
+ * 鏍规嵁铏氭嫙鍗D娉ㄩ攢铏氭嫙鍗�
+ * @param clientId
+ * @param vcId
+ * @return
+ */
+ public Integer cancelVc(Long clientId, Long vcId) {
+ return seVirtualCardMapper.cancelVc(clientId, vcId);
}
/**
@@ -343,7 +363,7 @@
* @param dtoVcRecharge
* @return
*/
- public QueryResultVo<List<VoVcRecharge>> getVcRechargeRecords(DtoVcRecharge dtoVcRecharge){
+ public QueryResultVo<List<VoVcRecharge>> getVcRechargeRecords(QoVcRecharge dtoVcRecharge){
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(dtoVcRecharge);
Long itemTotal = seVirtualCardMapper.getRechargeRecordCount(params);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoCancel.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoCancel.java
new file mode 100644
index 0000000..7be06bb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoCancel.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrWechat.virtualCard.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-21 10:43
+ * @LastEditTime 2024-10-21 10:43
+ * @Description 娉ㄩ攢铏氭嫙鍗″弬鏁板璞�
+ */
+
+@Data
+public class DtoCancel {
+ public static final long serialVersionUID = 202410211044001L;
+
+ /**
+ * 鍐滄埛ID
+ */
+ @NotNull(message = "鍐滄埛ID涓嶈兘涓虹┖")
+ private Long clientId;
+
+ /**
+ * 铏氭嫙鍗D
+ */
+ @NotNull(message = "铏氭嫙鍗D涓嶈兘涓虹┖")
+ private Long vcId;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java
deleted file mode 100644
index 5956583..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/dto/DtoVcRecharge.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.dy.pipIrrWechat.virtualCard.dto;
-
-import com.dy.common.webUtil.QueryConditionVo;
-import lombok.Data;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-07-11 15:41
- * @LastEditTime 2024-07-11 15:41
- * @Description
- */
-
-@Data
-public class DtoVcRecharge extends QueryConditionVo {
-}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/qo/QoVcRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/qo/QoVcRecharge.java
new file mode 100644
index 0000000..755ccde
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/virtualCard/qo/QoVcRecharge.java
@@ -0,0 +1,20 @@
+package com.dy.pipIrrWechat.virtualCard.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-07-11 15:41
+ * @LastEditTime 2024-07-11 15:41
+ * @Description 鍏呭�艰褰曟煡璇㈠璞�
+ */
+
+@Data
+public class QoVcRecharge extends QueryConditionVo {
+
+ /**
+ * 铏氭嫙鍗D
+ */
+ private Long vcId;
+}
--
Gitblit v1.8.0