From 6eab5ecc0a1cf8bcf1ee999457104e2281e767d2 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 19 十二月 2023 15:57:40 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java        |    2 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java                |    9 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeClientCard.java                     |   77 +-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeActiveCardMapper.xml                               |  114 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeActiveCardMapper.java                |    7 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeHistoryMapper.xml                          |   58 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java                         |   65 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletCtrl.java            |  105 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeHistoryMapper.xml                    |  137 ++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaClientMapper.xml                                   |   16 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/RechargeDtoMapper.java |   28 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java                       |    9 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                               |  100 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java                  |   14 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletSv.java              |   79 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java                    |   10 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardSv.java      |   27 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java      |   21 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeHistoryMapper.java           |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/QueryVo.java           |    3 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoAreaCode.java                         |   33 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java    |  142 +++-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletMapper.xml                                   |   90 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java                |   28 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeHistoryMapper.java     |   23 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeMapper.java            |   23 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java     |   32 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWallet.java             |   29 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/DtoRecharge.java         |   12 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java          |   15 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml                                 |  135 ++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletMapper.java                    |   23 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeMapper.xml                           |  137 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWalletRecharge.java     |   50 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java                     |   21 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java          |  118 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/QueryVo.java             |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java        |   56 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java                 |  118 +++
 39 files changed, 1,628 insertions(+), 345 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java
index 5ce36ec..62567c7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaClientMapper.java
@@ -2,8 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoBa.BaClient;
-import com.dy.pipIrrGlobal.pojoBa.BaClientType;
+import com.dy.pipIrrGlobal.voBa.VoAreaCode;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -83,4 +84,11 @@
      */
     int deleteByPrimaryKey(Long id);
 
+
+    /**
+     * 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�
+     * @param clientNum 鍐滄埛缂栧彿
+     * @return 5绾ц鏀垮尯鍒掍唬鐮�
+     */
+    VoAreaCode getAreaCodeByNum(@Param("clientNum") String clientNum);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeActiveCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeActiveCardMapper.java
index 76fe002..590eee9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeActiveCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeActiveCardMapper.java
@@ -1,6 +1,5 @@
 package com.dy.pipIrrGlobal.daoSe;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeActiveCard;
 import com.dy.pipIrrGlobal.voSe.VoActiveCard;
 
@@ -9,11 +8,11 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2023/12/8 16:53
- * @LastEditTime 2023/12/8 16:53
+ * @date 2023/12/18 16:58
+ * @LastEditTime 2023/12/18 16:58
  * @Description
  */
