From 836ec39fdad422b1a148699a4c5fb8c5b4d395f0 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期三, 25 六月 2025 11:04:33 +0800
Subject: [PATCH] feat(card): 添加管理类型卡写卡功能并优化卡片相关逻辑- 在 OperateTypeENUM 中添加 SUPPLEMENT 和 MANAGEMENT_CARD_WRITE 枚举值 - 在 SeManagementCard 中添加 cancelTime 和 state 字段 - 更新相关 mapper 和 XML 文件以支持新增字段 - 修改 CardSv 中的回调处理逻辑,支持管理类型卡写卡 - 优化 CreateManagementCardDto 中识别码的示例值

---
 pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java |   63 ++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 7 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
index f41c589..31520d5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java
@@ -936,7 +936,7 @@
         seCardOperate.setClientId(clientId);
         seCardOperate.setMoney(po.getBalance());
         seCardOperate.setRefundAmount(po.getSupplementMoney());
-        seCardOperate.setOperateType(OperateTypeENUM.WRITE_BACK.getCode());
+        seCardOperate.setOperateType(OperateTypeENUM.SUPPLEMENT.getCode());
         seCardOperate.setRemarks(po.getRemarks());
         seCardOperate.setOperator(po.getOperator());
         seCardOperate.setOperateDt(operateTime);
@@ -975,13 +975,20 @@
         Integer operateType = po.getOperateType();
         String orderNumber = po.getOrderNumber();
 
+        // 鍏堟鏌ユ槸鍚︿负绠$悊鍗�
+        if (operateType.equals(OperateTypeENUM.MANAGEMENT_CARD_WRITE.getCode().intValue())) {
+            // 绠$悊绫诲瀷鍗″啓鍗¢�昏緫
+            return handleManagementCardWrite(cardAddr, orderNumber);
+        }
+
+        // 澶勭悊鍐滄埛鍗¢�昏緫
         Long cardId = seClientCardMapper.getCardIdByAddr(cardAddr);
         if (cardId == null || cardId.equals(0)) {
             map.put("msg", "鎮ㄦ寚瀹氱殑姘村崱涓嶅瓨鍦�");
             return map;
         }
 
-        if (operateType == 1) {
+        if (operateType.equals(OperateTypeENUM.ACTIVE.getCode().intValue())) {
             /**
              * 寮�鍗℃搷浣滄墽琛岄�氱煡
              * 1.渚濇嵁璁㈠崟鍙峰皢鏃犳晥鐘舵�佺殑鎿嶄綔璁板綍鏀逛负鏈夋晥
@@ -1003,7 +1010,7 @@
                 turnRechargeHistoryValidByOrderNumber(orderNumber);
                 updateCard(cardId, orderNumber + "p");
             }
-        } else if (operateType == 2) {
+        } else if (operateType.equals(OperateTypeENUM.RECHARGE.getCode().intValue())) {
             /**
              * 鍏呭�兼搷浣滄墽琛岄�氱煡
              * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
@@ -1013,7 +1020,7 @@
             turnOperateValidByOrderNumber(orderNumber + "p");
             turnRechargeHistoryValidByOrderNumber(orderNumber);
             updateCard(cardId, orderNumber + "p");
-        } else if (operateType == 3) {
+        } else if (operateType.equals(OperateTypeENUM.CANCEL.getCode().intValue())) {
             /**
              * 閿�鍗℃搷浣滄墽琛岄�氱煡
              * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
@@ -1027,7 +1034,7 @@
                 return map;
             }
 
-        } else if (operateType == 4) {
+        } else if (operateType.equals(OperateTypeENUM.REISSUE.getCode().intValue())) {
             /**
              * 琛ュ崱鎿嶄綔鎵ц閫氱煡
              * 1. 鏂版按鍗¤褰曟敼涓烘湁鏁�
@@ -1042,7 +1049,7 @@
                 map.put("msg", "琛ュ崱鍥炶皟澶辫触");
                 return map;
             }
-        } else if (operateType == 5) {
+        } else if (operateType.equals(OperateTypeENUM.REFUND.getCode().intValue())) {
             /**
              * 琛ユ墸鎿嶄綔鎵ц閫氱煡
              * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
@@ -1054,7 +1061,7 @@
                 map.put("msg", "琛ユ墸鍥炶皟澶辫触");
                 return map;
             }
-        } else if (operateType == 6) {
+        } else if (operateType.equals(OperateTypeENUM.SUPPLEMENT.getCode().intValue())) {
             /**
              * 杩旇繕鎿嶄綔鎵ц閫氱煡
              * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
@@ -1073,6 +1080,48 @@
         return map;
     }
 
+    /**
+     * 澶勭悊绠$悊绫诲瀷鍗″啓鍗″洖璋�
+     * 
+     * @param cardAddr    鍗″湴鍧�
+     * @param orderNumber 璁㈠崟鍙�
+     * @return 澶勭悊缁撴灉
+     */
+    private Map<String, Object> handleManagementCardWrite(String cardAddr, String orderNumber) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("success", false);
+        map.put("content", null);
+
+        try {
+            // 鏍规嵁鍗″湴鍧�鍜岃鍗曞彿鏌ユ壘绠$悊鍗�
+            SeManagementCard managementCard = seManagementCardMapper.selectOne(
+                    com.baomidou.mybatisplus.core.toolkit.Wrappers.<SeManagementCard>lambdaQuery()
+                            .eq(SeManagementCard::getCardAddr, cardAddr)
+                            .eq(SeManagementCard::getOrderNo, orderNumber));
+
+            if (managementCard == null) {
+                map.put("msg", "鏈壘鍒板搴旂殑绠$悊鍗¤褰�");
+                return map;
+            }
+
+            // 鏇存柊绠$悊鍗$姸鎬佷负姝e父
+            managementCard.setState(ManagementCardStateENUM.NORMAL.getCode());
+
+            int updateResult = seManagementCardMapper.updateByPrimaryKeySelective(managementCard);
+            if (updateResult > 0) {
+                map.put("success", true);
+                map.put("msg", "绠$悊鍗″啓鍗″畬鎴愶紝鐘舵�佸凡鏇存柊涓烘甯�");
+            } else {
+                map.put("msg", "绠$悊鍗$姸鎬佹洿鏂板け璐�");
+            }
+        } catch (Exception e) {
+            log.error("澶勭悊绠$悊鍗″啓鍗″洖璋冨紓甯�", e);
+            map.put("msg", "澶勭悊绠$悊鍗″啓鍗″洖璋冩椂鍙戠敓寮傚父锛�" + e.getMessage());
+        }
+
+        return map;
+    }
+
     // 鏍规嵁璁㈠崟鍙峰皢鎿嶄綔璁板綍鏀逛负鏈夋晥
     public Integer turnOperateValidByOrderNumber(String orderNumber) {
         return seCardOperateMapper.turnOperateValidByOrderNumber(orderNumber);

--
Gitblit v1.8.0