From 9d0512aa6a192ee105ff9251e68a4360c7355319 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期二, 10 六月 2025 18:34:53 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 160 insertions(+), 4 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 af93c99..5c63db2 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 @@ -1,6 +1,5 @@ package com.dy.pipIrrTerminal.card; -import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper; import com.dy.pipIrrGlobal.daoSe.SeCardOperateMapper; import com.dy.pipIrrGlobal.daoSe.SeClientCardMapper; @@ -11,7 +10,7 @@ import com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory; import com.dy.pipIrrGlobal.voSe.VoAfterRecharge; import com.dy.pipIrrGlobal.voSe.VoTermActiveCard; -import com.dy.pipIrrGlobal.voSe.VoTermRecharge; +import com.dy.pipIrrGlobal.voSe.VoTermCommon; import com.dy.pipIrrTerminal.card.dto.*; import com.dy.pipIrrTerminal.card.enums.CardStateENUM; import com.dy.pipIrrTerminal.card.enums.LastOperateENUM; @@ -23,7 +22,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -170,6 +168,40 @@ card.setCardId(Long.parseLong(map_card.get("cardId").toString())); card.setClientId(Long.parseLong(map_card.get("clientId").toString())); card.setProtocol(map_card.get("protocol").toString()); + + map.put("success", true); + map.put("content", card); + return map; + } + + /** + * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互娉ㄩ攢 + * @param po + * @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); @@ -467,7 +499,7 @@ return map; } - VoTermRecharge voTermRecharge = new VoTermRecharge(); + VoTermCommon voTermRecharge = new VoTermCommon(); voTermRecharge.setProjectNo(projectNo); voTermRecharge.setCardNum(po.getCardNum()); voTermRecharge.setOrderNo(orderNo); @@ -522,6 +554,11 @@ return map; } + /** + * 鎸傚け + * @param po + * @return + */ @Transactional(rollbackFor = Exception.class) public Map reportLoss(DtoLoss po) { Map map = new HashMap<>(); @@ -575,6 +612,55 @@ } /** + * 閿�鍗� + * @param po + * @return + */ + @Transactional(rollbackFor = Exception.class) + public Map cancel(DtoCancel po) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("content", null); + String orderNo = generateOrderNo(); + + Map map_canCancel = canCancel(po); + if(map_canCancel.get("success").equals(false)) { + map.put("msg", map_canCancel.get("msg").toString()); + return map; + } + CardSimple card = (CardSimple) map_canCancel.get("content"); + Long cardId = card.getCardId(); + Long clientId = card.getClientId(); + + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setTradeAmount(-po.getRefund()); + seCardOperate.setPaymentId(po.getRefundType()); + seCardOperate.setOperateType(OperateTypeENUM.CANCEL.getCode()); + seCardOperate.setRemarks(po.getRemarks()); + seCardOperate.setOperator(po.getOperator()); + seCardOperate.setOperateDt(new Date()); + seCardOperate.setOrderNo(orderNo); + seCardOperate.setOperateValid((byte) 1); + seCardOperateMapper.insert(seCardOperate); + if (seCardOperate.getId() == 0) { + map.put("msg", "閿�鍗″け璐�-閿�鍗¤褰曞啓鍏ュ紓甯�"); + return map; + } + + VoTermCommon voTermCandel = new VoTermCommon(); + voTermCandel.setProjectNo(projectNo); + voTermCandel.setCardNum(po.getCardNum()); + voTermCandel.setOrderNo(orderNo); + + map.put("success", true); + map.put("msg", "鎿嶄綔鎴愬姛"); + map.put("content", voTermCandel); + return map; + } + + /** * 鎿嶄綔鍥炶皟 * @param po * @return @@ -617,6 +703,46 @@ turnRechargeHistoryValidByOrderNumber(orderNumber); updateCard(cardId, orderNumber+"p"); } + } else if (operateType == 2) { + /** + * 鍏呭�兼搷浣滄墽琛岄�氱煡 + * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥 + * 2. 鍏呭�煎巻鍙茶褰曟敼涓烘湁鏁� + * 3. 淇敼姘村崱琛ㄧ殑鎿嶄綔淇℃伅 + */ + turnOperateValidByOrderNumber(orderNumber + "p"); + turnRechargeHistoryValidByOrderNumber(orderNumber); + updateCard(cardId, orderNumber+"p"); + }else if (operateType == 3) { + /** + * 閿�鍗℃搷浣滄墽琛岄�氱煡 + * 1. 鎿嶄綔璁板綍鏀逛负鏈夋晥 + * 2. 淇敼姘村崱琛ㄦ搷浣滀俊鎭強浣欓 + */ + + Integer rec_ope = turnOperateValidByOrderNumber(orderNumber); + Integer rec_card = updateCardInfo(cardId, orderNumber); + if (rec_ope == 0 || rec_card == 0) { + map.put("msg", "閿�鍗″洖璋冨け璐�"); + return map; + } + + } else if (operateType == 4) { + /** + * 琛ュ崱鎿嶄綔鎵ц閫氱煡 + * 1. 鏂版按鍗¤褰曟敼涓烘湁鏁� + * 2. 寮�鍗℃搷浣滆褰曟敼涓烘湁鏁� + * 3. 濡傛灉瀛樺湪閫�杩橀噾棰� + * 娓呯┖鍘熷崱浣欓 + */ + Integer rec_card = turnCardValidByOrderNumber(orderNumber); + Integer rec_ope = turnOperateValidByOrderNumber(orderNumber); + emptyCardBalance(orderNumber); + if (rec_card == 0 || rec_ope == 0) { + map.put("msg", "琛ュ崱鍥炶皟澶辫触"); + return map; + } + } map.put("success", true); @@ -663,4 +789,34 @@ } return true; } + + /** + * 濡傛灉琛ュ崱鏃堕��杩樹簡閲戦锛屾竻绌烘寕澶卞崱浣欓 + * @param orderNumber + */ + public Integer emptyCardBalance(String orderNumber) { + Integer rec_empty = 0; + Float noTradeAmount = seCardOperateMapper.getNoTradeAmount(orderNumber); + if(noTradeAmount != null && noTradeAmount > 0) { + rec_empty = seClientCardMapper.emptyCardBalance(orderNumber); + } + return rec_empty; + } + + /** + * 淇敼娉ㄩ攢姘村崱琛ㄧ殑璁板綍鍙婁綑棰濓紙0锛� + * @param orderNumber + * @return + */ + public Integer updateCardInfo(Long cardId, String orderNumber) { + Date operateTime = seCardOperateMapper.getOperateTime(orderNumber); + + SeClientCard clientCard = new SeClientCard(); + clientCard.setId(cardId); + clientCard.setCanceldt(operateTime); + clientCard.setMoney(0f); + clientCard.setState(CardStateENUM.CANCELLED.getCode()); + clientCard.setLastoper(LastOperateENUM.CANCEL.getCode()); + return seClientCardMapper.updateByPrimaryKeySelective(clientCard); + } } -- Gitblit v1.8.0