From 229741972d5998de57d0d246f73c5e7ff0d42530 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期五, 13 九月 2024 08:40:49 +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/cardOperate/CardOperateSv.java |  140 +++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 119 insertions(+), 21 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
index 2dbd8b0..e1b1c04 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java
@@ -7,12 +7,8 @@
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoBa.BaSettingsMapper;
-import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper;
-import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper;
-import com.dy.pipIrrGlobal.daoSe.SeClientMapper;
-import com.dy.pipIrrGlobal.daoSe.SeGeneralMapper;
-import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
-import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
+import com.dy.pipIrrGlobal.daoSe.*;
+import com.dy.pipIrrGlobal.pojoSe.*;
 import com.dy.pipIrrGlobal.voSe.*;
 import com.dy.pipIrrSell.cardOperate.dto.DtoRecharge;
 import com.dy.pipIrrSell.cardOperate.enums.OperateTypeENUM;
@@ -23,6 +19,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.text.DecimalFormat;
@@ -56,6 +53,17 @@
     @Autowired
     private BaSettingsMapper baSettingsMapper;
 
+    @Autowired
+    private SeManagerCardMapper seManagerCardMapper;
+
+    @Autowired
+    private SePaymentMethodMapper sePaymentMethodMapper;
+
+    @Autowired
+    private SeRechargeHistoryMapper seRechargeHistoryMapper;
+
+    @Value("${project.projectNo}")
+    private Integer projectNo;
 
     /**
      * 娣诲姞寮�鍗¤褰�
@@ -88,13 +96,33 @@
     public Long getAreaCodeById(Long clientId) {
         return seClientMapper.getAreaCodeById(clientId);
     }
+
     /**
      * 鏍规嵁琛屾斂鍖哄垝涓叉ā鍧楁煡璇㈡按鍗$紪鍙凤紝寮�鍗′娇鐢�
      * @param areaCode
      * @return
      */