-public interface SeActiveCardMapper extends BaseMapper<SeActiveCard> {
+public interface SeActiveCardMapper {
     int deleteByPrimaryKey(Long id);
 
     int insert(SeActiveCard record);
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
index 0e75827..6f16c9a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -3,10 +3,12 @@
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.Map;
+
 /**
  * @author ZhuBaoMin
- * @date 2023/12/7 9:06
- * @LastEditTime 2023/12/7 9:06
+ * @date 2023/12/18 16:26
+ * @LastEditTime 2023/12/18 16:26
  * @Description
  */
 public interface SeClientCardMapper {
@@ -23,10 +25,30 @@
     int updateByPrimaryKey(SeClientCard record);
 
     /**
-     * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛堜富閿級
+     * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級
      * @param cardAddr
      * @return
      */
     Long getCardIdByAddr(@Param("cardAddr") String cardAddr);
 
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�
+     * @param cardNum 16浣嶆按鍗$紪鍙�
+     * @return 姘村崱琛ㄤ富閿�
+     */
+    Long getCardIdByNum(@Param("cardNum") String cardNum);
+
+    /**
+     * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙�
+     * @param areaCode
+     * @return
+     */
+    String getCardNumOfMax(@Param("areaCode") String areaCode);
+
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+     * @param cardNum
+     * @return
+     */
+    Map getCardIdAndClientNum(@Param("cardNum") String cardNum);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeHistoryMapper.java
index 762650a..777395e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeHistoryMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeHistoryMapper.java
@@ -4,8 +4,8 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2023/12/8 15:25
- * @LastEditTime 2023/12/8 15:25
+ * @date 2023/12/19 10:35
+ * @LastEditTime 2023/12/19 10:35
  * @Description
  */
 public interface SeRechargeHistoryMapper {
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java
index 800666b..ef6d8b4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeRechargeMapper.java
@@ -9,8 +9,8 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2023/12/8 15:25
- * @LastEditTime 2023/12/8 15:25
+ * @date 2023/12/19 10:18
+ * @LastEditTime 2023/12/19 10:18
  * @Description
  */
 public interface SeRechargeMapper {
@@ -28,12 +28,18 @@
 
     Long getRecordCount(Map<?, ?> params);
 
+    /**
+     * 鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栧厖鍊艰褰�
+     * @param params
+     * @return
+     */
     List<VoRecharge> getRecharges(Map<?, ?> params);
 
     /**
      * 鏍规嵁姘村崱缂栧彿鍒犻櫎鍏呭�艰褰�
-     * @param cardId
+     * @param cardNum
      * @return
      */
-    Integer deleteByCardId(@Param("cardId") Long cardId);
+    //Integer deleteByCardId(@Param("cardId") Long cardId);
+    Integer deleteByCardNum(@Param("cardNum") String cardNum);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletMapper.java
new file mode 100644
index 0000000..33d48b5
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletMapper.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrGlobal.daoSe;
+
+import com.dy.pipIrrGlobal.pojoSe.SeWallet;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/11 16:29
+ * @LastEditTime 2023/12/11 16:29
+ * @Description
+ */
+public interface SeWalletMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(SeWallet record);
+
+    int insertSelective(SeWallet record);
+
+    SeWallet selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(SeWallet record);
+
+    int updateByPrimaryKey(SeWallet record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeHistoryMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeHistoryMapper.java
new file mode 100644
index 0000000..abeaa27
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeHistoryMapper.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrGlobal.daoSe;
+
+import com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/12 9:06
+ * @LastEditTime 2023/12/12 9:06
+ * @Description
+ */
+public interface SeWalletRechargeHistoryMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(SeWalletRechargeHistory record);
+
+    int insertSelective(SeWalletRechargeHistory record);
+
+    SeWalletRechargeHistory selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(SeWalletRechargeHistory record);
+
+    int updateByPrimaryKey(SeWalletRechargeHistory record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeMapper.java
new file mode 100644
index 0000000..84b5e3b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeWalletRechargeMapper.java
@@ -0,0 +1,23 @@
+package com.dy.pipIrrGlobal.daoSe;
+
+import com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/12 9:06
+ * @LastEditTime 2023/12/12 9:06
+ * @Description
+ */
+public interface SeWalletRechargeMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(SeWalletRecharge record);
+
+    int insertSelective(SeWalletRecharge record);
+
+    SeWalletRecharge selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(SeWalletRecharge record);
+
+    int updateByPrimaryKey(SeWalletRecharge record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java
index 3f2e028..cbd8165 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeActiveCard.java
@@ -9,6 +9,7 @@
 import io.swagger.v3.oas.annotations.media.Schema;
 import jakarta.validation.constraints.Max;
 import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.Positive;
 import lombok.*;
 import org.hibernate.validator.constraints.Length;
@@ -37,26 +38,26 @@
     public static final long serialVersionUID = 202312071927001L;
 
     /**
-    * 涓婚敭
-    */
+     * 涓婚敭
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long id;
 
     /**
-    * 姘村崱缂栧彿
-    */
+     * 姘村崱缂栧彿
+     */
     @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "姘村崱缂栧彿涓嶅皬浜巤min}", min = 1)
-    private Long cardid;
+    @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+    private String cardnum;
 
     /**
-    * 鍐滄埛缂栧彿
-    */
+     * 鍐滄埛缂栧彿
+     */
     @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "鍐滄埛缂栧彿涓嶅皬浜巤min}", min = 1)
-    private Long clientid;
+    @NotBlank(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private String clientnum;
 
     /**
      * 鍗$墖璐圭敤
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 ed592ae..c3df9c6 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
@@ -18,8 +18,8 @@
 /**
  * @author ZhuBaoMin
  * @date 2023/12/7 9:06
- * @LastEditTime 2023/12/7 9:06
- * @Description
+ * @LastEditTime 2023/12/18 10:14
+ * @Description 娣诲姞姘村崱缂栧彿锛坈ardnum锛夊瓧娈�
  */
 
 /**
@@ -37,100 +37,107 @@
     public static final long serialVersionUID = 1L;
 
     /**
-    * 涓婚敭
-    */
+     * 涓婚敭
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Long id;
 
     /**
-    * 姘村崱鍦板潃
-    */
+     * 姘村崱鍦板潃
+     */
     @Schema(description = "姘村崱鍦板潃", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotBlank(message = "姘村崱鍦板潃涓嶈兘涓虹┖")
     private String cardaddr;
 
     /**
-    * 鍐滄埛ID
-    */
-    @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鍐滄埛ID蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
-    private Long clientid;
+     * 姘村崱缂栧彿
+     */
+    @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+    private String cardnum;
 
     /**
-    * 浣欓
-    */
+     * 鍐滄埛缂栧彿
+     */
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotBlank(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private String clientnum;
+
+    /**
+     * 浣欓
+     */
     @Schema(description = "浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Double money;
 
     /**
-    * 鍗$墖鐘舵��;1-姝e父锛�2-宸叉敞閿�锛�3-宸叉寕澶�
-    */
+     * 鍗$墖鐘舵��;1-姝e父锛�2-宸叉敞閿�锛�3-宸叉寕澶�
+     */
     @Schema(description = "鍗$墖鐘舵��", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @Positive(message = "鍗$墖鐘舵�佸繀椤讳负1鎴�2鎴�3")
     @Size(min = 1, max = 3)
     private Byte state;
 
     /**
-    * 寮�鍗℃椂闂�
-    */
+     * 寮�鍗℃椂闂�
+     */
     @Schema(description = "寮�鍗℃椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date createdt;
 
     /**
-    * 琛ュ崱鏃堕棿
-    */
+     * 琛ュ崱鏃堕棿
+     */
     @Schema(description = "琛ュ崱鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date replacedt;
 
     /**
-    * 鍏呭�兼椂闂�
-    */
+     * 鍏呭�兼椂闂�
+     */
     @Schema(description = "鍏呭�兼椂闂�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date rechargedt;
 
     /**
-    * 鎸傚け鏃堕棿
-    */
+     * 鎸傚け鏃堕棿
+     */
     @Schema(description = "鎸傚け鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date lossdtdt;
 
     /**
-    * 娉ㄩ攢鏃堕棿
-    */
+     * 娉ㄩ攢鏃堕棿
+     */
     @Schema(description = "娉ㄩ攢鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date canceldt;
 
     /**
-    * 瑙i攣鏃堕棿
-    */
+     * 瑙i攣鏃堕棿
+     */
     @Schema(description = "瑙i攣鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date unlockdt;
 
     /**
-    * 鍐叉鏃堕棿
-    */
+     * 鍐叉鏃堕棿
+     */
     @Schema(description = "鍐叉鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date reversaldt;
 
     /**
-    * 娑堣垂鏃堕棿
-    */
+     * 娑堣垂鏃堕棿
+     */
     @Schema(description = "娑堣垂鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     private Date consumedt;
 
     /**
-    * 鏈�鍚庢搷浣滅被鍨�;1-寮�鍗★紝2-琛ュ崱锛�3-鍏呭�硷紝4-鎸傚け锛�5-娉ㄩ攢锛�6-瑙i攣锛�7-鍐叉锛�8-娑堣垂
-    */
+     * 鏈�鍚庢搷浣滅被鍨�;1-寮�鍗★紝2-琛ュ崱锛�3-鍏呭�硷紝4-鎸傚け锛�5-娉ㄩ攢锛�6-瑙i攣锛�7-鍐叉锛�8-娑堣垂
+     */
     @Schema(description = "鏈�鍚庢搷浣滅被鍨�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @Positive(message = "鍗$墖鐘舵�佸繀椤讳负1鍒�8鐨勬鏁存暟")
     @Size(min = 1, max = 8)
     private Byte lastoper;
 
     /**
-    * 澶囨敞淇℃伅
-    */
+     * 澶囨敞淇℃伅
+     */
     @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 1, max = 200)
     private String remarks;
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java
index f6a5237..d9fd9da 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRecharge.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dy.common.po.BaseEntity;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Positive;
 import lombok.*;
@@ -41,15 +42,15 @@
      * 姘村崱缂栧彿
      */
     @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "姘村崱缂栧彿涓嶅皬浜巤min}", min = 1)
-    private Long cardid;
+    @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+    private String cardnum;
 
     /**
      * 鍐滄埛缂栧彿
      */
     @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "鍐滄埛缂栧彿涓嶅皬浜巤min}", min = 1)
-    private Long clientid;
+    @NotBlank(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private String clientnum;
 
     /**
      * 鍗$墖浣欓
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java
index 680d892..2d222f9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeRechargeHistory.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dy.common.po.BaseEntity;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import jakarta.validation.constraints.Positive;
 import lombok.*;
@@ -47,15 +48,15 @@
      * 姘村崱缂栧彿
      */
     @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "姘村崱缂栧彿涓嶅皬浜巤min}", min = 1)
-    private Long cardid;
+    @NotBlank(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+    private String cardnum;
 
     /**
      * 鍐滄埛缂栧彿
      */
     @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Length(message = "鍐滄埛缂栧彿涓嶅皬浜巤min}", min = 1)
-    private Long clientid;
+    @NotBlank(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private String clientnum;
 
     /**
      * 鍗$墖浣欓
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java
new file mode 100644
index 0000000..1133e8d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWallet.java
@@ -0,0 +1,65 @@
+package com.dy.pipIrrGlobal.pojoSe;
+
+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 io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Positive;
+import lombok.*;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/11 16:29
+ * @LastEditTime 2023/12/11 16:29
+ * @Description
+ */
+
+/**
+ * 鐢靛瓙閽卞寘琛�
+ */
+
+@TableName(value="se_wallet", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鐢靛瓙閽卞寘琛ㄥ疄浣�")
+public class SeWallet implements BaseEntity {
+    public static final long serialVersionUID = 1L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    @Schema(description = "瀹炰綋id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Positive(message = "涓婚敭蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
+    private Long id;
+
+    /**
+    * 鐢ㄦ按鎴风紪鍙�
+    */
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Length(message = "鍐滄埛缂栧彿涓嶅皬浜巤min}", min = 1)
+    private Long clientid;
+
+    /**
+    * 閽卞寘浣欓
+    */
+    @Schema(description = "閽卞寘浣欓", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Length(message = "閽卞寘浣欓涓嶅皬浜巤min}", min = 0)
+    private Float money;
+
+    /**
+    * 鍒涘缓鏃堕棿
+    */
+    @Schema(description = "鍒涘缓鏃堕棿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private Date createdt;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java
new file mode 100644
index 0000000..842defc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRecharge.java
@@ -0,0 +1,118 @@
+package com.dy.pipIrrGlobal.pojoSe;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/12 9:06
+ * @LastEditTime 2023/12/12 9:06
+ * @Description
+ */
+/**
+    * 鐢靛瓙閽卞寘鍏呭�艰〃
+    */
+public class SeWalletRecharge {
+    /**
+    * 涓婚敭
+    */
+    private Long id;
+
+    /**
+    * 閽卞寘缂栧彿
+    */
+    private Long walletid;
+
+    /**
+    * 鍐滄埛缂栧彿
+    */
+    private Long clientid;
+
+    /**
+    * 閽卞寘浣欓
+    */
+    private Double money;
+
+    /**
+    * 鍏呭�奸噾棰�
+    */
+    private Double amount;
+
+    /**
+    * 鍏呭�煎悗浣欓
+    */
+    private Double afterrecharge;
+
+    /**
+    * 鍏呭�兼椂闂�
+    */
+    private Date rechargedt;
+
+    /**
+    * 澶囨敞淇℃伅
+    */
+    private String remarks;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getWalletid() {
+        return walletid;
+    }
+
+    public void setWalletid(Long walletid) {
+        this.walletid = walletid;
+    }
+
+    public Long getClientid() {
+        return clientid;
+    }
+
+    public void setClientid(Long clientid) {
+        this.clientid = clientid;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public Double getAfterrecharge() {
+        return afterrecharge;
+    }
+
+    public void setAfterrecharge(Double afterrecharge) {
+        this.afterrecharge = afterrecharge;
+    }
+
+    public Date getRechargedt() {
+        return rechargedt;
+    }
+
+    public void setRechargedt(Date rechargedt) {
+        this.rechargedt = rechargedt;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java
new file mode 100644
index 0000000..668c31a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeWalletRechargeHistory.java
@@ -0,0 +1,118 @@
+package com.dy.pipIrrGlobal.pojoSe;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/12 9:06
+ * @LastEditTime 2023/12/12 9:06
+ * @Description
+ */
+/**
+    * 鐢靛瓙閽卞寘鍏呭�煎巻鍙茶〃
+    */
+public class SeWalletRechargeHistory {
+    /**
+    * 涓婚敭
+    */
+    private Long id;
+
+    /**
+    * 閽卞寘缂栧彿
+    */
+    private Long walletid;
+
+    /**
+    * 鍐滄埛缂栧彿
+    */
+    private Long clientid;
+
+    /**
+    * 閽卞寘浣欓
+    */
+    private Double money;
+
+    /**
+    * 鍏呭�奸噾棰�
+    */
+    private Double amount;
+
+    /**
+    * 鍏呭�煎悗浣欓
+    */
+    private Double afterrecharge;
+
+    /**
+    * 鍏呭�兼椂闂�
+    */
+    private Date rechargedt;
+
+    /**
+    * 澶囨敞淇℃伅
+    */
+    private String remarks;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getWalletid() {
+        return walletid;
+    }
+
+    public void setWalletid(Long walletid) {
+        this.walletid = walletid;
+    }
+
+    public Long getClientid() {
+        return clientid;
+    }
+
+    public void setClientid(Long clientid) {
+        this.clientid = clientid;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public Double getAfterrecharge() {
+        return afterrecharge;
+    }
+
+    public void setAfterrecharge(Double afterrecharge) {
+        this.afterrecharge = afterrecharge;
+    }
+
+    public Date getRechargedt() {
+        return rechargedt;
+    }
+
+    public void setRechargedt(Date rechargedt) {
+        this.rechargedt = rechargedt;
+    }
+
+    public String getRemarks() {
+        return remarks;
+    }
+
+    public void setRemarks(String remarks) {
+        this.remarks = remarks;
+    }
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoAreaCode.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoAreaCode.java
new file mode 100644
index 0000000..20869d7
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoAreaCode.java
@@ -0,0 +1,33 @@
+package com.dy.pipIrrGlobal.voBa;
+
+import com.dy.common.po.BaseEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/18 14:32
+ * @LastEditTime 2023/12/18 14:32
+ * @Description
+ */
+
+@Data
+@Schema(title = "5绾ц鏀垮尯鍒掕鍥惧璞�")
+public class VoAreaCode implements BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    @Schema(title = "鐪佺骇鍖哄垝浠g爜")
+    private String provinceId;
+
+    @Schema(title = "甯傜骇鍖哄垝浠g爜")
+    private String cityId;
+
+    @Schema(title = "鍘跨骇鍖哄垝浠g爜")
+    private String countryId;
+
+    @Schema(title = "闀囩骇鍖哄垝浠g爜")
+    private String townId;
+
+    @Schema(title = "鏉戠骇鍖哄垝浠g爜")
+    private String villageId;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaClientMapper.xml
index bca158d..9d205f6 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaClientMapper.xml
@@ -336,4 +336,20 @@
         where id = #{id,jdbcType=BIGINT}
     </delete>
 
+    <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�-->
+    <select id="getAreaCodeByNum" resultType="com.dy.pipIrrGlobal.voBa.VoAreaCode">
+        SELECT
+            pro.num AS provinceId,
+            cit.num AS cityId,
+            con.num AS countryId,
+            tow.num AS townId,
+            vil.num AS villageId
+        FROM ba_client cli
+                 INNER JOIN ba_district con ON cli.countyId = con.id
+                 INNER JOIN ba_district tow ON cli.townId = tow.id
+                 INNER JOIN ba_district vil ON cli.villageId = vil.id
+                 INNER JOIN ba_district cit ON cit.id = con.supperId
+                 INNER JOIN ba_district pro ON pro.id = cit.supperId
+        WHERE cli.num = #{clientNum}
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeActiveCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeActiveCardMapper.xml
index 6ca1504..f84a50d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeActiveCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeActiveCardMapper.xml
@@ -5,8 +5,8 @@
     <!--@mbg.generated-->
     <!--@Table se_active_card-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="cardId" jdbcType="BIGINT" property="cardid" />
-    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="cardNum" jdbcType="VARCHAR" property="cardnum" />
+    <result column="clientNum" jdbcType="VARCHAR" property="clientnum" />
     <result column="cardCost" jdbcType="INTEGER" property="cardcost" />
     <result column="paymentId" jdbcType="BIGINT" property="paymentid" />
     <result column="reissueAmount" jdbcType="DOUBLE" property="reissueamount" />
@@ -17,8 +17,8 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardId, clientId, cardCost, paymentId, reissueAmount, operateType, remarks, `operator`, 
-    operateDt
+    id, cardNum, clientNum, cardCost, paymentId, reissueAmount, operateType, remarks, 
+    `operator`, operateDt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -35,40 +35,28 @@
 
   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeActiveCard">
     <!--@mbg.generated-->
-    insert into se_active_card (id, cardId, clientId, cardCost, paymentId, reissueAmount, operateType, remarks, `operator`, operateDt)
+    insert into se_active_card (id, cardNum, clientNum, cardCost, paymentId, reissueAmount, operateType, remarks, `operator`, operateDt)
     values (#{id,jdbcType=BIGINT},
-            #{cardid,jdbcType=BIGINT},
-            #{clientid,jdbcType=BIGINT},
-            #{cardcost,jdbcType=INTEGER},
-            #{paymentid,jdbcType=BIGINT},
-            #{reissueamount,jdbcType=DOUBLE},
-            #{operatetype,jdbcType=TINYINT},
-            #{remarks,jdbcType=VARCHAR},
-            #{operator,jdbcType=BIGINT},
-            #{operatedt,jdbcType=TIMESTAMP})
+    #{cardnum,jdbcType=VARCHAR},
+    #{clientnum,jdbcType=VARCHAR},
+    #{cardcost,jdbcType=INTEGER},
+    #{paymentid,jdbcType=BIGINT},
+    #{reissueamount,jdbcType=DOUBLE},
+    #{operatetype,jdbcType=TINYINT},
+    #{remarks,jdbcType=VARCHAR},
+    #{operator,jdbcType=BIGINT},
+    #{operatedt,jdbcType=TIMESTAMP})
   </insert>
-
-<!--  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeActiveCard" useGeneratedKeys="true">-->
-<!--    &lt;!&ndash;@mbg.generated&ndash;&gt;-->
-<!--    insert into se_active_card (cardId, clientId, cardCost, -->
-<!--      paymentId, reissueAmount, operateType, -->
-<!--      remarks, `operator`, operateDt-->
-<!--      )-->
-<!--    values (#{cardid,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT}, #{cardcost,jdbcType=INTEGER}, -->
-<!--      #{paymentid,jdbcType=BIGINT}, #{reissueamount,jdbcType=DOUBLE}, #{operatetype,jdbcType=TINYINT}, -->
-<!--      #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}-->
-<!--      )-->
-<!--  </insert>-->
 
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeActiveCard" useGeneratedKeys="true">
     <!--@mbg.generated-->
     insert into se_active_card
     <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="cardid != null">
-        cardId,
+      <if test="cardnum != null">
+        cardNum,
       </if>
-      <if test="clientid != null">
-        clientId,
+      <if test="clientnum != null">
+        clientNum,
       </if>
       <if test="cardcost != null">
         cardCost,
@@ -93,11 +81,11 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="cardid != null">
-        #{cardid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        #{cardnum,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        #{clientid,jdbcType=BIGINT},
+      <if test="clientnum != null">
+        #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="cardcost != null">
         #{cardcost,jdbcType=INTEGER},
@@ -126,11 +114,11 @@
     <!--@mbg.generated-->
     update se_active_card
     <set>
-      <if test="cardid != null">
-        cardId = #{cardid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        cardNum = #{cardnum,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        clientId = #{clientid,jdbcType=BIGINT},
+      <if test="clientnum != null">
+        clientNum = #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="cardcost != null">
         cardCost = #{cardcost,jdbcType=INTEGER},
@@ -159,8 +147,8 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeActiveCard">
     <!--@mbg.generated-->
     update se_active_card
-    set cardId = #{cardid,jdbcType=BIGINT},
-      clientId = #{clientid,jdbcType=BIGINT},
+    set cardNum = #{cardnum,jdbcType=VARCHAR},
+      clientNum = #{clientnum,jdbcType=VARCHAR},
       cardCost = #{cardcost,jdbcType=INTEGER},
       paymentId = #{paymentid,jdbcType=BIGINT},
       reissueAmount = #{reissueamount,jdbcType=DOUBLE},
@@ -176,9 +164,9 @@
     SELECT
         COUNT(*) AS recordCount
     FROM se_active_card act
-    INNER JOIN ba_client cli ON act.clientId = cli.id
-    INNER JOIN se_client_card card ON act.cardId = card.id
-    , (SELECT @i:=0) AS itable
+        INNER JOIN ba_client cli ON act.clientNum = cli.num
+        INNER JOIN se_client_card card ON act.cardNum = card.cardNum
+        , (SELECT @i:=0) AS itable
     <where>
       <if test = "operateType != null and operateType > 0">
         AND act.operateType = ${operateType}
@@ -188,8 +176,12 @@
         AND cli.name like CONCAT('%',#{clientName},'%')
       </if>
 
-      <if test = "cardAddr != null and cardAddr !=''">
-        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')
+      <!--      <if test = "cardAddr != null and cardAddr !=''">-->
+      <!--        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')-->
+      <!--      </if>-->
+
+      <if test = "cardNum != null and cardNum !=''">
+        AND card.cardNum like CONCAT('%',#{cardNum},'%')
       </if>
 
       <if test = "state != null and state > 0">
@@ -211,19 +203,19 @@
         card.cardAddr,
         card.state,
         (CASE
-            WHEN card.state = 1 THEN "姝e父"
-            WHEN card.state = 2 THEN "宸叉敞閿�"
-            ELSE "宸叉寕澶�"
+        WHEN card.state = 1 THEN "姝e父"
+        WHEN card.state = 2 THEN "宸叉敞閿�"
+        ELSE "宸叉寕澶�"
         END) AS stateName,
-      act.reissueAmount,
-      act.cardCost,
-      act.paymentId,
-      (SELECT `name` FROM ba_user WHERE id =  act.operator) AS operator,
-      act.operateDt
+        act.reissueAmount,
+        act.cardCost,
+        act.paymentId,
+        (SELECT `name` FROM ba_user WHERE id =  act.operator) AS operator,
+        act.operateDt
     FROM se_active_card act
-      INNER JOIN ba_client cli ON act.clientId = cli.id
-      INNER JOIN se_client_card card ON act.cardId = card.id
-      , (SELECT @i:=0) AS itable
+        INNER JOIN ba_client cli ON act.clientNum = cli.num
+        INNER JOIN se_client_card card ON act.cardNum = card.cardNum
+        , (SELECT @i:=0) AS itable
     <where>
       <if test = "operateType != null and operateType > 0">
         AND act.operateType = ${operateType}
@@ -233,8 +225,12 @@
         AND cli.name like CONCAT('%',#{clientName},'%')
       </if>
 
-      <if test = "cardAddr != null and cardAddr !=''">
-        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')
+<!--      <if test = "cardAddr != null and cardAddr !=''">-->
+<!--        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')-->
+<!--      </if>-->
+
+      <if test = "cardNum != null and cardNum !=''">
+        AND card.cardNum like CONCAT('%',#{cardNum},'%')
       </if>
 
       <if test = "state != null and state > 0">
@@ -245,7 +241,7 @@
         AND act.operateDt BETWEEN #{activeTimeStart} AND #{activeTimeStop}
       </if>
     </where>
-
+    ORDER BY act.operateDt DESC
     <if test="pageCurr != null and pageSize != null">
       LIMIT ${pageCurr}, ${pageSize}
     </if>
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 8acacf5..0b3cbec 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -6,7 +6,8 @@
     <!--@Table se_client_card-->
     <id column="id" jdbcType="BIGINT" property="id" />
     <result column="cardAddr" jdbcType="VARCHAR" property="cardaddr" />
-    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="cardNum" jdbcType="VARCHAR" property="cardnum" />
+    <result column="clientNum" jdbcType="VARCHAR" property="clientnum" />
     <result column="money" jdbcType="FLOAT" property="money" />
     <result column="state" jdbcType="TINYINT" property="state" />
     <result column="createDt" jdbcType="TIMESTAMP" property="createdt" />
@@ -22,8 +23,8 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardAddr, clientId, money, `state`, createDt, replaceDt, rechargeDt, lossDtDt, 
-    cancelDt, unlockDt, reversalDt, consumeDt, lastOper, remarks
+    id, cardAddr, cardNum, clientNum, money, `state`, createDt, replaceDt, rechargeDt, 
+    lossDtDt, cancelDt, unlockDt, reversalDt, consumeDt, lastOper, remarks
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     <!--@mbg.generated-->
@@ -38,44 +39,47 @@
     where id = #{id,jdbcType=BIGINT}
   </delete>
 
-  <!--渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛堜富閿級-->
+  <!--渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級-->
   <select id="getCardIdByAddr" resultType="java.lang.Long">
     SELECT id AS cardId FROM se_client_card WHERE cardAddr = #{cardAddr}
   </select>
 
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
-    <!--@mbg.generated-->
-    insert into se_client_card (id, cardAddr, clientId, money, `state`, createDt, replaceDt, rechargeDt, lossDtDt, cancelDt, unlockDt, reversalDt, consumeDt, lastOper, remarks)
-    values (#{id,jdbcType=BIGINT},
-            #{cardaddr,jdbcType=VARCHAR},
-            #{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})
-  </insert>
+  <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�-->
+  <select id="getCardIdByNum" resultType="java.lang.Long">
+    SELECT id AS cardId FROM se_client_card WHERE cardNum = #{cardNum}
+  </select>
 
-<!--  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard" useGeneratedKeys="true">-->
-<!--    &lt;!&ndash;@mbg.generated&ndash;&gt;-->
-<!--    insert into se_client_card (cardAddr, clientId, money, -->
-<!--      `state`, createDt, replaceDt, -->
-<!--      rechargeDt, lossDtDt, cancelDt, -->
-<!--      unlockDt, reversalDt, consumeDt, -->
-<!--      lastOper, remarks)-->
-<!--    values (#{cardaddr,jdbcType=VARCHAR}, #{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})-->
-<!--  </insert>-->
+  <!--鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿-->
+  <select id="getCardIdAndClientNum" resultType="java.util.Map">
+    SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}
+  </select>
+
+
+  <!--鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙�-->
+  <select id="getCardNumOfMax"  resultType="java.lang.String">
+    SELECT cardNum
+    FROM se_client_card
+    WHERE cardNum LIKE CONCAT('%',#{areaCode},'%')
+    ORDER BY cardNum desc
+    LIMIT 0,1
+  </select>
+
+  <!--娣诲姞姘村崱璁板綍-->
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard" useGeneratedKeys="true">
+    <!--@mbg.generated-->
+    insert into se_client_card (id, cardAddr, cardNum, clientNum,
+      money, `state`, createDt,
+      replaceDt, rechargeDt, lossDtDt,
+      cancelDt, unlockDt, reversalDt,
+      consumeDt, lastOper, remarks
+      )
+    values (#{id,jdbcType=BIGINT}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=VARCHAR}, #{clientnum,jdbcType=VARCHAR},
+      #{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}
+      )
+  </insert>
 
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard" useGeneratedKeys="true">
     <!--@mbg.generated-->
@@ -84,8 +88,11 @@
       <if test="cardaddr != null">
         cardAddr,
       </if>
-      <if test="clientid != null">
-        clientId,
+      <if test="cardnum != null">
+        cardNum,
+      </if>
+      <if test="clientnum != null">
+        clientNum,
       </if>
       <if test="money != null">
         money,
@@ -128,8 +135,11 @@
       <if test="cardaddr != null">
         #{cardaddr,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        #{clientid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        #{cardnum,jdbcType=VARCHAR},
+      </if>
+      <if test="clientnum != null">
+        #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="money != null">
         #{money,jdbcType=FLOAT},
@@ -176,8 +186,11 @@
       <if test="cardaddr != null">
         cardAddr = #{cardaddr,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        clientId = #{clientid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        cardNum = #{cardnum,jdbcType=VARCHAR},
+      </if>
+      <if test="clientnum != null">
+        clientNum = #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="money != null">
         money = #{money,jdbcType=FLOAT},
@@ -222,7 +235,8 @@
     <!--@mbg.generated-->
     update se_client_card
     set cardAddr = #{cardaddr,jdbcType=VARCHAR},
-      clientId = #{clientid,jdbcType=BIGINT},
+      cardNum = #{cardnum,jdbcType=VARCHAR},
+      clientNum = #{clientnum,jdbcType=VARCHAR},
       money = #{money,jdbcType=FLOAT},
       `state` = #{state,jdbcType=TINYINT},
       createDt = #{createdt,jdbcType=TIMESTAMP},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeHistoryMapper.xml
index 6ef17f6..b9424b3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeHistoryMapper.xml
@@ -5,8 +5,8 @@
     <!--@mbg.generated-->
     <!--@Table se_recharge_history-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="cardId" jdbcType="BIGINT" property="cardid" />
-    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="cardNum" jdbcType="VARCHAR" property="cardnum" />
+    <result column="clientNum" jdbcType="VARCHAR" property="clientnum" />
     <result column="money" jdbcType="FLOAT" property="money" />
     <result column="amount" jdbcType="FLOAT" property="amount" />
     <result column="gift" jdbcType="FLOAT" property="gift" />
@@ -19,7 +19,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardId, clientId, money, amount, gift, afterRecharge, paymentId, price, remarks, 
+    id, cardNum, clientNum, money, amount, gift, afterRecharge, paymentId, price, remarks, 
     `operator`, operateDt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -35,33 +35,27 @@
     where id = #{id,jdbcType=BIGINT}
   </delete>
 
-
-  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory" useGeneratedKeys="true">
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory">
     <!--@mbg.generated-->
-    insert into se_recharge_history (id, cardId, clientId, money, amount, gift, afterRecharge, paymentId, price, remarks, `operator`, operateDt)
-    values (#{id,jdbcType=BIGINT},
-            #{cardid,jdbcType=BIGINT},
-            #{clientid,jdbcType=BIGINT},
-            #{money,jdbcType=FLOAT},
-            #{amount,jdbcType=FLOAT},
-            #{gift,jdbcType=FLOAT},
-            #{afterrecharge,jdbcType=FLOAT},
-            #{paymentid,jdbcType=BIGINT},
-            #{price,jdbcType=FLOAT},
-            #{remarks,jdbcType=VARCHAR},
-            #{operator,jdbcType=BIGINT},
-            #{operatedt,jdbcType=TIMESTAMP})
+    insert into se_recharge_history (id, cardNum, clientNum, money,
+      amount, gift, afterRecharge, 
+      paymentId, price, remarks, 
+      `operator`, operateDt)
+    values (#{id,jdbcType=BIGINT}, #{cardnum,jdbcType=VARCHAR}, #{clientnum,jdbcType=VARCHAR}, #{money,jdbcType=FLOAT},
+      #{amount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{afterrecharge,jdbcType=FLOAT}, 
+      #{paymentid,jdbcType=BIGINT}, #{price,jdbcType=FLOAT}, #{remarks,jdbcType=VARCHAR}, 
+      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP})
   </insert>
 
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory" useGeneratedKeys="true">
     <!--@mbg.generated-->
     insert into se_recharge_history
     <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="cardid != null">
-        cardId,
+      <if test="cardnum != null">
+        cardNum,
       </if>
-      <if test="clientid != null">
-        clientId,
+      <if test="clientnum != null">
+        clientNum,
       </if>
       <if test="money != null">
         money,
@@ -92,11 +86,11 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="cardid != null">
-        #{cardid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        #{cardnum,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        #{clientid,jdbcType=BIGINT},
+      <if test="clientnum != null">
+        #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="money != null">
         #{money,jdbcType=FLOAT},
@@ -131,11 +125,11 @@
     <!--@mbg.generated-->
     update se_recharge_history
     <set>
-      <if test="cardid != null">
-        cardId = #{cardid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        cardNum = #{cardnum,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        clientId = #{clientid,jdbcType=BIGINT},
+      <if test="clientnum != null">
+        clientNum = #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="money != null">
         money = #{money,jdbcType=FLOAT},
@@ -170,8 +164,8 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory">
     <!--@mbg.generated-->
     update se_recharge_history
-    set cardId = #{cardid,jdbcType=BIGINT},
-      clientId = #{clientid,jdbcType=BIGINT},
+    set cardNum = #{cardnum,jdbcType=VARCHAR},
+      clientNum = #{clientnum,jdbcType=VARCHAR},
       money = #{money,jdbcType=FLOAT},
       amount = #{amount,jdbcType=FLOAT},
       gift = #{gift,jdbcType=FLOAT},
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml
index 7ebcb09..00fe845 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeRechargeMapper.xml
@@ -5,8 +5,8 @@
     <!--@mbg.generated-->
     <!--@Table se_recharge-->
     <id column="id" jdbcType="BIGINT" property="id" />
-    <result column="cardId" jdbcType="BIGINT" property="cardid" />
-    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="cardNum" jdbcType="VARCHAR" property="cardnum" />
+    <result column="clientNum" jdbcType="VARCHAR" property="clientnum" />
     <result column="money" jdbcType="FLOAT" property="money" />
     <result column="amount" jdbcType="FLOAT" property="amount" />
     <result column="gift" jdbcType="FLOAT" property="gift" />
@@ -19,7 +19,7 @@
   </resultMap>
   <sql id="Base_Column_List">
     <!--@mbg.generated-->
-    id, cardId, clientId, money, amount, gift, afterRecharge, paymentId, price, remarks, 
+    id, cardNum, clientNum, money, amount, gift, afterRecharge, paymentId, price, remarks, 
     `operator`, operateDt
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
@@ -35,44 +35,29 @@
     where id = #{id,jdbcType=BIGINT}
   </delete>
 
-  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRecharge">
+<!--  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRecharge" useGeneratedKeys="true">-->
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRecharge">
     <!--@mbg.generated-->
-    insert into se_recharge (id, cardId, clientId, money, amount, gift, afterRecharge, paymentId, price, remarks, `operator`, operateDt)
-    values (#{id,jdbcType=BIGINT},
-            #{cardid,jdbcType=BIGINT},
-            #{clientid,jdbcType=BIGINT},
-            #{money,jdbcType=FLOAT},
-            #{amount,jdbcType=FLOAT},
-            #{gift,jdbcType=FLOAT},
-            #{afterrecharge,jdbcType=FLOAT},
-            #{paymentid,jdbcType=BIGINT},
-            #{price,jdbcType=FLOAT},
-            #{remarks,jdbcType=VARCHAR},
-            #{operator,jdbcType=BIGINT},
-            #{operatedt,jdbcType=TIMESTAMP})
+    insert into se_recharge (id, cardNum, clientNum, money,
+      amount, gift, afterRecharge, 
+      paymentId, price, remarks, 
+      `operator`, operateDt)
+    values (#{id,jdbcType=BIGINT} ,#{cardnum,jdbcType=VARCHAR}, #{clientnum,jdbcType=VARCHAR}, #{money,jdbcType=FLOAT},
+      #{amount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{afterrecharge,jdbcType=FLOAT}, 
+      #{paymentid,jdbcType=BIGINT}, #{price,jdbcType=FLOAT}, #{remarks,jdbcType=VARCHAR}, 
+      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP})
   </insert>
 
-<!--  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRecharge" useGeneratedKeys="true">-->
-<!--    &lt;!&ndash;@mbg.generated&ndash;&gt;-->
-<!--    insert into se_recharge (cardId, clientId, money, -->
-<!--      amount, gift, afterRecharge, -->
-<!--      paymentId, price, remarks, -->
-<!--      `operator`, operateDt)-->
-<!--    values (#{cardid,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT}, #{money,jdbcType=FLOAT}, -->
-<!--      #{amount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{afterrecharge,jdbcType=FLOAT}, -->
-<!--      #{paymentid,jdbcType=BIGINT}, #{price,jdbcType=FLOAT}, #{remarks,jdbcType=VARCHAR}, -->
-<!--      #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP})-->
-<!--  </insert>-->
 
   <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRecharge" useGeneratedKeys="true">
     <!--@mbg.generated-->
     insert into se_recharge
     <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="cardid != null">
-        cardId,
+      <if test="cardnum != null">
+        cardNum,
       </if>
-      <if test="clientid != null">
-        clientId,
+      <if test="clientnum != null">
+        clientNum,
       </if>
       <if test="money != null">
         money,
@@ -103,11 +88,11 @@
       </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="cardid != null">
-        #{cardid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        #{cardnum,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        #{clientid,jdbcType=BIGINT},
+      <if test="clientnum != null">
+        #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="money != null">
         #{money,jdbcType=FLOAT},
@@ -142,11 +127,11 @@
     <!--@mbg.generated-->
     update se_recharge
     <set>
-      <if test="cardid != null">
-        cardId = #{cardid,jdbcType=BIGINT},
+      <if test="cardnum != null">
+        cardNum = #{cardnum,jdbcType=VARCHAR},
       </if>
-      <if test="clientid != null">
-        clientId = #{clientid,jdbcType=BIGINT},
+      <if test="clientnum != null">
+        clientNum = #{clientnum,jdbcType=VARCHAR},
       </if>
       <if test="money != null">
         money = #{money,jdbcType=FLOAT},
@@ -181,8 +166,8 @@
   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRecharge">
     <!--@mbg.generated-->
     update se_recharge
-    set cardId = #{cardid,jdbcType=BIGINT},
-      clientId = #{clientid,jdbcType=BIGINT},
+    set cardNum = #{cardnum,jdbcType=VARCHAR},
+      clientNum = #{clientnum,jdbcType=VARCHAR},
       money = #{money,jdbcType=FLOAT},
       amount = #{amount,jdbcType=FLOAT},
       gift = #{gift,jdbcType=FLOAT},
@@ -196,25 +181,35 @@
   </update>
 
   <!--鏍规嵁姘村崱缂栧彿鍒犻櫎鍏呭�艰褰�-->
-  <delete id="deleteByCardId" parameterType="java.lang.Long">
-    DELETE FROM	se_recharge WHERE cardId = ${cardId}
+  <delete id="deleteByCardNum" parameterType="java.lang.String">
+    DELETE FROM	se_recharge WHERE cardNum = #{cardNum}
   </delete>
 
   <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栧厖鍊艰褰�-->
   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     select
-    COUNT(*) AS recordCount
+        COUNT(*) AS recordCount
     FROM se_recharge_history rec
-    INNER JOIN se_client_card card ON rec.cardId = card.id
-    INNER JOIN ba_client cli ON rec.clientId = cli.id
+    INNER JOIN se_client_card card ON rec.cardNum = card.cardNum
+    INNER JOIN ba_client cli ON rec.clientNum = cli.num
     , (SELECT @i:=0) AS itable
     <where>
       <if test = "clientName != null and clientName !=''">
         AND cli.name like CONCAT('%',#{clientName},'%')
       </if>
 
-      <if test = "cardAddr != null and cardAddr !=''">
-        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')
+      <!--      <if test = "clientId != null and clientId > 0">-->
+      <!--        AND rec.clientId like CONCAT('%',#{clientId},'%')-->
+      <!--      </if>-->
+      <if test = "clientNum != null and clientNum > 0">
+        AND rec.clientNum like CONCAT('%',#{clientNum},'%')
+      </if>
+
+      <!--      <if test = "cardAddr != null and cardAddr !=''">-->
+      <!--        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')-->
+      <!--      </if>-->
+      <if test = "cardNum != null and cardNum !=''">
+        AND card.cardNum like CONCAT('%',#{cardNum},'%')
       </if>
 
       <if test = "paymentId != null and paymentId > 0">
@@ -230,27 +225,37 @@
   <!--鏍规嵁鎸囧畾鐨勬潯浠惰幏鍙栧厖鍊艰褰�-->
   <select id="getRecharges" resultType="com.dy.pipIrrGlobal.voSe.VoRecharge">
     SELECT
-    (@i:=@i+1) AS id,
-    cli.name AS clientName,
-    rec.clientId,
-    card.cardAddr,
-    rec.amount,
-    rec.afterRecharge,
-    rec.paymentId,
-    rec.price,
-    (SELECT `name` FROM ba_user WHERE id =  rec.operator) AS operator,
-    rec.operateDt
+        (@i:=@i+1) AS id,
+        cli.name AS clientName,
+        cli.num AS clientNum,
+        card.cardNum,
+        rec.amount,
+        rec.afterRecharge,
+        rec.paymentId,
+        rec.price,
+        (SELECT `name` FROM ba_user WHERE id =  rec.operator) AS operator,
+        rec.operateDt
     FROM se_recharge_history rec
-    INNER JOIN se_client_card card ON rec.cardId = card.id
-    INNER JOIN ba_client cli ON rec.clientId = cli.id
-    , (SELECT @i:=0) AS itable
+        INNER JOIN se_client_card card ON rec.cardNum = card.cardNum
+        INNER JOIN ba_client cli ON rec.clientNum = cli.num
+        , (SELECT @i:=0) AS itable
     <where>
       <if test = "clientName != null and clientName !=''">
         AND cli.name like CONCAT('%',#{clientName},'%')
       </if>
 
-      <if test = "cardAddr != null and cardAddr !=''">
-        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')
+<!--      <if test = "clientId != null and clientId > 0">-->
+<!--        AND rec.clientId like CONCAT('%',#{clientId},'%')-->
+<!--      </if>-->
+      <if test = "clientNum != null and clientNum > 0">
+        AND rec.clientNum like CONCAT('%',#{clientNum},'%')
+      </if>
+
+<!--      <if test = "cardAddr != null and cardAddr !=''">-->
+<!--        AND card.cardAddr like CONCAT('%',#{cardAddr},'%')-->
+<!--      </if>-->
+      <if test = "cardNum != null and cardNum !=''">
+        AND card.cardNum like CONCAT('%',#{cardNum},'%')
       </if>
 
       <if test = "paymentId != null and paymentId > 0">
@@ -261,7 +266,7 @@
         AND rec.operateDt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}
       </if>
     </where>
-
+    ORDER BY rec.operateDt DESC
     <if test="pageCurr != null and pageSize != null">
       LIMIT ${pageCurr}, ${pageSize}
     </if>
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletMapper.xml
new file mode 100644
index 0000000..0263487
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletMapper.xml
@@ -0,0 +1,90 @@
+<?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.SeWalletMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeWallet">
+    <!--@mbg.generated-->
+    <!--@Table se_wallet-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="money" jdbcType="FLOAT" property="money" />
+    <result column="createDt" jdbcType="TIMESTAMP" property="createdt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, clientId, money, createDt
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from se_wallet
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from se_wallet
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWallet">
+    <!--@mbg.generated-->
+    insert into se_wallet (id, clientId, money, createDt)
+    values (#{id,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT}, #{money,jdbcType=FLOAT}, 
+      #{createdt,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWallet">
+    <!--@mbg.generated-->
+    insert into se_wallet
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="clientid != null">
+        clientId,
+      </if>
+      <if test="money != null">
+        money,
+      </if>
+      <if test="createdt != null">
+        createDt,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="clientid != null">
+        #{clientid,jdbcType=BIGINT},
+      </if>
+      <if test="money != null">
+        #{money,jdbcType=FLOAT},
+      </if>
+      <if test="createdt != null">
+        #{createdt,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWallet">
+    <!--@mbg.generated-->
+    update se_wallet
+    <set>
+      <if test="clientid != null">
+        clientId = #{clientid,jdbcType=BIGINT},
+      </if>
+      <if test="money != null">
+        money = #{money,jdbcType=FLOAT},
+      </if>
+      <if test="createdt != null">
+        createDt = #{createdt,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWallet">
+    <!--@mbg.generated-->
+    update se_wallet
+    set clientId = #{clientid,jdbcType=BIGINT},
+      money = #{money,jdbcType=FLOAT},
+      createDt = #{createdt,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeHistoryMapper.xml
new file mode 100644
index 0000000..d8bfcb9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeHistoryMapper.xml
@@ -0,0 +1,137 @@
+<?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.SeWalletRechargeHistoryMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory">
+    <!--@mbg.generated-->
+    <!--@Table se_wallet_recharge_history-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="walletId" jdbcType="BIGINT" property="walletid" />
+    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="money" jdbcType="FLOAT" property="money" />
+    <result column="amount" jdbcType="FLOAT" property="amount" />
+    <result column="afterRecharge" jdbcType="FLOAT" property="afterrecharge" />
+    <result column="rechargeDt" jdbcType="TIMESTAMP" property="rechargedt" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, walletId, clientId, money, amount, afterRecharge, rechargeDt, remarks
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from se_wallet_recharge_history
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from se_wallet_recharge_history
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory">
+    <!--@mbg.generated-->
+    insert into se_wallet_recharge_history (id, walletId, clientId, 
+      money, amount, afterRecharge, 
+      rechargeDt, remarks)
+    values (#{id,jdbcType=BIGINT}, #{walletid,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT}, 
+      #{money,jdbcType=FLOAT}, #{amount,jdbcType=FLOAT}, #{afterrecharge,jdbcType=FLOAT}, 
+      #{rechargedt,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory">
+    <!--@mbg.generated-->
+    insert into se_wallet_recharge_history
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="walletid != null">
+        walletId,
+      </if>
+      <if test="clientid != null">
+        clientId,
+      </if>
+      <if test="money != null">
+        money,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="afterrecharge != null">
+        afterRecharge,
+      </if>
+      <if test="rechargedt != null">
+        rechargeDt,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="walletid != null">
+        #{walletid,jdbcType=BIGINT},
+      </if>
+      <if test="clientid != null">
+        #{clientid,jdbcType=BIGINT},
+      </if>
+      <if test="money != null">
+        #{money,jdbcType=FLOAT},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="afterrecharge != null">
+        #{afterrecharge,jdbcType=FLOAT},
+      </if>
+      <if test="rechargedt != null">
+        #{rechargedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory">
+    <!--@mbg.generated-->
+    update se_wallet_recharge_history
+    <set>
+      <if test="walletid != null">
+        walletId = #{walletid,jdbcType=BIGINT},
+      </if>
+      <if test="clientid != null">
+        clientId = #{clientid,jdbcType=BIGINT},
+      </if>
+      <if test="money != null">
+        money = #{money,jdbcType=FLOAT},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="afterrecharge != null">
+        afterRecharge = #{afterrecharge,jdbcType=FLOAT},
+      </if>
+      <if test="rechargedt != null">
+        rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory">
+    <!--@mbg.generated-->
+    update se_wallet_recharge_history
+    set walletId = #{walletid,jdbcType=BIGINT},
+      clientId = #{clientid,jdbcType=BIGINT},
+      money = #{money,jdbcType=FLOAT},
+      amount = #{amount,jdbcType=FLOAT},
+      afterRecharge = #{afterrecharge,jdbcType=FLOAT},
+      rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
+      remarks = #{remarks,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeMapper.xml
new file mode 100644
index 0000000..127bceb
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeWalletRechargeMapper.xml
@@ -0,0 +1,137 @@
+<?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.SeWalletRechargeMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge">
+    <!--@mbg.generated-->
+    <!--@Table se_wallet_recharge-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="walletId" jdbcType="BIGINT" property="walletid" />
+    <result column="clientId" jdbcType="BIGINT" property="clientid" />
+    <result column="money" jdbcType="FLOAT" property="money" />
+    <result column="amount" jdbcType="FLOAT" property="amount" />
+    <result column="afterRecharge" jdbcType="FLOAT" property="afterrecharge" />
+    <result column="rechargeDt" jdbcType="TIMESTAMP" property="rechargedt" />
+    <result column="remarks" jdbcType="VARCHAR" property="remarks" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, walletId, clientId, money, amount, afterRecharge, rechargeDt, remarks
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from se_wallet_recharge
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from se_wallet_recharge
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge">
+    <!--@mbg.generated-->
+    insert into se_wallet_recharge (id, walletId, clientId, 
+      money, amount, afterRecharge, 
+      rechargeDt, remarks)
+    values (#{id,jdbcType=BIGINT}, #{walletid,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT}, 
+      #{money,jdbcType=FLOAT}, #{amount,jdbcType=FLOAT}, #{afterrecharge,jdbcType=FLOAT}, 
+      #{rechargedt,jdbcType=TIMESTAMP}, #{remarks,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge">
+    <!--@mbg.generated-->
+    insert into se_wallet_recharge
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="walletid != null">
+        walletId,
+      </if>
+      <if test="clientid != null">
+        clientId,
+      </if>
+      <if test="money != null">
+        money,
+      </if>
+      <if test="amount != null">
+        amount,
+      </if>
+      <if test="afterrecharge != null">
+        afterRecharge,
+      </if>
+      <if test="rechargedt != null">
+        rechargeDt,
+      </if>
+      <if test="remarks != null">
+        remarks,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="walletid != null">
+        #{walletid,jdbcType=BIGINT},
+      </if>
+      <if test="clientid != null">
+        #{clientid,jdbcType=BIGINT},
+      </if>
+      <if test="money != null">
+        #{money,jdbcType=FLOAT},
+      </if>
+      <if test="amount != null">
+        #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="afterrecharge != null">
+        #{afterrecharge,jdbcType=FLOAT},
+      </if>
+      <if test="rechargedt != null">
+        #{rechargedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        #{remarks,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge">
+    <!--@mbg.generated-->
+    update se_wallet_recharge
+    <set>
+      <if test="walletid != null">
+        walletId = #{walletid,jdbcType=BIGINT},
+      </if>
+      <if test="clientid != null">
+        clientId = #{clientid,jdbcType=BIGINT},
+      </if>
+      <if test="money != null">
+        money = #{money,jdbcType=FLOAT},
+      </if>
+      <if test="amount != null">
+        amount = #{amount,jdbcType=FLOAT},
+      </if>
+      <if test="afterrecharge != null">
+        afterRecharge = #{afterrecharge,jdbcType=FLOAT},
+      </if>
+      <if test="rechargedt != null">
+        rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
+      </if>
+      <if test="remarks != null">
+        remarks = #{remarks,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeWalletRecharge">
+    <!--@mbg.generated-->
+    update se_wallet_recharge
+    set walletId = #{walletid,jdbcType=BIGINT},
+      clientId = #{clientid,jdbcType=BIGINT},
+      money = #{money,jdbcType=FLOAT},
+      amount = #{amount,jdbcType=FLOAT},
+      afterRecharge = #{afterrecharge,jdbcType=FLOAT},
+      rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
+      remarks = #{remarks,jdbcType=VARCHAR}
+    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/PipIrrSellApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
index 1c8ec60..286fa64 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/PipIrrSellApplication.java
@@ -17,7 +17,7 @@
 @EnableAspectJAutoProxy
 @EnableMultiDataSource
 @ComponentScan(basePackages = {"com.dy.common", "com.dy.pipIrrGlobal", "com.dy.pipIrrSell"})
-@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoSe"})
+@MapperScan({"com.dy.pipIrrGlobal.daoSe", "com.dy.pipIrrGlobal.daoBa"})
 public class PipIrrSellApplication {
 
     public static void main(String[] args) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java
index 67fb839..aec2f6d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardCtrl.java
@@ -5,11 +5,15 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
-import com.dy.pipIrrGlobal.pojoSe.*;
+import com.dy.pipIrrGlobal.pojoSe.SeActiveCard;
+import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
+import com.dy.pipIrrGlobal.voBa.VoAreaCode;
 import com.dy.pipIrrGlobal.voSe.VoActiveCard;
 import com.dy.pipIrrSell.clientCard.CardStateENUM;
 import com.dy.pipIrrSell.clientCard.ClientCardSv;
 import com.dy.pipIrrSell.clientCard.LastOperateENUM;
+import com.dy.pipIrrSell.recharge.DtoRecharge;
+import com.dy.pipIrrSell.recharge.RechargeCtrl;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.media.Content;
@@ -25,11 +29,7 @@
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
-import java.time.format.DateTimeFormatter;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -46,6 +46,8 @@
 public class ActiveCardCtrl {
     private final ActiveCardSv activeCardSv;
     private final ClientCardSv clientCardSv;
+
+    private final RechargeCtrl rechargeCtrl;
 
     @Operation(summary = "鑾峰緱涓�椤靛紑鍗¤褰�", description = "杩斿洖涓�椤靛紑鍗℃暟鎹�")
     @ApiResponses(value = {
@@ -81,44 +83,85 @@
     @Transactional(rollbackFor = Exception.class)
     @SsoAop("-1")//@SsoAop(power = "-1")
     public BaseResponse<Boolean> add_active(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoActiveCard po, @Parameter(hidden = true) 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());
         }
 
         /**
+         * 鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode
+         * provinceId   鐪佺骇鍖哄垝浠g爜
+         * cityId       甯傜骇鍖哄垝浠g爜
+         * countryId    鍘跨骇鍖哄垝浠g爜
+         * townId       闀囩骇鍖哄垝浠g爜
+         * villageId    鏉戠骇鍖哄垝浠g爜
+         */
+        VoAreaCode voAreaCode = activeCardSv.getAreaCodeByNum(po.getClientNum());
+        if(voAreaCode == null) {
+            return BaseResponseUtils.buildFail("璇ュ啘鎴疯鏀垮尯鍒掑紓甯革紝璇疯仈绯荤郴缁熺鐞嗗憳");
+        }
+        String provinceId = voAreaCode.getProvinceId();
+        String cityId = voAreaCode.getCityId();
+        String countryId = voAreaCode.getCountryId();
+        String townId = voAreaCode.getTownId();
+        String villageId = voAreaCode.getVillageId();
+        String areaCode = provinceId + cityId + countryId + townId + villageId;
+
+        /**
+         * 鏍规嵁琛屾斂鍖哄垝涓诧紙areaCode锛夊湪姘村崱琛ㄤ腑閽堝姘村崱缂栧彿锛坈ardNum锛夎繘琛屾ā绯婃煡璇�
+         * 濡傛灉4浣嶉『搴忓彿宸茬粡杈惧埌鏈�澶у�硷紝鎻愮ず鐢ㄦ埛鑱旂郴绯荤粺绠$悊鍛�
+         * 濡傛灉4浣嶉『搴忓彿鏈揪鍒版渶澶у�硷紝鍒欏姞1
+         * cardNum涓烘柊鐨勫崱鍙�
+         */
+        String cardNum = Optional.ofNullable(activeCardSv.getCardNumOfMax(areaCode)).orElse("");
+        if(cardNum != null && cardNum.trim().length() > 0) {
+            Integer number = Integer.parseInt(cardNum.substring(12));
+            number = number + 1;
+            if(number > 9999) {
+                return BaseResponseUtils.buildFail("姘村崱缂栧彿宸叉弧锛岃鑱旂郴绯荤粺绠$悊鍛�");
+            }
+            cardNum = cardNum.substring(0, 12) + String.format("%04d", number);
+        } else {
+            cardNum = areaCode + "0001";
+        }
+
+
+        /**
          * cardId           姘村崱缂栧彿锛堟彃鍏ヨ褰曞悗鐢熸垚锛�
-         * cardAddr         姘村崱鍦板潃
-         * clientId         鍐滄埛缂栧彿
+         * cardAddr         姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級
+         * clientNum        鍐滄埛缂栧彿
          * cardCost         鍗$墖璐圭敤
+         * amount           鍏呭�奸噾棰�
          * reissueAmount    琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤
          * paymentId        鏀粯鏂瑰紡缂栧彿
          * remarks          澶囨敞
          * operator         鎿嶄綔浜虹紪鍙�
          * activeTime       寮�鍗℃椂闂�
          */
-        Long cardId = 0L;
+        //Long cardId = 0L;
         String cardAddr = po.getCardAddr();
-        Long clientId = po.getClientId();
+        //Long clientId = po.getClientId();
+        String clientNum = po.getClientNum();
         Integer cardCost = po.getCardCost();
+        Float amount = po.getAmount();
         Long paymentId = po.getPaymentId();
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
-        Date activeTime = new Date();
-        //LocalDateTime activeTime = LocalDateTime.parse(dtf.format(LocalDateTime.now()), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+        Date createTime = new Date();
 
         /**
          * 娣诲姞鍐滄埛鍗¤褰�
          */
-        SeClientCard clientCard = new SeClientCard();
-        clientCard.setCardaddr(cardAddr);
-        clientCard.setClientid(clientId);
-        clientCard.setMoney(0.0);
-        clientCard.setState(CardStateENUM.NORMAL.getCode());
-        clientCard.setCreatedt(activeTime);
-        clientCard.setLastoper(LastOperateENUM.ACTIVE.getCode());
+        SeClientCard seClientCard = new SeClientCard();
+        seClientCard.setCardaddr(cardAddr);
+        //seClientCard.setClientid(clientId);
+        seClientCard.setCardnum(cardNum);
+        seClientCard.setClientnum(clientNum);
+        seClientCard.setMoney(0.0);
+        seClientCard.setState(CardStateENUM.NORMAL.getCode());
+        seClientCard.setCreatedt(createTime);
+        seClientCard.setLastoper(LastOperateENUM.ACTIVE.getCode());
 
-        cardId = Optional.ofNullable(clientCardSv.add(clientCard)).orElse(0L) ;
+        Long cardId = Optional.ofNullable(clientCardSv.add(seClientCard)).orElse(0L) ;
         if(cardId == 0) {
             return BaseResponseUtils.buildFail("寮�鍗″け璐�-鍐滄埛鍗″啓鍏ュ紓甯�");
         }
@@ -127,20 +170,37 @@
          * 娣诲姞寮�鍗¤褰�
          */
         SeActiveCard activeCard = new SeActiveCard();
-        activeCard.setCardid(cardId);
-        activeCard.setClientid(clientId);
+        activeCard.setCardnum(cardNum);
+        activeCard.setClientnum(clientNum);
+        //activeCard.setCardid(cardId);
+        //activeCard.setClientid(clientId);
         activeCard.setCardcost(cardCost);
         activeCard.setPaymentid(paymentId);
         activeCard.setOperatetype(OperateTypeENUM.ACTIVE.getCode());
         activeCard.setRemarks(remarks);
         activeCard.setOperator(operator);
-        activeCard.setOperatedt(activeTime);
+        activeCard.setOperatedt(createTime);
         Long rec = Optional.ofNullable(activeCardSv.add(activeCard)).orElse(0L);
         if(rec == 0) {
             return BaseResponseUtils.buildFail("寮�鍗″け璐�-寮�鍗¤褰曞啓鍏ュ紓甯�");
         }
 
-        return BaseResponseUtils.buildSuccess(true) ;
+        /**
+         * 濡傛灉鎿嶄綔浜哄憳寮�鍗℃椂杈撳叆浜嗗厖鍊奸噾棰濓紝鍒欏紑鍗″悗璋冪敤鍏呭�煎姛鑳�
+         */
+        po.setCardNum(cardNum);
+        if(amount != null && amount > 0) {
+            DtoRecharge dtoRecharge = RechargeDtoMapper.INSTANCT.po2vo(po);
+            dtoRecharge.setMoney(0f);
+            dtoRecharge.setGift(0f);
+            dtoRecharge.setPrice(0f);
+            BaseResponse<Boolean> job = rechargeCtrl.addRecharge(dtoRecharge);
+            if(!job.getCode().equals("0001")) {
+                return BaseResponseUtils.buildFail("寮�鍗℃垚鍔燂紝浣嗗厖鍊煎け璐�");
+            }
+        }
+
+        return BaseResponseUtils.buildSuccess(cardNum) ;
     }
 
     @Operation(summary = "琛ュ崱", description = "琛ュ崱")
@@ -156,15 +216,14 @@
     @Transactional(rollbackFor = Exception.class)
     @SsoAop("-1")//@SsoAop(power = "-1")
     public BaseResponse<Boolean> add_reissue(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoActiveCard po, @Parameter(hidden = true) 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鍙嶆煡锛�
-         * cardAddr         姘村崱鍦板潃
-         * clientId         鍐滄埛缂栧彿
+         * cardId           姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾洿鏂版按鍗¤〃鐢級
+         * cardNum          姘村崱缂栧彿
+         * clientNum        鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾坊鍔犺ˉ鍗′娇鐢級
          * cardCost         鍗$墖璐圭敤
          * reissueAmount    琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤
          * paymentId        鏀粯鏂瑰紡缂栧彿
@@ -173,22 +232,25 @@
          * activeTime       琛ュ崱鏃堕棿
          */
         Long cardId = 0L;
-        String cardAddr = po.getCardAddr();
-        Long clientId = po.getClientId();
+        String cardNum = po.getCardNum();
+        //String clientNum = po.getClientNum();
+        String clientNum = "";
         Integer cardCost = po.getCardCost();
         Double reissueAmount = po.getReissueAmount();
         Long paymentId = po.getPaymentId();
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
-        Date activeTime = new Date();
+        Date replaceTime = new Date();
 
         /**
-         * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛堜富閿級
+         * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
          */
-        cardId = Optional.ofNullable(clientCardSv.getCardIdByAddr(cardAddr)).orElse(0L);
-        if(cardId == 0) {
+        Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+        if(map == null || map.size() <= 0) {
             return BaseResponseUtils.buildFail("鍗″彿閿欒锛岃鍗′笉瀛樺湪");
         }
+        cardId = Long.parseLong(map.get("cardId").toString());
+        clientNum = map.get("clientNum").toString();
 
         /**
          * 淇敼鍐滄埛鍗′俊鎭細
@@ -197,7 +259,7 @@
          */
         SeClientCard seClientCard = new SeClientCard();
         seClientCard.setId(cardId);
-        seClientCard.setReplacedt(activeTime);
+        seClientCard.setReplacedt(replaceTime);
         seClientCard.setLastoper(LastOperateENUM.REPLACE.getCode());
         Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0);
         if(rec_updateClientCard == 0) {
@@ -208,15 +270,17 @@
          * 娣诲姞琛ュ崱璁板綍
          */
         SeActiveCard activeCard = new SeActiveCard();
-        activeCard.setCardid(cardId);
-        activeCard.setClientid(clientId);
+        activeCard.setCardnum(cardNum);
+        activeCard.setClientnum(clientNum);
+        //activeCard.setCardid(cardId);
+        //activeCard.setClientid(clientId);
         activeCard.setCardcost(cardCost);
         activeCard.setPaymentid(paymentId);
         activeCard.setReissueamount(reissueAmount);
         activeCard.setOperatetype(OperateTypeENUM.REPLACE.getCode());
         activeCard.setRemarks(remarks);
         activeCard.setOperator(operator);
-        activeCard.setOperatedt(activeTime);
+        activeCard.setOperatedt(replaceTime);
         Long rec = Optional.ofNullable(activeCardSv.add(activeCard)).orElse(0L);
         if(rec == 0) {
             return BaseResponseUtils.buildFail("琛ュ崱澶辫触-琛ュ崱璁板綍鍐欏叆寮傚父");
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardSv.java
index c653047..8ce52e5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/ActiveCardSv.java
@@ -1,8 +1,11 @@
 package com.dy.pipIrrSell.activeCard;
 
 import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoBa.BaClientMapper;
 import com.dy.pipIrrGlobal.daoSe.SeActiveCardMapper;
+import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeActiveCard;
+import com.dy.pipIrrGlobal.voBa.VoAreaCode;
 import com.dy.pipIrrGlobal.voSe.VoActiveCard;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -26,6 +29,12 @@
 public class ActiveCardSv {
     @Autowired
     private SeActiveCardMapper seActiveCardMapper;
+
+    @Autowired
+    private SeClientCardMapper seClientCardMapper;
+
+    @Autowired
+    private BaClientMapper baClientMapper;
 
     public QueryResultVo<List<VoActiveCard>> getActiveCards(QueryVo queryVo) {
         //瀹屽杽鏌ヨ寮�鍗¤褰曠殑璧锋鏃堕棿
@@ -59,4 +68,22 @@
         seActiveCardMapper.insert(po);
         return po.getId();
     }
+
+    /**
+     * 鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�
+     * @param clientNum 鍐滄埛缂栧彿
+     * @return 5绾ц鏀垮尯鍒掍唬鐮�
+     */
+    public VoAreaCode getAreaCodeByNum(String clientNum) {
+        return baClientMapper.getAreaCodeByNum(clientNum);
+    }
+
+    /**
+     * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙�
+     * @param areaCode
+     * @return
+     */
+    String getCardNumOfMax(String areaCode) {
+        return seClientCardMapper.getCardNumOfMax(areaCode);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java
index 75b6535..d5e63c4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/DtoActiveCard.java
@@ -24,15 +24,30 @@
      * 姘村崱鍦板潃
      */
     @Schema(description = "姘村崱鍦板潃", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @NotBlank
+    @NotBlank(message = "姘村崱鍦板潃涓嶈兘涓虹┖")
     private String cardAddr;
 
     /**
-     * 鍐滄埛ID
+     * 鍐滄埛缂栧彿
+     * 寮�鍗℃椂浣跨敤
      */
-    @Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Positive(message = "鍐滄埛ID蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
-    private Long clientId;
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String clientNum;
+
+    /**
+     * 鍐滄埛ID锛堜富閿級
+     * 搴熷純锛屾敼鐢╟lientNum
+     */
+    //@Schema(description = "鍐滄埛ID", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    //@Positive(message = "鍐滄埛ID蹇呴』涓哄ぇ浜�0鐨勬暣鏁�")
+    //private Long clientId;
+
+    /**
+     * 姘村崱缂栧彿
+     * 琛ュ崱鏃朵娇鐢�
+     */
+    @Schema(description = "姘村崱缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String cardNum;
 
     /**
      * 鍗$墖璐圭敤
@@ -42,6 +57,13 @@
     private Integer cardCost;
 
     /**
+     * 鍏呭�奸噾棰�
+     */
+    @Schema(description = "鍏呭�奸噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Min(value = 0, message="鍏呭�奸噾棰濅笉鑳藉皬浜�0")
+    private Float amount;
+
+    /**
      * 琛ュ崱閲戦
      */
     @Schema(description = "琛ュ崱閲戦", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/QueryVo.java
index 84771a5..23042d4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/QueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/QueryVo.java
@@ -29,7 +29,8 @@
     public String clientName;
 
     @Schema(description = "IC鍗″彿")
-    public String cardAddr;
+    //public String cardAddr;
+    public String cardNum;
 
     @Schema(description = "鍗$墖鐘舵��")
     private Byte state;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/RechargeDtoMapper.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/RechargeDtoMapper.java
new file mode 100644
index 0000000..3bddd0e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/activeCard/RechargeDtoMapper.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrSell.activeCard;
+
+import com.dy.pipIrrSell.recharge.DtoRecharge;
+import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/15 13:34
+ * @LastEditTime 2023/12/15 13:34
+ * @Description 灏咲toActiveCard鏄犲皠涓篋toRecharge
+ */
+
+@Mapper
+public interface RechargeDtoMapper {
+    RechargeDtoMapper INSTANCT = Mappers.getMapper(RechargeDtoMapper.class);
+
+    //@Mapping(target = "cardAddr", source = "cardAddr")
+    //@Mapping(target = "clientId", source = "clientId")
+    @Mapping(target = "cardNum", source = "cardNum")
+    @Mapping(target = "clientNum", source = "clientNum")
+    @Mapping(target = "amount", source = "amount")
+    @Mapping(target = "paymentId", source = "paymentId")
+    @Mapping(target = "remarks", source = "remarks")
+    @Mapping(target = "operator", source = "operator")
+    DtoRecharge po2vo(DtoActiveCard po);
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
index 645534b..12437b7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
@@ -6,6 +6,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Map;
+
 /**
  * @author ZhuBaoMin
  * @date 2023/12/7 9:18
@@ -30,7 +32,7 @@
     }
 
     /**
-     * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛堜富閿級
+     * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛�12鏈�19鏃ュ簾寮冿級
      * @param cardAddr
      * @return
      */
@@ -39,6 +41,23 @@
     }
 
     /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿紙12鏈�19鏃ユ坊鍔犲悗搴熷純锛�
+     * @param cardNum 16浣嶆按鍗$紪鍙�
+     * @return 姘村崱琛ㄤ富閿�
+     */
+    public Long getCardIdByNum(String cardNum) {
+        return seClientCardMapper.getCardIdByNum(cardNum);
+    }
+
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+     * @param cardNum
+     * @return
+     */
+    public Map getCardIdAndClientNum(String cardNum) {
+        return seClientCardMapper.getCardIdAndClientNum(cardNum);
+    }
+    /**
      * 鏍规嵁姘村崱缂栧彿锛堜富閿級淇敼鍐滄埛鍗′俊鎭�
      * @param po
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/DtoRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/DtoRecharge.java
index fc37f9e..7e250f9 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/DtoRecharge.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/DtoRecharge.java
@@ -27,13 +27,15 @@
      */
     @Schema(description = "姘村崱鍦板潃", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @NotBlank
-    private String cardAddr;
+    //private String cardAddr;
+    private String cardNum;
 
     /**
      * 鍐滄埛缂栧彿
      */
     @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    private Long clientId;
+    //private Long clientId;
+    private String clientNum;
 
     /**
      * 鍗$墖浣欓
@@ -59,9 +61,9 @@
     /**
      * 鍏呭�煎悗浣欓
      */
-    @Schema(description = "鍏呭�煎悗浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    @Min(value = 0, message="鍏呭�煎悗浣欓涓嶈兘灏忎簬0")
-    private Float afterRecharge;
+    //@Schema(description = "鍏呭�煎悗浣欓", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    //@Min(value = 0, message="鍏呭�煎悗浣欓涓嶈兘灏忎簬0")
+    //private Float afterRecharge;
 
     /**
      * 浠樻鏂瑰紡缂栧彿
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/QueryVo.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/QueryVo.java
index 3498483..99ba48c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/QueryVo.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/QueryVo.java
@@ -24,6 +24,9 @@
     @Schema(description = "鍐滄埛濮撳悕")
     public String clientName;
 
+    @Schema(description = "鍐滄埛缂栧彿")
+    private Long clientId;
+
     @Schema(description = "IC鍗″彿")
     public String cardAddr;
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java
index 321d450..0066355 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeCtrl.java
@@ -5,7 +5,9 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.common.webUtil.ResultCodeMsg;
-import com.dy.pipIrrGlobal.pojoSe.*;
+import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
+import com.dy.pipIrrGlobal.pojoSe.SeRecharge;
+import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
 import com.dy.pipIrrGlobal.voSe.VoRecharge;
 import com.dy.pipIrrSell.clientCard.ClientCardSv;
 import com.dy.pipIrrSell.clientCard.LastOperateENUM;
@@ -24,11 +26,7 @@
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
-import java.time.format.DateTimeFormatter;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 
 @Slf4j
 @Tag(name = "鍏呭�肩鐞�", description = "鍏呭�兼搷浣�")
@@ -73,15 +71,22 @@
     @Transactional(rollbackFor = Exception.class)
     @SsoAop("-1")//@SsoAop(power = "-1")
     public BaseResponse<Boolean> add(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoRecharge po, @Parameter(hidden = true) 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());
         }
+        return addRecharge(po);
+    }
 
+    /**
+     * 娣诲姞鍏呭�艰褰�
+     * @param po
+     * @return
+     */
+    public BaseResponse<Boolean> addRecharge(DtoRecharge po){
         /**
-         * cardId           姘村崱缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardAddr鍙嶆煡锛�
-         * cardAddr         姘村崱鍦板潃
-         * clientId         鍐滄埛缂栧彿
+         * cardId           姘村崱缂栧彿锛堟彃鍏ヨ褰曞悗鐢熸垚锛�
+         * cardAddr         姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級
+         * clientNum        鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛屾坊鍔犲厖鍊间娇鐢級
          * money            鍗$墖浣欓
          * amount           鍏呭�奸噾棰�
          * gift             璧犻�侀噾棰�
@@ -93,12 +98,15 @@
          * rechargeTime     鍏呭�兼椂闂�
          */
         Long cardId = 0L;
-        String cardAddr = po.getCardAddr();
-        Long clientId = po.getClientId();
+        //String cardAddr = po.getCardAddr();
+        //Long clientId = po.getClientId();
+        String cardNum = po.getCardNum();
+        //String clientNum = po.getClientNum();
+        String clientNum = "";
         Float money = po.getMoney();
         Float amount = po.getAmount();
         Float gift = po.getGift();
-        Float afterRecharge = po.getAfterRecharge();
+        Float afterRecharge = money + amount + gift;
         Long paymentId = po.getPaymentId();
         Float price = po.getPrice();
         String remarks = po.getRemarks();
@@ -106,12 +114,14 @@
         Date rechargeTime = new Date();
 
         /**
-         * 渚濇嵁姘村崱鍦板潃鑾峰彇姘村崱缂栧彿锛堜富閿級
+         * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
          */
-        cardId = Optional.ofNullable(clientCardSv.getCardIdByAddr(cardAddr)).orElse(0L);
-        if(cardId == 0) {
+        Map map = Optional.ofNullable(clientCardSv.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+        if(map == null || map.size() <= 0) {
             return BaseResponseUtils.buildFail("鍗″彿閿欒锛岃鍗′笉瀛樺湪");
         }
+        cardId = Long.parseLong(map.get("cardId").toString());
+        clientNum = map.get("clientNum").toString();
 
         /**
          * 淇敼鍐滄埛鍗′俊鎭細
@@ -130,13 +140,15 @@
         /**
          * 鍒犻櫎鍏呭�艰〃璇ュ崱鐨勫厖鍊艰褰�
          */
-        Integer rec_deleteRecharge = Optional.ofNullable(rechargeSv.deleteByCardId(cardId)).orElse(0);
+        Integer rec_deleteRecharge = Optional.ofNullable(rechargeSv.deleteByCardNum(cardNum)).orElse(0);
         /**
          * 娣诲姞鍏呭�艰褰�
          */
         SeRecharge seRecharge = new SeRecharge();
-        seRecharge.setCardid(cardId);
-        seRecharge.setClientid(clientId);
+        //seRecharge.setCardid(cardId);
+        //seRecharge.setClientid(clientId);
+        seRecharge.setCardnum(cardNum);
+        seRecharge.setClientnum(clientNum);
         seRecharge.setMoney(money);
         seRecharge.setAmount(amount);
         seRecharge.setGift(gift);
@@ -155,8 +167,10 @@
          * 娣诲姞琛ュ崱鍘嗗彶璁板綍
          */
         SeRechargeHistory seRechargeHistory = new SeRechargeHistory();
-        seRechargeHistory.setCardid(cardId);
-        seRechargeHistory.setClientid(clientId);
+        //seRechargeHistory.setCardid(cardId);
+        //seRechargeHistory.setClientid(clientId);
+        seRechargeHistory.setCardnum(cardNum);
+        seRechargeHistory.setClientnum(clientNum);
         seRechargeHistory.setMoney(money);
         seRechargeHistory.setAmount(amount);
         seRechargeHistory.setGift(gift);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java
index 9c574cb..37a45ae 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/recharge/RechargeSv.java
@@ -66,9 +66,9 @@
      * @param cardId
      * @return
      */
-    public Integer deleteByPrimaryKey(Long cardId) {
-        return seRechargeMapper.deleteByPrimaryKey(cardId);
-    }
+    //public Integer deleteByPrimaryKey(Long cardId) {
+    //    return seRechargeMapper.deleteByPrimaryKey(cardId);
+    //}
 
     /**
      * 娣诲姞鍏呭�艰褰�
@@ -82,11 +82,14 @@
 
     /**
      * 鏍规嵁姘村崱缂栧彿鍒犻櫎鍏呭�艰褰�
-     * @param cardId
+     * @param cardNum
      * @return
      */
-    public Integer deleteByCardId(Long cardId) {
-        return seRechargeMapper.deleteByCardId(cardId);
+    //public Integer deleteByCardId(Long cardId) {
+    //    return seRechargeMapper.deleteByCardId(cardId);
+    //}
+    public Integer deleteByCardNum(String cardNum) {
+        return seRechargeMapper.deleteByCardNum(cardNum);
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWallet.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWallet.java
new file mode 100644
index 0000000..6fbce4d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWallet.java
@@ -0,0 +1,29 @@
+package com.dy.pipIrrSell.wallet;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/11 17:28
+ * @LastEditTime 2023/12/11 17:28
+ * @Description
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "娉ㄥ唽鐢靛瓙閽卞寘浼犲叆瀵硅薄")
+public class DtoWallet {
+    public static final long serialVersionUID = 1L;
+
+    /**
+     * 鍐滄埛缂栧彿
+     */
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private Long clientId;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWalletRecharge.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWalletRecharge.java
new file mode 100644
index 0000000..89c9e0a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/DtoWalletRecharge.java
@@ -0,0 +1,50 @@
+package com.dy.pipIrrSell.wallet;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/12 11:46
+ * @LastEditTime 2023/12/12 11:46
+ * @Description
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(name = "鐢靛瓙閽卞寘鍏呭�间紶鍏ュ璞�")
+public class DtoWalletRecharge {
+    public static final long serialVersionUID = 1L;
+
+    /**
+     * 閽卞寘缂栧彿
+     */
+    @Schema(description = "閽卞寘缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "閽卞寘缂栧彿涓嶈兘涓虹┖")
+    private Long walletId;
+
+    /**
+     * 鍐滄埛缂栧彿
+     */
+    @Schema(description = "鍐滄埛缂栧彿", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @NotNull(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖")
+    private Long clientId;
+
+    /**
+     * 鍏呭�奸噾棰�
+     */
+    @Schema(description = "鍏呭�奸噾棰�", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    @Min(value = 0, message="鍏呭�奸噾棰濅笉鑳藉皬浜�0")
+    private Float amount;
+
+    /**
+     * 澶囨敞淇℃伅
+     */
+    @Schema(description = "澶囨敞", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
+    private String remarks;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletCtrl.java
new file mode 100644
index 0000000..0e6d4a6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletCtrl.java
@@ -0,0 +1,105 @@
+package com.dy.pipIrrSell.wallet;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.ResultCodeMsg;
+import com.dy.pipIrrGlobal.pojoSe.SeWallet;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.responses.ApiResponse;
+import io.swagger.v3.oas.annotations.responses.ApiResponses;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.Optional;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/11 16:36
+ * @LastEditTime 2023/12/11 16:36
+ * @Description
+ */
+
+@Slf4j
+@Tag(name = "鐢靛瓙閽卞寘绠$悊", description = "鐢靛瓙閽卞寘绠$悊")
+@RestController
+@RequestMapping(path="wallet")
+@RequiredArgsConstructor
+@Validated
+public class WalletCtrl {
+    private final WalletSv walletSv;
+
+    @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 = "add")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop("-1")//@SsoAop(power = "-1")
+    //public BaseResponse<Boolean> add(@RequestBody Long clientId){
+    public BaseResponse<Boolean> add(@RequestParam("clientId") @NotNull(message = "鍐滄埛缂栧彿涓嶈兘涓虹┖") Long clientId){
+        if(clientId == null || clientId < 0) {
+            return BaseResponseUtils.buildFail("鍐滄埛缂栧彿涓嶈兘涓虹┖");
+        }
+
+        SeWallet seWallet = new SeWallet();
+        seWallet.setClientid(clientId);
+        seWallet.setMoney(0f);
+        seWallet.setCreatedt(new Date());
+        Integer rec = Optional.ofNullable(walletSv.add(seWallet)).orElse(0);
+        if(rec == 0) {
+            return BaseResponseUtils.buildFail("娉ㄥ唽鐢靛瓙閽卞寘-鐢靛瓙閽卞寘璁板綍鍐欏叆寮傚父");
+        }
+
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+
+    //@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 = "addRecharge")
+    //@Transactional(rollbackFor = Exception.class)
+    //@SsoAop("-1")//@SsoAop(power = "-1")
+    //public BaseResponse<Boolean> addRecharge(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoWalletRecharge po, @Parameter(hidden = true) 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());
+    //    }
+    //
+    //
+    //
+    //    SeWallet seWallet = new SeWallet();
+    //    seWallet.setClientid(clientId);
+    //    seWallet.setMoney(0f);
+    //    seWallet.setCreatedt(new Date());
+    //    Integer rec = Optional.ofNullable(walletSv.add(seWallet)).orElse(0);
+    //    if(rec == 0) {
+    //        return BaseResponseUtils.buildFail("娉ㄥ唽鐢靛瓙閽卞寘-鐢靛瓙閽卞寘璁板綍鍐欏叆寮傚父");
+    //    }
+    //
+    //    return BaseResponseUtils.buildSuccess(true) ;
+    //}
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletSv.java
new file mode 100644
index 0000000..2e7b236
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/wallet/WalletSv.java
@@ -0,0 +1,79 @@
+package com.dy.pipIrrSell.wallet;
+
+import com.dy.pipIrrGlobal.daoSe.SeWalletMapper;
+import com.dy.pipIrrGlobal.daoSe.SeWalletRechargeHistoryMapper;
+import com.dy.pipIrrGlobal.daoSe.SeWalletRechargeMapper;
+import com.dy.pipIrrGlobal.pojoSe.SeWallet;
+import com.dy.pipIrrGlobal.pojoSe.SeWalletRechargeHistory;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2023/12/11 16:36
+ * @LastEditTime 2023/12/11 16:36
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class WalletSv {
+    @Autowired
+    private SeWalletMapper seWalletMapper;
+
+    @Autowired
+    private SeWalletRechargeMapper seWalletRechargeMapper;
+
+    @Autowired
+    private SeWalletRechargeHistoryMapper seWalletRechargeHistoryMapper;
+
+    /**
+     * 娉ㄥ唽鐢靛瓙閽卞寘璐﹀彿
+     * @param po
+     * @return
+     */
+    public Integer add(SeWallet po) {
+        return seWalletMapper.insert(po);
+    }
+
+    /**
+     * 鏍规嵁缂栧彿浠庨挶鍖呰〃涓幏鍙栬閽卞寘浣欓
+     * @param id
+     * @return
+     */
+    public Float getMoneyById(Long id) {
+        SeWallet po = seWalletMapper.selectByPrimaryKey(id);
+        return po.getMoney();
+    }
+
+    /**
+     * 鏍规嵁閽卞寘缂栧彿淇敼閽卞寘浣欓
+     * @param id 閽卞寘缂栧彿锛堜富閿級
+     * @param money 閽卞寘浣欓
+     * @return 淇敼璁板綍鏁伴噺
+     */
+    public Integer updateMoneyById(Long id, Float money) {
+        SeWallet po = seWalletMapper.selectByPrimaryKey(id);
+        po.setMoney(money);
+        return seWalletMapper.updateByPrimaryKey(po);
+    }
+
+    /**
+     * 鏍规嵁id鍒犻櫎鍏呭�艰褰�
+     * @param id
+     * @return
+     */
+    public Integer deleteWallerRechargeById(Long id) {
+        return seWalletMapper.deleteByPrimaryKey(id);
+    }
+
+    /**
+     * 灏嗗厖鍊艰褰曟坊鍔犲埌鍏呭�煎巻鍙茶〃
+     * @param po 鍏呭�煎巻鍙插疄浣�
+     * @return
+     */
+    public Integer addWallerRechargeHistory(SeWalletRechargeHistory po) {
+        return seWalletRechargeHistoryMapper.insert(po);
+    }
+}

--
Gitblit v1.8.0