From 18f9dc6d0f15cad4a74e68fcf87b1a9aa83b5e66 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 18 七月 2024 14:28:28 +0800
Subject: [PATCH] 实现协议中各种命令结果日志数据库永久更新保存功能

---
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java |  127 ++++++++++++++++++------------------------
 1 files changed, 54 insertions(+), 73 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
index c42f2a8..5cb744f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java
@@ -15,7 +15,6 @@
 import com.dy.pipIrrGlobal.voSe.VoOperate;
 import com.dy.pipIrrGlobal.voSe.VoRecharge;
 import com.dy.pipIrrGlobal.voSe.VoReissueCard;
-import com.dy.pipIrrSell.cardOperate.converter.RechargeDtoMapper;
 import com.dy.pipIrrSell.cardOperate.dto.*;
 import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM;
 import com.dy.pipIrrSell.cardOperate.qo.*;
@@ -65,21 +64,19 @@
     @PostMapping(path = "active", consumes = MediaType.APPLICATION_JSON_VALUE)
     @Transactional(rollbackFor = Exception.class)
     @SsoAop()
-    public BaseResponse<Boolean> add_active(@RequestBody @Valid DtoActiveCard po, BindingResult bindingResult){
+    public BaseResponse<Boolean> add_active(@RequestBody @Valid ActiveCard po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
+
+        Long clientId = po.getClientId();
 
         // 鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode
-        String areaCode = cardOperateSv.getAreaCodeByNum(po.getClientNum());
-        if(areaCode.trim().length() == 0) {
+        Long areaCodeL = cardOperateSv.getAreaCodeById(clientId);
+        if(areaCodeL == null) {
             return BaseResponseUtils.buildErrorMsg(SellResultCode.AREA_CODE_MISTAKE.getMessage());
         }
-
-        // p206V1_0_1鍗忚锛屽彇琛屾斂鍖哄垝鐨勫悗6浣�
-        if(po.getProtocol() != null && po.getProtocol().trim().equals("p206V1_0_1")) {
-            areaCode = areaCode.substring(6);
-        }
+        String areaCode = String.valueOf(areaCodeL);
 
         /**
          * 鏍规嵁琛屾斂鍖哄垝涓诧紙areaCode锛夊湪姘村崱琛ㄤ腑閽堝姘村崱缂栧彿锛坈ardNum锛夎繘琛屾ā绯婃煡璇�
@@ -88,34 +85,21 @@
          * cardNum涓烘柊鐨勫崱鍙�
          */
         String cardNum = Optional.ofNullable(cardOperateSv.getCardNumOfMax(areaCode)).orElse("");
-        if(po.getProtocol().trim().equals("p206V1_0_1")) {
-            if(cardNum != null && cardNum.trim().length() > 0) {
-                Integer number = Integer.parseInt(cardNum.substring(6));
-                number = number + 1;
-                if(number > 9999) {
-                    return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
-                }
-                cardNum = cardNum.substring(0, 6) + String.format("%04d", number);
-            } else {
-                cardNum = areaCode + "0001";
+        if(cardNum != null && cardNum.trim().length() > 0) {
+            Integer number = Integer.parseInt(cardNum.substring(12));
+            number = number + 1;
+            if(number > 65535) {
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
             }
-        }else {
-            if(cardNum != null && cardNum.trim().length() > 0) {
-                Integer number = Integer.parseInt(cardNum.substring(12));
-                number = number + 1;
-                if(number > 65535) {
-                    return BaseResponseUtils.buildErrorMsg(SellResultCode.CARD_NUMBER_OVERRUN.getMessage());
-                }
-                cardNum = cardNum.substring(0, 12) + String.format("%05d", number);
-            } else {
-                cardNum = areaCode + "00001";
-            }
+            cardNum = cardNum.substring(0, 12) + String.format("%05d", number);
+        } else {
+            cardNum = areaCode + "00001";
         }
 
         /**
          * cardAddr         姘村崱鍦板潃锛堜粎浠呭啓鍏ワ紝鏃犱笟鍔★級
-         * clientNum        鍐滄埛缂栧彿
          * cardCost         鍗$墖璐圭敤
+         * originalCardId   鍘熸按鍗D
          * amount           鍏呭�奸噾棰濓紝鍏呭�兼帴鍙d负杈撳叆鍙傛暟锛岃ˉ鍗℃帴鍙d负鍘熷崱閫�杩橀噾棰�
          * reissueAmount    琛ュ崱閲戦锛岃ˉ鍗℃椂浣跨敤
          * paymentId        鏀粯鏂瑰紡缂栧彿
@@ -123,8 +107,8 @@
          * operator         鎿嶄綔浜虹紪鍙�
          * activeTime       寮�鍗℃椂闂�
          */
+        String protocol = po.getProtocol();
         String cardAddr = po.getCardAddr();
-        String clientNum = po.getClientNum();
         Integer cardCost = po.getCardCost();
         Long originalCardId = po.getOriginalCardId();
         Float amount = po.getAmount();
@@ -134,17 +118,10 @@
         Date activeTime = new Date();
 
         /**
-         * 鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID
-         */
-        Long clientId = cardOperateSv.getClientIdByNum(clientNum);
-        if(clientId == null) {
-            return BaseResponseUtils.buildErrorMsg(SellResultCode.CLIENT_NUM_ERROR.getMessage());
-        }
-
-        /**
          * 娣诲姞鍐滄埛鍗¤褰曪紝閫�杩橀噾棰濅綔涓哄綋鍓嶄綑棰�
          */
         SeClientCard seClientCard = new SeClientCard();
+        seClientCard.setProtocol(protocol);
         seClientCard.setCardaddr(cardAddr);
         seClientCard.setCardnum(cardNum);
         seClientCard.setClientid(clientId);
@@ -166,7 +143,7 @@
         SeCardOperate seCardOperate = new SeCardOperate();
         seCardOperate.setCardId(cardId);
         seCardOperate.setClientId(clientId);
-        seCardOperate.setMoney(amount);
+        seCardOperate.setMoney(0f);
         seCardOperate.setCardCost(cardCost);
         seCardOperate.setPaymentId(paymentId);
         seCardOperate.setOperateType(OperateTypeENUM.ACTIVE.getCode());
@@ -182,10 +159,13 @@
          * 濡傛灉鎿嶄綔浜哄憳寮�鍗℃椂杈撳叆浜嗗厖鍊奸噾棰濓紝鍒欏紑鍗″悗璋冪敤鍏呭�煎姛鑳�
          * 琛ュ崱闄ゅ锛岃ˉ鍗$殑閫�杩橀噾棰濇槸浠庢寕澶卞崱涓浆绉昏繃鏉ョ殑锛屾病鏈夊疄闄呴噾閽变氦鏄�
          */
-        po.setCardNum(Long.parseLong(cardNum));
         if(amount != null && amount > 0 && originalCardId == null) {
-            po.setClientId(clientId);
-            DtoRecharge dtoRecharge = RechargeDtoMapper.INSTANCT.po2vo(po);
+            DtoRecharge dtoRecharge = new DtoRecharge();
+            dtoRecharge.setCardNum(Long.parseLong(cardNum));
+            dtoRecharge.setAmount(amount);
+            dtoRecharge.setPaymentId(paymentId);
+            dtoRecharge.setRemarks(remarks);
+            dtoRecharge.setOperator(operator);
             dtoRecharge.setMoney(0f);
             dtoRecharge.setGift(0f);
             dtoRecharge.setPrice(0f);
@@ -213,7 +193,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_reissue(@RequestBody @Valid DtoReissue po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -229,8 +209,10 @@
          * operator         鎿嶄綔浜虹紪鍙�
          */
 
+        String protocol;
         String cardAddr = po.getCardAddr();
         String clientNum = "";
+        Long clientId = 0L;
         Long cardNum = po.getCardNum();
         Long cardId = 0L;
         Integer cardCost = Optional.ofNullable(po.getCardCost()).orElse(0);
@@ -238,7 +220,6 @@
         Long paymentId = po.getPaymentId();
         String remarks = po.getRemarks();
         Long operator = po.getOperator();
-        String protocol = null;
 
         // 鍒ゆ柇褰撳墠姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏈ˉ鍗★紝浠呭凡缁忔寕澶变笖鏈ˉ鍗$殑鍙互琛ュ崱
         if(!cardOperateSv.isLostAndUnreplaced(cardNum)) {
@@ -248,7 +229,7 @@
         // 濡傛灉浼犲叆浜嗛��杩橀噾棰濓紝闇�瑕佸垽鏂�佸崱锛堣鎸傚け鐨勬按鍗★級鎸傚け鏃舵槸鍚﹀凡缁忛��娆撅紝鏃犺閫�娆惧灏戦兘鎻愮ず鐢ㄦ埛鎸傚け鏃跺凡閫�娆�
         if(reissueAmount != null && reissueAmount > 0) {
             Double tradeAmount = cardOperateSv.getTradeAmountByCardNo(cardNum);
-            if(tradeAmount != null) {
+            if(tradeAmount != null && tradeAmount > 0) {
                 return BaseResponseUtils.buildErrorMsg(SellResultCode.THE_FEE_CANNOT_BE_REFUNDED.getMessage());
             }
         }
@@ -262,6 +243,8 @@
         }
         clientNum = map.get("clientNum").toString();
         cardId = Long.parseLong(map.get("cardId").toString());
+        clientId = Long.parseLong(map.get("clientId").toString());
+        protocol = map.get("protocol").toString();
 
         /**
          * 濡傛灉鏄ˉ鍗¤皟鐢ㄧ殑寮�鍗′笖杞Щ浜嗛��杩橀噾棰濓紝闇�淇敼鎸傚け鍗′綑棰濅负0
@@ -276,20 +259,17 @@
         /**
          * 娣诲姞寮�鍗¤褰曪紝閫�杩橀噾棰濆啿鍒版柊鍗′腑
          */
-        if(String.valueOf(cardNum).trim().length() == 10) {
-            protocol = "p206V1_0_1";
-        }
-        DtoActiveCard dtoActiveCard = new DtoActiveCard();
-        dtoActiveCard.setProtocol(protocol);
-        dtoActiveCard.setCardAddr(cardAddr);
-        dtoActiveCard.setClientNum(clientNum);
-        dtoActiveCard.setOriginalCardId(cardId);
-        dtoActiveCard.setCardCost(cardCost);
-        dtoActiveCard.setAmount(reissueAmount);
-        dtoActiveCard.setPaymentId(paymentId);
-        dtoActiveCard.setRemarks(remarks);
-        dtoActiveCard.setOperator(operator);
-        BaseResponse<java.lang.Boolean> baseResponse_addActive = add_active(dtoActiveCard, null);
+        ActiveCard activeCard = new ActiveCard();
+        activeCard.setProtocol(protocol);
+        activeCard.setCardAddr(cardAddr);
+        activeCard.setClientId(clientId);
+        activeCard.setOriginalCardId(cardId);
+        activeCard.setCardCost(cardCost);
+        activeCard.setAmount(reissueAmount);
+        activeCard.setPaymentId(paymentId);
+        activeCard.setRemarks(remarks);
+        activeCard.setOperator(operator);
+        BaseResponse<java.lang.Boolean> baseResponse_addActive = add_active(activeCard, null);
 
         if(!baseResponse_addActive.getCode().equals("0001")) {
             return BaseResponseUtils.buildErrorMsg(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
@@ -304,6 +284,7 @@
         map_response.put("projectNo", projectNo);
         map_response.put("orderNumber", orderNumber);
         map_response.put("cardNum", cardNum);
+        map_response.put("protocol", protocol);
         return BaseResponseUtils.buildSuccess(map_response) ;
     }
 
@@ -318,7 +299,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_recharge(@RequestBody @Valid DtoRecharge po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
         return cardOperateSv.addRecharge(po);
     }
@@ -334,7 +315,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_cancel(@RequestBody @Valid DtoCancel po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -425,7 +406,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_loss(@RequestBody @Valid DtoLoss po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -518,7 +499,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_reversal(@RequestBody @Valid DtoReversal po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -607,7 +588,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_refund(@RequestBody @Valid DtoRefund po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -691,7 +672,7 @@
     @SsoAop()
     public BaseResponse<Boolean> add_unlock(@RequestBody @Valid DtoUnlock po, BindingResult bindingResult){
         if(bindingResult != null && bindingResult.hasErrors()){
-            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
         /**
@@ -838,7 +819,7 @@
         try {
             QueryResultVo<List<VoActiveCard>> res = cardOperateSv.getActiveCards(vo);
             if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_ActiveCards.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_ActiveCards.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
@@ -867,7 +848,7 @@
         try {
             QueryResultVo<List<VoReissueCard>> res = cardOperateSv.getReissueCards(vo);
             if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_ReissueCards.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_ReissueCards.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
@@ -898,13 +879,13 @@
         // 楠岃瘉鎿嶄綔绫诲瀷鏄惁姝g‘
         Integer operateType = Optional.ofNullable(vo.getOperateType()).orElse(0);
         if(operateType != 3 && operateType != 6 && operateType != 7 && operateType != 8) {
-            return BaseResponseUtils.buildFail(SellResultCode.PARAMS_ERROR.getMessage());
+            return BaseResponseUtils.buildErrorMsg(SellResultCode.PARAMS_ERROR.getMessage());
         }
 
         try {
             QueryResultVo<List<VoOperate>> res = cardOperateSv.getCommonOperations(vo);
             if(res.itemTotal == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_CANCELS.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_CANCELS.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
@@ -933,7 +914,7 @@
         try {
             Map res = Optional.ofNullable(cardOperateSv.getReceipts(vo)).orElse(new HashMap());
             if(res.size() == 0) {
-                return BaseResponseUtils.buildFail(SellResultCode.No_RECEIPTS.getMessage());
+                return BaseResponseUtils.buildErrorMsg(SellResultCode.No_RECEIPTS.getMessage());
             }
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {

--
Gitblit v1.8.0