-    String getCardNumOfMax(String areaCode) {
+    public String getCardNumOfMax(String areaCode) {
         return seClientCardMapper.getCardNumOfMax(areaCode);
+    }
+
+    /**
+     * 鏍规嵁琛屾斂鍖哄垝涓叉ā绯婃煡璇㈢鐞嗗崱缂栧彿锛屽垱寤虹鐞嗗崱浣跨敤
+     * @param areaCode
+     * @return
+     */
+    public String getManagerCardNumOfMax(String areaCode) {
+        return seManagerCardMapper.getManagerCardNumOfMax(areaCode);
+    }
+
+    /**
+     * 鍒涘缓绠$悊鍗�
+     * @param po
+     * @return
+     */
+    public Long addManagerCard(SeManagerCard po) {
+        seManagerCardMapper.insert(po);
+        return po.getId();
     }
 
     /**
@@ -118,7 +146,7 @@
 
     /**
      * 娣诲姞鍏呭�艰褰�
-     * 淇敼鍐滄埛淇℃伅銆佹坊鍔犲厖鍊艰褰�
+     * 淇敼鍐滄埛淇℃伅銆佹坊鍔犳按鍗℃搷浣滆褰曘�佹坊鍔犲厖鍊艰褰�
      * @param po
      * @return
      */
@@ -150,13 +178,6 @@
         Long operator = po.getOperator();
         Date rechargeTime = new Date();
 
-        // 濡傛灉浼犲叆鐨勬槸10浣嶇殑姘村崱缂栧彿锛屽崌涓�17浣嶆按鍗$紪鍙�
-        String cardNumS = String.valueOf(cardNum).trim();
-        if(cardNumS.length() == 10) {
-            cardNumS = "100000" + cardNumS.substring(0,6) + "0" + cardNumS.substring(6);
-        }
-        cardNum = Long.valueOf(cardNumS);
-
         // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣�
         String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse("");
         if(stateName.length() == 0 || !stateName.equals("姝e父")) {
@@ -178,18 +199,27 @@
          *      琛ュ崱鏃堕棿
          *      鏈�鍚庢搷浣滅被鍨�-2
          */
+
+        // 鏍规嵁鏀粯鏂瑰紡ID鑾峰彇鏀粯鏂瑰紡鍚嶇О
+        SePaymentMethod sePaymentMethod = sePaymentMethodMapper.selectByPrimaryKey(paymentId);
+        String paymentName = sePaymentMethod.getName();
+
         SeClientCard seClientCard = new SeClientCard();
         seClientCard.setId(cardId);
         seClientCard.setMoney(afterRecharge);
         seClientCard.setRechargedt(rechargeTime);
-        seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ());
+        if(paymentName != null && paymentName.equals("鎹㈠崱")) {
+            seClientCard.setLastoper(LastOperateENUM.CHANGE_RECHARGE.getCode ());
+        }else {
+            seClientCard.setLastoper(LastOperateENUM.RECHARGE.getCode ());
+        }
         Integer rec_updateClientCard = Optional.ofNullable(clientCardSv.UpdateClientCard(seClientCard)).orElse(0);
         if(rec_updateClientCard == 0) {
             return BaseResponseUtils.buildErrorMsg(SellResultCode.RECHARGE_FAIL_WRITE_CLIENT_CARD_ERROR.getMessage());
         }
 
         /**
-         * 娣诲姞鍏呭�艰褰�
+         * 娣诲姞姘村崱鎿嶄綔璁板綍
          */
         SeCardOperate seCardOperate = new SeCardOperate();
         seCardOperate.setCardId(cardId);
@@ -197,7 +227,11 @@
         seCardOperate.setMoney(money);
         seCardOperate.setTradeAmount(amount);
         seCardOperate.setGift(gift);
-        seCardOperate.setOperateType(OperateTypeENUM.RECHARGE.getCode());
+        if(paymentName != null && paymentName.equals("鎹㈠崱")) {
+            seCardOperate.setOperateType(OperateTypeENUM.CHANGE_RECHARGE.getCode());
+        }else {
+            seCardOperate.setOperateType(OperateTypeENUM.RECHARGE.getCode());
+        }
         seCardOperate.setPaymentId(paymentId);
         seCardOperate.setPrice(price);
         seCardOperate.setRemarks(remarks);
@@ -207,10 +241,35 @@
         seCardOperateMapper.insert(seCardOperate);
         Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L);
         if(rec == 0) {
-            return BaseResponseUtils.buildErrorMsg(SellResultCode.REPLACE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
+            return BaseResponseUtils.buildErrorMsg(SellResultCode.RECHARGE_FAIL_WRITE_RECHARGE_ERROR.getMessage());
         }
 
-        return BaseResponseUtils.buildSuccess(true) ;
+        /**
+         * 娣诲姞鍏呭�煎巻鍙茶褰�
+         */
+        SeRechargeHistory seRechargeHistory = new SeRechargeHistory();
+        seRechargeHistory.setCardid(cardId);
+        seRechargeHistory.setClientid(clientId);
+        seRechargeHistory.setMoney(money);
+        seRechargeHistory.setAmount(amount);
+        seRechargeHistory.setGift(gift);
+        seRechargeHistory.setAfterrecharge(afterRecharge);
+        seRechargeHistory.setPaymentid(paymentId);
+        seRechargeHistory.setPrice(price);
+        seRechargeHistory.setRemarks(remarks);
+        seRechargeHistory.setOperator(operator);
+        seRechargeHistory.setOperatedt(rechargeTime);
+        seRechargeHistoryMapper.insert(seRechargeHistory);
+        Long rec_seRechargeHistory = Optional.ofNullable(seRechargeHistory.getId()).orElse(0L);
+        if(rec_seRechargeHistory == 0) {
+            return BaseResponseUtils.buildErrorMsg(SellResultCode.RECHARGE_FAIL_WRITE_RECHARGE_HISTORY_ERROR.getMessage());
+        }
+
+        Map map_response = new HashMap();
+        map_response.put("projectNo", String.format("%02x", projectNo));
+        map_response.put("orderNumber", rec);
+        map_response.put("cardNum", cardNum);
+        return BaseResponseUtils.buildSuccess(map_response) ;
     }
 
     /**
@@ -269,6 +328,11 @@
         // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
         Long itemTotal = Optional.ofNullable(seCardOperateMapper.getTransactionRecordCount(params)).orElse(0L);
 
+        QueryResultVo rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = vo.pageSize ;
+        rsVo.pageCurr = vo.pageCurr ;
+        rsVo.calculateAndSet(itemTotal, params);
+
         List<VoTradeDetails> list = seCardOperateMapper.getTransactions(params);
         if(list.size() == 0) {
             return new HashMap();
@@ -277,13 +341,21 @@
         // 閬嶅巻浜ゆ槗鏄庣粏璁板綍锛屾眹鎬昏喘姘撮噾棰濄�佽喘鍗¢噾棰�
         Double totalWaterCost = 0.0;
         Double totalCardCost = 0.0;
+        Double totalGift = 0.0;
+        Double totalRefund = 0.0;
+
         JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));
         for(int i = 0; i < array.size(); i++) {
             JSONObject job = array.getJSONObject(i);
             Double waterCost = Optional.ofNullable(job.getDouble("waterCost")).orElse(0.0);
             Double cardCost = Optional.ofNullable(job.getDouble("cardCost")).orElse(0.0);
+            Double gift = Optional.ofNullable(job.getDouble("gift")).orElse(0.0);
+            Double refundAmount = Optional.ofNullable(job.getDouble("refundAmount")).orElse(0.0);
+
             totalWaterCost = totalWaterCost + waterCost;
             totalCardCost = totalCardCost + cardCost;
+            totalGift = totalGift + gift;
+            totalRefund = totalRefund + refundAmount;
         }
 
         Map map_record = new HashMap();
@@ -293,6 +365,10 @@
         Map map_result = new HashMap();
         map_result.put("waterCost", df.format(totalWaterCost));
         map_result.put("cardCost", df.format(totalCardCost));
+        map_result.put("gift", df.format(totalGift));
+        map_result.put("refund", df.format(totalRefund));
+
+
         map_result.put("records", map_record);
 
         return map_result;
@@ -363,7 +439,7 @@
     }
 
     /**
-     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇IC鍗℃敞閿�璁板綍
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇閫氱敤鎿嶄綔璁板綍
      * @param queryVo
      * @return
      */
@@ -469,4 +545,26 @@
     public Double getTradeAmountByCardNo(Long cardNum) {
         return seCardOperateMapper.getTradeAmountByCardNo(cardNum);
     }
+
+    /**
+     * 鏍规嵁姘村崱鍦板潃鍒ゆ柇璇ュ崱鏄惁鍙互寮�鍗�
+     * @param cardAddr
+     * @return
+     */
+    public Boolean canActiveCard(String cardAddr) {
+
+        // 鎸囧畾姘村崱鍦板潃鐨勬按鍗℃暟閲�
+        Long cardCount = Optional.ofNullable(seClientCardMapper.getCountByCardAddr(cardAddr)).orElse(0L);
+        if(cardCount == 0) {
+           return true;
+        }
+
+        // 鎸囧畾姘村崱鍦板潃涓旀甯哥姸鎬佹垨鎸傚け鐘舵�佺殑姘村崱鏁伴噺
+        cardCount = Optional.ofNullable(seClientCardMapper.getCountByCardAddrAndState(cardAddr)).orElse(0L);
+        if(cardCount == 0) {
+            return true;
+        }
+
+        return false;
+    }
 }

--
Gitblit v1.8.0