From 2507f1d9d720ffcc1a1ef1eed31a88db976c9abd Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 19 六月 2025 09:33:20 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV
---
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplement.java | 42 +++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml | 2
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 243 +++++++++++++++++++++++++++++
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 14 +
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 2
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java | 7
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java | 63 +++++++
pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRepaySupplement.java | 53 ++++++
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplementSimple.java | 36 ++++
9 files changed, 450 insertions(+), 12 deletions(-)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
index ac754fc..ab50970 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeCardOperateMapper.java
@@ -275,4 +275,11 @@
* @return
*/
Date getOperateTime(String orderNumber);
+
+ /**
+ * 鍏呭�兼満浣跨敤鏍规嵁璁㈠崟鍙疯幏鍙栨搷浣滆褰�
+ * @param orderNumber
+ * @return
+ */
+ VoRepaySupplementSimple getCardOperateByOrderNumber(String orderNumber);
}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplement.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplement.java
new file mode 100644
index 0000000..338751c
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplement.java
@@ -0,0 +1,42 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-06-12 13:41
+ * @LastEditTime 2025-06-12 13:41
+ * @Description 鍏呭�兼満鐢ㄨ繑鍥炶鍥惧璞★紙琛ユ墸銆佽繑杩橈級
+ */
+
+@Data
+@JsonPropertyOrder({"balance", "waterPrice", "time", "orderNo"})
+public class VoRepaySupplement {
+ public static final long serialVersionUID = 202506121348001L;
+
+ /**
+ * 琛ユ墸/杩旇繕鍚庝綑棰�
+ */
+ private Float balance;
+
+ /**
+ * 姘翠环
+ */
+ private Double waterPrice;
+
+ /**
+ * 鎿嶄綔鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date time;
+
+ /**
+ * 璁㈠崟鍙�
+ */
+ private String orderNo;
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplementSimple.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplementSimple.java
new file mode 100644
index 0000000..cde9455
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoRepaySupplementSimple.java
@@ -0,0 +1,36 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-06-12 16:55
+ * @LastEditTime 2025-06-12 16:55
+ * @Description 姘村崱鎿嶄綔璁板綍浼犺緭瀵硅薄锛岃ˉ鎵e強杩旇繕浣跨敤
+ */
+
+@Data
+@JsonPropertyOrder({"money", "refundAmount", "operateTime"})
+public class VoRepaySupplementSimple {
+ public static final long serialVersionUID = 202506121646001L;
+
+ /**
+ * 鎿嶄綔鍓嶄綑棰�
+ */
+ private Float money;
+
+ /**
+ * 琛ユ墸閲戦鎴栬繑杩橀噾棰�
+ */
+ private Float refundAmount;
+
+ /**
+ * 鎿嶄綔鏃堕棿
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+ private Date operateTime;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
index 5f0e848..6f3c47b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml
@@ -1129,4 +1129,18 @@
ORDER BY operate_dt DESC
LIMIT 1
</select>
+
+ <!--鍏呭�兼満浣跨敤鏍规嵁璁㈠崟鍙疯幏鍙栨搷浣滆褰�-->
+ <select id="getCardOperateByOrderNumber" resultType="com.dy.pipIrrGlobal.voSe.VoRepaySupplementSimple">
+ SELECT
+ money,
+ refund_amount AS refundAmount,
+ operate_dt AS operateTime
+ FROM se_card_operate
+ WHERE order_no = #{orderNumber}
+ ORDER BY operate_dt DESC
+ LIMIT 1
+ </select>
+
+
</mapper>
\ No newline at end of file
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 4ec263b..8bd3f8e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -804,7 +804,7 @@
card.protocol AS cardAgreement
FROM se_client_card card
INNER JOIN se_client cli ON cli.id = card.clientId
- WHERE card.cardAddr = #{cardAddr}
+ WHERE card.cardAddr = #{cardAddr} AND card.state != 4
LIMIT 1
</select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml
index 01a62d3..55b0206 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeManagerCardMapper.xml
@@ -158,7 +158,7 @@
NULL AS lastRechargeTime,
card.protocol AS cardcardAgreement
FROM se_manager_card card
- WHERE card.card_addr = #{cardAddr}
+ WHERE card.card_addr = #{cardAddr} AND card.state != 4
LIMIT 1
</select>
</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
index defb115..3eef618 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardCtrl.java
@@ -4,10 +4,7 @@
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pipIrrGlobal.voSe.VoTermActiveCard;
-import com.dy.pipIrrGlobal.voSe.VoTermCard;
-import com.dy.pipIrrGlobal.voSe.VoTermClient;
-import com.dy.pipIrrGlobal.voSe.VoTermCommon;
+import com.dy.pipIrrGlobal.voSe.*;
import com.dy.pipIrrTerminal.card.dto.*;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
@@ -167,6 +164,58 @@
}
/**
+ * 琛ユ墸
+ * @param po
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "termRepay", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<VoRepaySupplement> termRepay(@RequestBody @Valid DtoRepaySupplement po, BindingResult bindingResult) {
+ if (bindingResult != null && bindingResult.hasErrors()) {
+ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ if(po.getRepayMorny() == null || po.getRepayMorny() <= 0) {
+ return BaseResponseUtils.buildErrorMsg("琛ユ墸閲戦涓嶈兘涓虹┖涓旈渶澶т簬0");
+ }
+
+ if(po.getRepayMorny() > po.getBalance()) {
+ return BaseResponseUtils.buildErrorMsg("琛ユ墸閲戦涓嶈兘澶т簬琛ユ墸鍓嶄綑棰�");
+ }
+
+ Map map_result = cardSv.repay(po);
+ if (map_result.get("success").equals(false)) {
+ return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
+ }
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
+ }
+
+ /**
+ * 杩旇繕
+ * @param po
+ * @param bindingResult
+ * @return
+ */
+ @PostMapping(path = "supplement", consumes = MediaType.APPLICATION_JSON_VALUE)
+ @SsoAop()
+ public BaseResponse<VoRepaySupplement> supplement(@RequestBody @Valid DtoRepaySupplement po, BindingResult bindingResult) {
+ if (bindingResult != null && bindingResult.hasErrors()) {
+ return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+ }
+
+ if(po.getSupplementMoney() == null || po.getSupplementMoney() <= 0) {
+ return BaseResponseUtils.buildErrorMsg("杩旇繕閲戦涓嶈兘涓虹┖涓旈渶澶т簬0");
+ }
+
+ Map map_result = cardSv.supplement(po);
+ if (map_result.get("success").equals(false)) {
+ return BaseResponseUtils.buildErrorMsg(map_result.get("msg").toString());
+ }
+ return BaseResponseUtils.buildSuccess(map_result.get("content"));
+ }
+
+ /**
* 鎿嶄綔鎵ц鍥炶皟
*
* @param po
@@ -196,7 +245,11 @@
@SsoAop()
public BaseResponse<VoTermCard> readCard(@RequestParam String cardAddr){
try {
- return BaseResponseUtils.buildSuccess(cardSv.readCard(cardAddr));
+ VoTermCard voTermCard = cardSv.readCard(cardAddr);
+ if(voTermCard == null) {
+ return BaseResponseUtils.buildNonExist();
+ }
+ return BaseResponseUtils.buildSuccess(voTermCard);
} catch (Exception e) {
log.error("鏌ヨ鍐滄埛寮傚父", e);
return BaseResponseUtils.buildException(e.getMessage()) ;
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 d915722..bb6f4c4 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
@@ -6,10 +6,7 @@
import com.dy.pipIrrGlobal.pojoSe.SeCardOperate;
import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory;
-import com.dy.pipIrrGlobal.voSe.VoAfterRecharge;
-import com.dy.pipIrrGlobal.voSe.VoTermActiveCard;
-import com.dy.pipIrrGlobal.voSe.VoTermCard;
-import com.dy.pipIrrGlobal.voSe.VoTermCommon;
+import com.dy.pipIrrGlobal.voSe.*;
import com.dy.pipIrrTerminal.card.dto.*;
import com.dy.pipIrrTerminal.card.enums.CardStateENUM;
import com.dy.pipIrrTerminal.card.enums.LastOperateENUM;
@@ -215,6 +212,74 @@
* @return
*/
public Map canCancel(DtoCancel po) {
+ Map map = new HashMap<>();
+ map.put("success", false);
+ map.put("content", null);
+
+ Long cardNum = po.getCardNum();
+ String stateName = seClientCardMapper.getCardStateByCardNum(cardNum);
+ if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
+ map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
+ return map;
+ }
+
+ /**
+ * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+ */
+ Map map_card = Optional.ofNullable(seClientCardMapper.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+ if (map_card == null || map_card.size() <= 0) {
+ map.put("msg", "鍗″彿閿欒锛岃鍗′笉瀛樺湪");
+ return map;
+ }
+ CardSimple card = new CardSimple();
+ card.setCardId(Long.parseLong(map_card.get("cardId").toString()));
+ card.setClientId(Long.parseLong(map_card.get("clientId").toString()));
+
+ map.put("success", true);
+ map.put("content", card);
+ return map;
+ }
+
+ /**
+ * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互琛ユ墸
+ * @param po
+ * @return
+ */
+ public Map canRepay(DtoRepaySupplement po) {
+ Map map = new HashMap<>();
+ map.put("success", false);
+ map.put("content", null);
+
+ Long cardNum = po.getCardNum();
+ String stateName = seClientCardMapper.getCardStateByCardNum(cardNum);
+ if(stateName == null || stateName.equals("") || !stateName.equals("姝e父")) {
+ map.put("msg", stateName + ", " + "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔");
+ return map;
+ }
+
+ /**
+ * 渚濇嵁姘村崱缂栧彿鑾峰彇姘村崱琛ㄤ富閿強鍐滄埛缂栧彿
+ */
+ Map map_card = Optional.ofNullable(seClientCardMapper.getCardIdAndClientNum(cardNum)).orElse(new HashMap());
+ if (map_card == null || map_card.size() <= 0) {
+ map.put("msg", "鍗″彿閿欒锛岃鍗′笉瀛樺湪");
+ return map;
+ }
+ CardSimple card = new CardSimple();
+ card.setCardId(Long.parseLong(map_card.get("cardId").toString()));
+ card.setClientId(Long.parseLong(map_card.get("clientId").toString()));
+
+ map.put("success", true);
+ map.put("content", card);
+ return map;
+ }
+
+ /**
+ * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互杩旇繕
+ * @param po
+ * @return
+ */
+ public Map canSupplement(DtoRepaySupplement po) {
Map map = new HashMap<>();
map.put("success", false);
map.put("content", null);
@@ -757,6 +822,109 @@
}
/**
+ * 琛ユ墸
+ * @param po
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public Map repay(DtoRepaySupplement po) {
+ Map map = new HashMap<>();
+ map.put("success", false);
+ map.put("content", null);
+ String orderNo = generateOrderNo();
+ Date operateTime = new Date();
+ Double waterPrice = Optional.ofNullable(prWaterPriceMapper.getPrice()).orElse(0.0);
+
+ Map map_canRepay = canRepay(po);
+ if(map_canRepay.get("success").equals(false)) {
+ map.put("msg", map_canRepay.get("msg").toString());
+ return map;
+ }
+ CardSimple card = (CardSimple) map_canRepay.get("content");
+ Long cardId = card.getCardId();
+ Long clientId = card.getClientId();
+
+ SeCardOperate seCardOperate = new SeCardOperate();
+ seCardOperate.setCardId(cardId);
+ seCardOperate.setClientId(clientId);
+ seCardOperate.setMoney(po.getBalance());
+ seCardOperate.setRefundAmount(po.getRepayMorny());
+ seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode());
+ seCardOperate.setRemarks(po.getRemarks());
+ seCardOperate.setOperator(po.getOperator());
+ seCardOperate.setOperateDt(operateTime);
+ seCardOperate.setOrderNo(orderNo);
+ seCardOperate.setOperateValid((byte) 1);
+ seCardOperateMapper.insert(seCardOperate);
+ if (seCardOperate.getId() == 0) {
+ map.put("msg", "琛ユ墸澶辫触-琛ユ墸璁板綍鍐欏叆寮傚父");
+ return map;
+ }
+
+ VoRepaySupplement voRepaySupplement = new VoRepaySupplement();
+ voRepaySupplement.setBalance(po.getBalance() - po.getRepayMorny());
+ voRepaySupplement.setWaterPrice(waterPrice);
+ voRepaySupplement.setTime(operateTime);
+ voRepaySupplement.setOrderNo(orderNo);
+
+ map.put("success", true);
+ map.put("msg", "鎿嶄綔鎴愬姛");
+ map.put("content", voRepaySupplement);
+ return map;
+ }
+
+ /**
+ * 杩旇繕
+ * @param po
+ * @return
+ */
+ @Transactional(rollbackFor = Exception.class)
+ public Map supplement(DtoRepaySupplement po) {
+ Map map = new HashMap<>();
+ map.put("success", false);
+ map.put("content", null);
+ String orderNo = generateOrderNo();
+ Date operateTime = new Date();
+ Double waterPrice = Optional.ofNullable(prWaterPriceMapper.getPrice()).orElse(0.0);
+
+ Map map_canSupplement = canSupplement(po);
+ if(map_canSupplement.get("success").equals(false)) {
+ map.put("msg", map_canSupplement.get("msg").toString());
+ return map;
+ }
+ CardSimple card = (CardSimple) map_canSupplement.get("content");
+ Long cardId = card.getCardId();
+ Long clientId = card.getClientId();
+
+ SeCardOperate seCardOperate = new SeCardOperate();
+ seCardOperate.setCardId(cardId);
+ seCardOperate.setClientId(clientId);
+ seCardOperate.setMoney(po.getBalance());
+ seCardOperate.setRefundAmount(po.getSupplementMoney());
+ seCardOperate.setOperateType(OperateTypeENUM.WRITE_BACK.getCode());
+ seCardOperate.setRemarks(po.getRemarks());
+ seCardOperate.setOperator(po.getOperator());
+ seCardOperate.setOperateDt(operateTime);
+ seCardOperate.setOrderNo(orderNo);
+ seCardOperate.setOperateValid((byte) 1);
+ seCardOperateMapper.insert(seCardOperate);
+ if (seCardOperate.getId() == 0) {
+ map.put("msg", "杩旇繕澶辫触-杩旇繕璁板綍鍐欏叆寮傚父");
+ return map;
+ }
+ VoRepaySupplement voRepaySupplement = new VoRepaySupplement();
+ voRepaySupplement.setBalance(po.getBalance() + po.getSupplementMoney());
+ voRepaySupplement.setWaterPrice(waterPrice);
+ voRepaySupplement.setTime(operateTime);
+ voRepaySupplement.setOrderNo(orderNo);
+
+ map.put("success", true);
+ map.put("msg", "鎿嶄綔鎴愬姛");
+ map.put("content", voRepaySupplement);
+ return map;
+ }
+
+ /**
* 鎿嶄綔鍥炶皟
* @param po
* @return
@@ -838,7 +1006,30 @@
map.put("msg", "琛ュ崱鍥炶皟澶辫触");
return map;
}
-
+ } else if (operateType == 5) {
+ /**
+ * 琛ユ墸鎿嶄綔鎵ц閫氱煡
+ * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
+ * 2. 淇敼姘村崱琛ㄦ搷浣滀俊鎭強浣欓
+ */
+ Integer rec_ope = turnOperateValidByOrderNumber(orderNumber);
+ Integer rec_card = updateCardInfo_repay(cardId, orderNumber);
+ if (rec_ope == 0 || rec_card == 0) {
+ map.put("msg", "琛ユ墸鍥炶皟澶辫触");
+ return map;
+ }
+ } else if (operateType == 6) {
+ /**
+ * 杩旇繕鎿嶄綔鎵ц閫氱煡
+ * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥
+ * 2. 淇敼姘村崱琛ㄦ搷浣滀俊鎭強浣欓
+ */
+ Integer rec_ope = turnOperateValidByOrderNumber(orderNumber);
+ Integer rec_card = updateCardInfo_supplement(cardId, orderNumber);
+ if (rec_ope == 0 || rec_card == 0) {
+ map.put("msg", "杩旇繕鍥炶皟澶辫触");
+ return map;
+ }
}
map.put("success", true);
@@ -917,6 +1108,48 @@
}
/**
+ * 淇敼琛ユ墸姘村崱琛ㄨ褰曞強浣欓
+ * @param cardId
+ * @param orderNumber
+ * @return
+ */
+ public Integer updateCardInfo_repay(Long cardId, String orderNumber) {
+ VoRepaySupplementSimple po = seCardOperateMapper.getCardOperateByOrderNumber(orderNumber);
+ Float money = Optional.ofNullable(po.getMoney()).orElse(0f);
+ Float refundAmount = Optional.ofNullable(po.getRefundAmount()).orElse(0f);
+ Date operateTime = po.getOperateTime();
+
+ SeClientCard clientCard = new SeClientCard();
+ clientCard.setId(cardId);
+ clientCard.setRefunddt(operateTime);
+ clientCard.setMoney(money - refundAmount);
+ clientCard.setState(CardStateENUM.NORMAL.getCode());
+ clientCard.setLastoper(LastOperateENUM.REFUND.getCode());
+ return seClientCardMapper.updateByPrimaryKeySelective(clientCard);
+ }
+
+ /**
+ * 淇敼杩旇繕姘村崱琛ㄨ褰曞強浣欓
+ * @param cardId
+ * @param orderNumber
+ * @return
+ */
+ public Integer updateCardInfo_supplement(Long cardId, String orderNumber) {
+ VoRepaySupplementSimple po = seCardOperateMapper.getCardOperateByOrderNumber(orderNumber);
+ Float money = Optional.ofNullable(po.getMoney()).orElse(0f);
+ Float refundAmount = Optional.ofNullable(po.getRefundAmount()).orElse(0f);
+ Date operateTime = po.getOperateTime();
+
+ SeClientCard clientCard = new SeClientCard();
+ clientCard.setId(cardId);
+ clientCard.setRefunddt(operateTime);
+ clientCard.setMoney(money + refundAmount);
+ clientCard.setState(CardStateENUM.NORMAL.getCode());
+ clientCard.setLastoper(LastOperateENUM.WRITE_BACK.getCode());
+ return seClientCardMapper.updateByPrimaryKeySelective(clientCard);
+ }
+
+ /**
* 鍒ゆ柇鎸囧畾姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏃犺ˉ鍗¤褰�
* @param cardNum
* @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRepaySupplement.java b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRepaySupplement.java
new file mode 100644
index 0000000..227fc54
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/dto/DtoRepaySupplement.java
@@ -0,0 +1,53 @@
+package com.dy.pipIrrTerminal.card.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2025-06-11 13:46
+ * @LastEditTime 2025-06-11 13:46
+ * @Description 琛ユ墸/杩旇繕浼犱紶杈撳璞�
+ */
+
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class DtoRepaySupplement {
+ public static final long serialVersionUID = 202506111347001L;
+
+ /**
+ * 姘村崱缂栧彿
+ */
+ @NotNull(message = "姘村崱缂栧彿涓嶈兘涓虹┖")
+ private Long cardNum;
+
+ /**
+ * 琛ユ墸閲戦锛岃ˉ鎵f帴鍙d娇鐢紝浠g爜涓垽鏂槸鍚︿负绌�
+ */
+ private Float repayMorny;
+
+ /**
+ * 杩旇繕閲戦锛岃繑杩樻帴鍙d娇鐢紝浠g爜涓垽鏂槸鍚︿负绌�
+ */
+ private Float supplementMoney;
+
+ /**
+ * 琛ユ墸鍓嶄綑棰�
+ */
+ @NotNull(message = "琛ユ墸鍓嶄綑棰濅笉鑳戒负绌�")
+ private Float balance;
+
+ /**
+ * 澶囨敞淇℃伅
+ */
+ private String remarks;
+
+ /**
+ * 鎿嶄綔浜虹紪鍙�
+ */
+ @NotNull(message = "鎿嶄綔浜轰笉鑳戒负绌�")
+ private Long operator;
+}
--
Gitblit v1.8.0