From cf25cda454a645ea47ce6135184c3df6afd09ddc Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期六, 20 一月 2024 10:40:41 +0800
Subject: [PATCH] 2024-01-20 朱宝民 删除不存在用户提示信息,用户名字段改名,Long型字段转字符串

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java                                |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java                          |    6 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java           |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java         |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java       |  270 ++++++++++++++++++++++----
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java     |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java         |   58 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReissue.java        |   89 ++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java |    3 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml                                        |    5 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java        |   13 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java                     |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java             |    7 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml                                          |   24 +-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                                    |   21 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java                              |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java                 |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java                       |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoUnlock.java         |   57 +++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java                         |    7 
 20 files changed, 512 insertions(+), 80 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
index 44e1e11..9c3b551 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientMapper.java
@@ -47,6 +47,13 @@
     Long getAreaCodeByNum(@Param("clientNum") String clientNum);
 
     /**
+     * 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤
+     * @param clientId
+     * @return
+     */
+    Long getAreaCodeById(@Param("clientId") Long clientId);
+
+    /**
      * 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID
      * @param clientNum
      * @return
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
index ed531ba..f7f99ee 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaUser.java
@@ -67,7 +67,7 @@
     @Schema(description = "濮撳悕", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotEmpty(message = "濮撳悕涓嶈兘涓虹┖") //涓嶈兘涓虹┖涔熶笉鑳戒负null
     @Length(message = "濮撳悕涓嶅ぇ浜巤max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 2, max = 25)
-    public String name;
+    public String userName;
 
     /**
      * 鎵嬫満鍙凤紝鎵嬫満鍙风敤浜庣櫥褰曠郴缁�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
index d9600e3..d31326a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java
@@ -122,6 +122,12 @@
     private Date reversaldt;
 
     /**
+     * 琛ユ墸鏃堕棿
+     */
+    @Schema(description = "琛ユ墸鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date refunddt;
+
+    /**
      * 娑堣垂鏃堕棿
      */
     @Schema(description = "娑堣垂鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java
index 0dd1eb3..13c7ca4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoUserInfo.java
@@ -21,7 +21,7 @@
     private static final long serialVersionUID = 1L;
 
     @Schema(title = "鐢ㄦ埛ID")
-    private Long userId;
+    private String userId;
 
     @Schema(title = "鐢ㄦ埛濮撳悕")
     private String userName;
@@ -30,7 +30,7 @@
     private String phone;
 
     @Schema(title = "鐗囧尯ID")
-    private Long blockId;
+    private String blockId;
 
     @Schema(title = "鐗囧尯鍚嶇О")
     private String blockName;
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
index c49501a..9cc43ba 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -8,7 +8,7 @@
         <!--@Table ba_user-->
         <id property="id" column="id" />
         <result property="blockId" column="blockId"/>
-        <result property="name" column="name"/>
+        <result property="userName" column="name"/>
         <result property="phone" column="phone"/>
         <result property="password" column="password"/>
         <result property="orgTag" column="orgTag"/>
@@ -21,7 +21,7 @@
         <!--@mbg.generated-->
         <!--@Table ba_user-->
         <id property="id" column="id" />
-        <result property="name" column="name"/>
+        <result property="userName" column="name"/>
         <result property="phone" column="phone"/>
         <result property="orgTag" column="orgTag"/>
         <result property="supperAdmin" column="supperAdmin"/>
@@ -31,7 +31,7 @@
     <resultMap id="loginResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaUser">
         <id property="id" column="id" />
         <result property="blockId" column="blockId"/>
-        <result property="name" column="name"/>
+        <result property="userName" column="name"/>
         <result property="phone" column="phone"/>
         <result property="orgTag" column="orgTag"/>
         <result property="supperAdmin" column="supperAdmin"/>
@@ -102,7 +102,7 @@
         insert into ba_user (<include refid="Base_Column_List" />)
         values (#{id,jdbcType=BIGINT},
         #{blockId,jdbcType=BIGINT},
-        #{name,jdbcType=VARCHAR},
+        #{userName,jdbcType=VARCHAR},
         #{phone,jdbcType=VARCHAR},
         #{password,jdbcType=VARCHAR},
         #{orgTag,jdbcType=VARCHAR},
@@ -120,7 +120,7 @@
             <if test="blockId != null">
                 blockId,
             </if>
-           <if test="name != null">
+           <if test="userName != null">
                 `name`,
             </if>
             <if test="phone != null">
@@ -149,8 +149,8 @@
             <if test="blockId != null">
                 #{blockId,jdbcType=BIGINT},
             </if>
-           <if test="name != null">
-                #{name,jdbcType=VARCHAR},
+           <if test="userName != null">
+                #{userName,jdbcType=VARCHAR},
             </if>
             <if test="phone != null">
                 #{phone,jdbcType=VARCHAR},
@@ -179,8 +179,8 @@
             <if test="blockId != null">
                 blockId = #{blockId,jdbcType=BIGINT},
             </if>
-           <if test="name != null">
-                `name` = #{name,jdbcType=VARCHAR},
+           <if test="userName != null">
+                `name` = #{userName,jdbcType=VARCHAR},
             </if>
             <if test="phone != null">
                 phone = #{phone,jdbcType=VARCHAR},
@@ -200,7 +200,7 @@
     <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaUser">
         update ba_user
         set blockId = #{blockId,jdbcType=BIGINT},
-        `name` = #{name,jdbcType=VARCHAR},
+        `name` = #{userName,jdbcType=VARCHAR},
         phone = #{phone,jdbcType=VARCHAR},
         password = #{password,jdbcType=VARCHAR},
         disabled = #{disabled,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT},
@@ -284,7 +284,7 @@
     <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐢ㄦ埛鍒楄〃-->
     <select id="getUsers" resultType="com.dy.pipIrrGlobal.voBa.VoUserInfo">
         SELECT
-            id AS userId,
+            CAST(id AS char) AS userId,
             phone,
             name AS userName,
             disabled AS stateId,
@@ -292,7 +292,7 @@
                  WHEN disabled = 0 THEN "姝e父"
                  WHEN disabled = 1 THEN "宸茬鐢�"
                 END) AS stateName,
-            blockId,
+            CAST(blockId AS char) AS blockId,
             (SELECT name FROM ba_block WHERE id = user.blockId) AS blockName
         FROM ba_user user
             INNER JOIN ba_user_role usro ON usro.userId = user.id
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index e5bb9af..b84d83e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -17,14 +17,15 @@
     <result column="cancelDt" jdbcType="TIMESTAMP" property="canceldt" />
     <result column="unlockDt" jdbcType="TIMESTAMP" property="unlockdt" />
     <result column="reversalDt" jdbcType="TIMESTAMP" property="reversaldt" />
+    <result column="refundDt" jdbcType="TIMESTAMP" property="refunddt" />
     <result column="consumeDt" jdbcType="TIMESTAMP" property="consumedt" />
     <result column="lastOper" jdbcType="TINYINT" property="lastoper" />
     <result column="remarks" jdbcType="VARCHAR" property="remarks" />
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardAddr, cardNum, clientId, money, `state`, createDt, replaceDt, rechargeDt, 
-    lossDtDt, cancelDt, unlockDt, reversalDt, consumeDt, lastOper, remarks
+    id, cardAddr, cardNum, clientId, money, `state`, createDt, replaceDt, rechargeDt,
+    lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, lastOper, remarks
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -76,14 +77,14 @@
     insert into se_client_card (id, cardAddr, cardNum, clientId,
       money, `state`, createDt, 
       replaceDt, rechargeDt, lossDtDt, 
-      cancelDt, unlockDt, reversalDt, 
+      cancelDt, unlockDt, reversalDt, refundDt,
       consumeDt, lastOper, remarks
       )
     values (#{id,jdbcType=BIGINT}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
       #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{createdt,jdbcType=TIMESTAMP}, 
       #{replacedt,jdbcType=TIMESTAMP}, #{rechargedt,jdbcType=TIMESTAMP}, #{lossdtdt,jdbcType=TIMESTAMP}, 
-      #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP}, 
-      #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}
+      #{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP},
+      #{refunddt,jdbcType=TIMESTAMP}, #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}
       )
 
   </insert>
@@ -126,6 +127,9 @@
       </if>
       <if test="reversaldt != null">
         reversalDt,
+      </if>
+      <if test="refunddt != null">
+        refundDt,
       </if>
       <if test="consumedt != null">
         consumeDt,
@@ -173,6 +177,9 @@
       </if>
       <if test="reversaldt != null">
         #{reversaldt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="refunddt != null">
+        #{refunddt,jdbcType=TIMESTAMP},
       </if>
       <if test="consumedt != null">
         #{consumedt,jdbcType=TIMESTAMP},
@@ -225,6 +232,9 @@
       <if test="reversaldt != null">
         reversalDt = #{reversaldt,jdbcType=TIMESTAMP},
       </if>
+      <if test="refunddt != null">
+        refundDt = #{refunddt,jdbcType=TIMESTAMP},
+      </if>
       <if test="consumedt != null">
         consumeDt = #{consumedt,jdbcType=TIMESTAMP},
       </if>
@@ -252,6 +262,7 @@
       cancelDt = #{canceldt,jdbcType=TIMESTAMP},
       unlockDt = #{unlockdt,jdbcType=TIMESTAMP},
       reversalDt = #{reversaldt,jdbcType=TIMESTAMP},
+      refundDt = #{refunddt,jdbcType=TIMESTAMP},
       consumeDt = #{consumedt,jdbcType=TIMESTAMP},
       lastOper = #{lastoper,jdbcType=TINYINT},
       remarks = #{remarks,jdbcType=VARCHAR}
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 c41166f..244dd55 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -394,6 +394,11 @@
     SELECT districtNum FROM se_client WHERE clientNum = ${clientNum}
   </select>
 
+  <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤-->
+  <select id="getAreaCodeById" resultType="java.lang.Long">
+    SELECT districtNum FROM se_client WHERE id = ${clientId}
+  </select>
+
   <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID-->
   <select id="getClientIdByNum" resultType="java.lang.Long">
     SELECT id FROM se_client WHERE clientNum = ${clientNum}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java
index fc185ae..94bbe67 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java
@@ -21,7 +21,8 @@
     ROLE_NAME_EXIST(10003, "瑙掕壊鍚嶇О宸插瓨鍦�"),
     NO_ROLES(10004, "娌℃湁绗﹀悎鏉′欢鐨勮鑹茶褰�"),
     PLEASE_INPUT_ROLE_ID(10005, "瑙掕壊缂栧彿涓嶈兘涓虹┖"),
-    DELETE_ROLE_FAIL(10006, "鍒犻櫎瑙掕壊澶辫触");
+    DELETE_ROLE_FAIL(10006, "鍒犻櫎瑙掕壊澶辫触"),
+    USER_NOT_EXIST(10007, "鍒犻櫎鐨勭敤鎴蜂笉瀛樺湪");
 
     private final Integer code;
     private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java
index 86e6440..2a1b61d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserCtrl.java
@@ -9,6 +9,7 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrBase.result.SystemResultCode;
 import com.dy.pipIrrGlobal.pojoBa.BaUser;
 import com.dy.pipIrrGlobal.util.Constant;
 import com.dy.pipIrrGlobal.voBa.VoUserInfo;
@@ -469,7 +470,7 @@
             return BaseResponseUtils.buildException(e.getMessage());
         }
         if (count <= 0) {
-            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
+            return BaseResponseUtils.buildFail(SystemResultCode.USER_NOT_EXIST.getMessage());
         } else {
             return BaseResponseUtils.buildSuccess(true);
         }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java
index 4708b90..afe4e62 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/user/UserSv.java
@@ -87,10 +87,10 @@
         if(list_users.size() > 0) {
             for(int i = 0; i < list_users.size(); i++) {
                 VoUserInfo voUserInfo = list_users.get(i);
-                Long userId = voUserInfo.getUserId();
+                String userId = voUserInfo.getUserId();
 
                 JSONArray array_roleIds = new JSONArray();
-                List<Map<String, Object>> list_roleIds = Optional.ofNullable(this.dao.getRoleIdsByUserId(userId)).orElse(new ArrayList<>());
+                List<Map<String, Object>> list_roleIds = Optional.ofNullable(this.dao.getRoleIdsByUserId(Long.parseLong(userId))).orElse(new ArrayList<>());
                 for (int j = 0; j < list_roleIds.size(); j++) {
                     Map map_roleId = list_roleIds.get(j);
                     if(map_roleId != null) {
@@ -101,7 +101,7 @@
                 List<Map<String, Object>> list_roleId = (List<Map<String, Object>>) JSON.parse(array_roleIds.toJSONString());
 
                 JSONArray array_roleNames = new JSONArray();
-                List<Map<String, Object>> list_roleNames = Optional.ofNullable(this.dao.getRoleNamesByUserId(userId)).orElse(new ArrayList<>());
+                List<Map<String, Object>> list_roleNames = Optional.ofNullable(this.dao.getRoleNamesByUserId(Long.parseLong(userId))).orElse(new ArrayList<>());
                 for (int j = 0; j < list_roleNames.size(); j++) {
                     Map map_roleName = list_roleNames.get(j);
                     if(map_roleName != null) {
@@ -227,7 +227,7 @@
         JSONArray array_permission = new JSONArray();
         Map map = Optional.ofNullable(dao.getUserInfoById(userId)).orElse(new HashMap());
         if(map.size() > 0) {
-            voUserInfo.setUserId(userId);
+            voUserInfo.setUserId(String.valueOf(userId));
             voUserInfo.setUserName(map.get("userName").toString());
         }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
index a6ead7d..5a85dee 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
@@ -169,7 +169,7 @@
                 (password != null && !password.trim().equals("")) &&
                 supperAdmin != null){
             BaUser po = new BaUser() ;
-            po.name = name ;
+            po.userName = name ;
             po.phone = phone ;
             po.password = MD5.encrypt(password) ;//杩涜鍔犲瘑鐮� ;
             po.orgTag = orgTag ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
index 592df3a..94f9336 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -193,75 +193,79 @@
     @PostMapping(path = "reissue", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add_reissue(@RequestBody @Valid com.dy.pipIrrSell.activeCard.DtoActiveCard po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_reissue(@RequestBody @Valid DtoReissue po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
-         * cardId           姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾洿鏂版按鍗¤〃鐢級
-         * cardNum          姘村崱缂栧彿
-         * clientId         鍐滄埛ID锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾坊鍔犺ˉ鍗′娇鐢級
+         * cardAddr         鏂扮殑姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級
+         * clientNum        鍐滄埛缂栧彿锛屽紑鏂板崱浣跨敤锛岄�氳繃鑰佸崱鍙疯幏鍙�
+         * cardNum          姘村崱缂栧彿锛屼紶鍏ョ殑鏄�佸崱鍙凤紝杩斿洖鐨勬槸鏂板崱鍙�
+         * moeny            浣欓锛屾寕澶辨椂浣跨敤
          * cardCost         鍗$墖璐圭敤
-         * reissueAmount    琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤
          * paymentId        鏀粯鏂瑰紡缂栧彿
          * remarks          澶囨敞
          * operator         鎿嶄綔浜虹紪鍙�
-         * activeTime       琛ュ崱鏃堕棿
          */
-        Long cardId = 0L;
-        Long clientId = 0L;
+
+        String cardAddr = po.getCardAddr();
+        String clientNum = "";
         String cardNum = po.getCardNum();
+        Float money = po.getMoney();
         Integer cardCost = po.getCardCost();
-        Float reissueAmount = po.getReissueAmount();
         Long paymentId = po.getPaymentId();
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
-        Date reissueTime = new Date();
 
         /**
          * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
          */
         Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
         if(map == null || map.size() <= 0) {
-            return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_ERROR.getMessage());
+            return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage());
         }
-        cardId = Long.parseLong(map.get("cardId").toString());
-        clientId = Long.parseLong(map.get("clientId").toString());
+        clientNum = map.get("clientNum").toString();
 
         /**
-         * 淇敼鍐滄埛鍗′俊鎭細
-         *      琛ュ崱鏃堕棿
-         *      鏈�鍚庢搷浣滅被鍨�-2
+         * 娣诲姞鎸傚け璁板綍
          */
-        SeClientCard seClientCard = new SeClientCard();
-        seClientCard.setId(cardId);
-        seClientCard.setReplacedt(reissueTime);
-        seClientCard.setLastoper(LastOperateENUM.REPLACE.getCode());
-        Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0);
-        if(rec_updateClientCard == 0) {
-            return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage());
-        }
+        DtoLoss dtoLoss = new DtoLoss();
+        dtoLoss.setCardNum(cardNum);
+        dtoLoss.setMoney(money);
+        dtoLoss.setRefund(0f);
+        dtoLoss.setRemarks(remarks);
+        dtoLoss.setOperator(operator);
+        BaseResponse<java.lang.Boolean> baseResponse_addLoss = this.add_loss(dtoLoss, null);
 
-        /**
-         * 娣诲姞琛ュ崱璁板綍
-         */
-        SeCardOperate seCardOperate = new SeCardOperate();
-        seCardOperate.setCardId(cardId);
-        seCardOperate.setClientId(clientId);
-        seCardOperate.setCardCost(cardCost);
-        seCardOperate.setPaymentId(paymentId);
-        seCardOperate.setNoTradeAmount(reissueAmount);
-        seCardOperate.setOperateType(OperateTypeENUM.REISSUE.getCode());
-        seCardOperate.setRemarks(remarks);
-        seCardOperate.setOperator(operator);
-        seCardOperate.setOperateDt(reissueTime);
-        Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L);
-        if(rec == 0) {
+        if(!baseResponse_addLoss.getCode().equals("0001")) {
             return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
         }
 
-        return BaseResponseUtils.buildSuccess(true) ;
+        /**
+         * 娣诲姞寮�鍗¤褰�
+         */
+        DtoActiveCard dtoActiveCard = new DtoActiveCard();
+        dtoActiveCard.setCardAddr(cardAddr);
+        dtoActiveCard.setClientNum(clientNum);
+        dtoActiveCard.setCardCost(cardCost);
+        dtoActiveCard.setAmount(0f);
+        dtoActiveCard.setPaymentId(paymentId);
+        dtoActiveCard.setRemarks(remarks);
+        dtoActiveCard.setOperator(operator);
+        BaseResponse<java.lang.Boolean> baseResponse_addActive = add_active(dtoActiveCard, null);
+
+        if(!baseResponse_addActive.getCode().equals("0001")) {
+            return BaseResponseUtils.buildFail(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
+        }
+
+        String theContent = String.valueOf(baseResponse_addActive.getContent());
+        cardNum = theContent.substring(theContent.indexOf("=") + 1, theContent.indexOf(","));
+
+        Map map_response = new HashMap();
+        map_response.put("projectCode", Constant.projectCode_ym);
+        map_response.put("cardNum", cardNum);
+        return BaseResponseUtils.buildSuccess(map_response) ;
     }
 
     /**
@@ -282,7 +286,7 @@
     @PostMapping(path = "recharge", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_recharge(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
@@ -307,7 +311,7 @@
     @PostMapping(path = "cancel", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add(@RequestBody @Valid DtoCancel po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_cancel(@RequestBody @Valid DtoCancel po, BindingResult bindingResult){
         DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
@@ -396,7 +400,7 @@
     @PostMapping(path = "loss", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add(@RequestBody @Valid DtoLoss po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_loss(@RequestBody @Valid DtoLoss po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
@@ -466,6 +470,12 @@
         return BaseResponseUtils.buildSuccess(true) ;
     }
 
+    /**
+     * 鍐叉
+     * @param po
+     * @param bindingResult
+     * @return
+     */
     @Operation(summary = "娣诲姞鍐叉璁板綍", description = "娣诲姞鍐叉璁板綍")
     @ApiResponses(value = {
             @ApiResponse(
@@ -478,7 +488,7 @@
     @PostMapping(path = "reversal", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add(@RequestBody @Valid DtoReversal po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_reversal(@RequestBody @Valid DtoReversal po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
@@ -547,4 +557,176 @@
         return BaseResponseUtils.buildSuccess(true) ;
     }
 
+    /**
+     * 琛ユ墸
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @Operation(summary = "琛ユ墸", description = "琛ユ墸")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "refund", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add_refund(@RequestBody @Valid DtoRefund po, BindingResult bindingResult){
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        /**
+         * cardId           姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屼慨鏀瑰啘鎴峰崱浣跨敤锛�
+         * clientId         鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛�
+         * cardNum          姘村崱缂栧彿
+         * money            鍗$墖浣欓
+         * refund           琛ユ墸浣欓
+         * remarks          澶囨敞
+         * operator         鎿嶄綔浜虹紪鍙�
+         * refundTime       琛ユ墸鏃堕棿
+         */
+        Long cardId = 0L;
+        Long clientId = 0L;
+        String cardNum = po.getCardNum();
+        Float money = po.getMoney();
+        Float refund = po.getRefund();
+        String remarks = po.getRemarks();
+        Long operator = po.getOperator();
+        Date refundTime = new Date();
+
+        /**
+         * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+         */
+        Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+        if(map == null || map.size() <= 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage());
+        }
+        cardId = Long.parseLong(map.get("cardId").toString());
+        clientId = Long.parseLong(map.get("clientId").toString());
+
+        /**
+         * 淇敼鍐滄埛鍗′俊鎭細
+         *      鎸傚け鏃堕棿
+         *      鏈�鍚庢搷浣滅被鍨�-4
+         */
+        SeClientCard seClientCard = new SeClientCard();
+        seClientCard.setId(cardId);
+        seClientCard.setRefunddt(refundTime);
+        seClientCard.setMoney(money + refund);
+        seClientCard.setLastoper(LastOperateENUM.REFUND.getCode());
+        Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0);
+        if(rec_updateClientCard == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage());
+        }
+
+        /**
+         * 娣诲姞琛ユ墸璁板綍
+         */
+        SeCardOperate seCardOperate = new SeCardOperate();
+        seCardOperate.setCardId(cardId);
+        seCardOperate.setClientId(clientId);
+        seCardOperate.setMoney(money);
+        seCardOperate.setNoTradeAmount(refund);
+        seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode());
+        seCardOperate.setRemarks(remarks);
+        seCardOperate.setOperator(operator);
+        seCardOperate.setOperateDt(refundTime);
+        Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.REFUND_FAIL_WRITE_REFUND_ERROR.getMessage());
+        }
+
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+
+    /**
+     * 瑙i攣
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @Operation(summary = "娣诲姞瑙i攣璁板綍", description = "娣诲姞瑙i攣璁板綍")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = Boolean.class))}
+            )
+    })
+    @PostMapping(path = "unlock", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> add_unlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult){
+        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        /**
+         * cardId           姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardAddr鍙嶆煡锛屼慨鏀瑰啘鎴峰崱浣跨敤锛�
+         * clientId         鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛�
+         * cardNum          姘村崱鍦板潃
+         * money            浣欓
+         * remarks          澶囨敞
+         * operator         鎿嶄綔浜虹紪鍙�
+         * unlockTime       瑙i攣鏃堕棿
+         */
+        Long cardId = 0L;
+        Long clientId = 0L;
+        String cardNum = po.getCardNum();
+        Float money = po.getMoney();
+        String remarks = po.getRemarks();
+        Long operator = po.getOperator();
+        Date unlockTime = new Date();
+
+        /**
+         * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+         */
+        Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+        if(map == null || map.size() <= 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.CARD_NUMBER_MISTAKE.getMessage());
+        }
+        cardId = Long.parseLong(map.get("cardId").toString());
+        clientId = Long.parseLong(map.get("clientId").toString());
+
+        /**
+         * 淇敼鍐滄埛鍗′俊鎭細
+         *      鎸傚け鏃堕棿
+         *      鏈�鍚庢搷浣滅被鍨�-4
+         */
+        SeClientCard seClientCard = new SeClientCard();
+        seClientCard.setId(cardId);
+        seClientCard.setUnlockdt(unlockTime);
+        seClientCard.setMoney(money);
+        seClientCard.setState(CardStateENUM.NORMAL.getCode());
+        seClientCard.setLastoper(LastOperateENUM.UNLOCK.getCode());
+        Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0);
+        if(rec_updateClientCard == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.UNLOCK_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage());
+        }
+
+        /**
+         * 娣诲姞瑙i攣璁板綍
+         */
+        SeCardOperate seCardOperate = new SeCardOperate();
+        seCardOperate.setCardId(cardId);
+        seCardOperate.setClientId(clientId);
+        seCardOperate.setMoney(money);
+        seCardOperate.setOperateType(OperateTypeENUM.UNLOCK.getCode());
+        seCardOperate.setRemarks(remarks);
+        seCardOperate.setOperator(operator);
+        seCardOperate.setOperateDt(unlockTime);
+        Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail(SellResultCode.UNLOCK_FAIL_WRITE_UNLOCK_ERROR.getMessage());
+        }
+
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
index 2ae05b5..f92a9f6 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -64,6 +64,14 @@
     }
 
     /**
+     * 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤
+     * @param clientId
+     * @return
+     */
+    public Long getAreaCodeById(Long clientId) {
+        return seClientMapper.getAreaCodeById(clientId);
+    }
+    /**
      * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙凤紝寮�鍗′娇鐢�
      * @param areaCode
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java
index 4f8f7ad..2be38ca 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoActiveCard.java
@@ -18,7 +18,7 @@
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
-@Schema(name = "寮�鍗�/琛ュ崱浼犲叆瀵硅薄")
+@Schema(name = "寮�鍗′紶鍏ュ璞�")
 public class DtoActiveCard {
     public static final long serialVersionUID = 202401181945001L;
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java
new file mode 100644
index 0000000..be52da2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java
@@ -0,0 +1,58 @@
+package com.dy.pipIrrSell.cardOperate.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Positive;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-19 18:35
+ * @LastEditTime 2024-01-19 18:35
+ * @Description
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "琛ユ墸浼犲叆瀵硅薄")
+public class DtoRefund {
+    public static final long serialVersionUID = 202401191836001L;
+
+    /**
+     * 姘村崱缂栧彿
+     */
+    @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+    private String cardNum;
+
+    /**
+     * 鍗$墖浣欓
+     */
+    @Schema(description = "鍗$墖浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Min(value = 0, message="鍗$墖浣欓涓嶈兘灏忎簬0")
+    private Float money;
+
+    /**
+     * 琛ュ崱閲戦
+     */
+    @Schema(description = "琛ュ崱閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Min(value = 0, message="琛ュ崱閲戦涓嶈兘灏忎簬0")
+    private Float refund;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReissue.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReissue.java
new file mode 100644
index 0000000..eb52aa5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoReissue.java
@@ -0,0 +1,89 @@
+package com.dy.pipIrrSell.cardOperate.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Positive;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-19 20:43
+ * @LastEditTime 2024-01-19 20:43
+ * @Description
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "琛ュ崱浼犲叆瀵硅薄")
+public class DtoReissue {
+    public static final long serialVersionUID = 202401192044001L;
+    /**
+     * 姘村崱鍦板潃锛屼粎淇濆瓨锛屾棤涓氬姟
+     */
+    @Schema(description = "姘村崱鍦板潃", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotBlank(message = "姘村崱鍦板潃涓嶈兘涓虹┖")
+    private String cardAddr;
+
+    ///**
+    // * 鍐滄埛缂栧彿锛屽紑鍗′娇鐢�
+    // */
+    //@Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    //private String clientNum;
+
+    /**
+     * 鍐滄埛ID锛堜富閿級锛屼笉鏄紑鍗℃帴鍙d紶鍏ワ紝鐢卞啘鎴风紪鍙疯幏寰楋紝淇濆瓨寮�鍗¤褰曞拰鍏呭�艰褰曢兘闇�瑕�
+     */
+    //@Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    //private Long clientId;
+
+    /**
+     * 姘村崱缂栧彿锛屼笉鏄紑鍗℃帴鍙d紶鍏ワ紝鐢卞啘鎴风紪鍙疯幏寰楋紝鍏呭�奸渶瑕�
+     */
+    @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String cardNum;
+
+    /**
+     * 閲戦
+     */
+    @Schema(description = "閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Min(value = 0, message="閲戦涓嶈兘灏忎簬0")
+    private Float money;
+
+    /**
+     * 鍗$墖璐圭敤
+     */
+    @Schema(description = "鍗$墖璐圭敤", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鍗$墖璐圭敤蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
+    private Integer cardCost;
+
+    /**
+     * 琛ュ崱閲戦锛屽紑鍗℃椂鍏呭�肩敤
+     */
+    //@Schema(description = "琛ュ崱閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    //@Min(value = 0, message="琛ュ崱閲戦涓嶈兘灏忎簬0")
+    //private Float reissueAmount;
+
+    /**
+     * 鏀粯鏂瑰紡缂栧彿
+     */
+    @Schema(description = "鏀粯鏂瑰紡缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鏀粯鏂瑰紡缂栧彿蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
+    private Long paymentId;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoUnlock.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoUnlock.java
new file mode 100644
index 0000000..8c849c0
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoUnlock.java
@@ -0,0 +1,57 @@
+package com.dy.pipIrrSell.cardOperate.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Positive;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-01-19 20:18
+ * @LastEditTime 2024-01-19 20:18
+ * @Description
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "瑙i攣浼犲叆瀵硅薄")
+public class DtoUnlock {
+    public static final long serialVersionUID = 202401192019001L;
+
+    /**
+     * 姘村崱缂栧彿
+     */
+    @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+    private String cardNum;
+
+    /**
+     * 鍐滄埛缂栧彿
+     */
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String clientNum;
+
+    /**
+     * 浣欓
+     */
+    @Schema(description = "浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Min(value = 0, message="浣欓涓嶈兘灏忎簬0")
+    private Float money;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String remarks;
+
+    /**
+     * 鎿嶄綔浜虹紪鍙�
+     */
+    @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�")
+    private Long operator;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java
index 595627b..f584ab5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java
@@ -20,7 +20,8 @@
     REFUND((byte)5, "琛ユ墸"),
     LOSS((byte)6, "鎸傚け"),
     REVERSAL((byte)7, "鍐叉"),
-    UNLOCK((byte)8, "瑙i攣");
+    UNLOCK((byte)8, "瑙i攣"),
+    CONSUME((byte)9, "娑堣垂");
 
     private final Byte code;
     private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java
index 46ee9d6..63b4107 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java
@@ -14,13 +14,14 @@
 @AllArgsConstructor
 public enum LastOperateENUM {
     ACTIVE((byte)1, "寮�鍗�"),
-    REPLACE((byte)2, "琛ュ崱"),
-    RECHARGE((byte)3, "鍏呭��"),
-    LOSS((byte)4, "鎸傚け"),
-    CANCEL((byte)5, "娉ㄩ攢"),
-    UNLOCK((byte)6, "瑙i攣"),
+    RECHARGE((byte)2, "鍏呭��"),
+    CANCEL((byte)3, "娉ㄩ攢"),
+    REPLACE((byte)4, "琛ュ崱"),
+    REFUND((byte)5, "琛ユ墸"),
+    LOSS((byte)6, "鎸傚け"),
     REVERSAL((byte)7, "鍐叉"),
-    CONSUME((byte)8, "娑堣垂");
+    UNLOCK((byte)8, "瑙i攣"),
+    CONSUME((byte)9, "娑堣垂");
 
     private final Byte code;
     private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
index 38c69da..cb938b5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
@@ -55,7 +55,12 @@
      * 鍐叉
      */
     REVERSAL_FAIL_WRITE_CLIENT_CARD_ERROR(60001, "鍐叉澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�"),
-    REVERSAL_FAIL_WRITE_REVERSAL_ERROR(60002, "鍐叉澶辫触-鍐叉璁板綍鍐欏叆寮傚父");
+    REVERSAL_FAIL_WRITE_REVERSAL_ERROR(60002, "鍐叉澶辫触-鍐叉璁板綍鍐欏叆寮傚父"),
+
+    /**
+     * 琛ユ墸
+     */
+    REFUND_FAIL_WRITE_REFUND_ERROR(70001, "琛ユ墸澶辫触-琛ユ墸璁板綍鍐欏叆寮傚父");
 
     private final Integer code;
     private final String message;

--
Gitblit v1.8.0