From 5fefff8c747cbf5d526f6108a215bd813ac36034 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期三, 11 六月 2025 13:44:17 +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 | 137 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 133 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 5c63db2..d915722 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,15 +1,14 @@ 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; -import com.dy.pipIrrGlobal.daoSe.SeClientMapper; -import com.dy.pipIrrGlobal.daoSe.SeRechargeHistoryMapper; +import com.dy.pipIrrGlobal.daoSe.*; 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.pipIrrTerminal.card.dto.*; import com.dy.pipIrrTerminal.card.enums.CardStateENUM; @@ -50,6 +49,9 @@ @Autowired private SeRechargeHistoryMapper seRechargeHistoryMapper; + + @Autowired + private SeManagerCardMapper seManagerCardMapper; @Value("${project.projectNo}") private Integer projectNo; @@ -131,6 +133,39 @@ return map; } + /** + * 鏍规嵁姘村崱缂栧彿鍒ゆ柇璇ュ崱鏄惁鍙互瑙i攣 + * @param po + * @return + */ + public Map canUnlock(DtoUnlock po) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("content", null); + + Long cardNum = po.getCardNum(); + // 鍒ゆ柇褰撳墠姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏈ˉ鍗★紝浠呭凡缁忔寕澶卞叾鏈ˉ鍗$殑鍙互瑙i攣 + if (!isLostAndUnreplaced(cardNum)) { + map.put("msg", "姘村崱鐘舵�佷笉鏀寔褰撳墠鎿嶄綔"); + 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 @@ -612,6 +647,67 @@ } /** + * 瑙i攣 + * @param po + * @return + */ + @Transactional(rollbackFor = Exception.class) + public Map unlock(DtoUnlock po) { + Map map = new HashMap<>(); + map.put("success", false); + map.put("content", null); + + Map map_canUnlock = canUnlock(po); + if(map_canUnlock.get("success").equals(false)) { + map.put("msg", map_canUnlock.get("msg").toString()); + return map; + } + CardSimple card = (CardSimple) map_canUnlock.get("content"); + Long cardId = card.getCardId(); + Long clientId = card.getClientId(); + + /** + * 淇敼鍐滄埛鍗′俊鎭細 + * 鎸傚け鏃堕棿 + * 鏈�鍚庢搷浣滅被鍨�-4 + */ + SeClientCard seClientCard = new SeClientCard(); + seClientCard.setId(cardId); + seClientCard.setUnlockdt(new Date()); + seClientCard.setMoney(po.getMoney()); + seClientCard.setState(CardStateENUM.NORMAL.getCode()); + seClientCard.setLastoper(LastOperateENUM.UNLOCK.getCode()); + Integer rec_updateClientCard = Optional.ofNullable(seClientCardMapper.updateByPrimaryKeySelective(seClientCard)).orElse(0); + if (rec_updateClientCard == 0) { + map.put("msg", "瑙i攣澶辫触-鍐滄埛鍗′慨鏀瑰紓甯�"); + return map; + } + + /** + * 娣诲姞瑙i攣璁板綍 + */ + SeCardOperate seCardOperate = new SeCardOperate(); + seCardOperate.setCardId(cardId); + seCardOperate.setClientId(clientId); + seCardOperate.setMoney(po.getMoney()); + seCardOperate.setOperateType(OperateTypeENUM.UNLOCK.getCode()); + seCardOperate.setRemarks(po.getRemarks()); + seCardOperate.setOperator(po.getOperator()); + seCardOperate.setOperateDt(new Date()); + seCardOperate.setOperateValid((byte) 2); + seCardOperateMapper.insert(seCardOperate); + Long rec = Optional.ofNullable(seCardOperate.getId()).orElse(0L); + if (rec == 0) { + map.put("msg", "瑙i攣澶辫触-瑙i攣璁板綍鍐欏叆寮傚父"); + return map; + } + + map.put("success", true); + map.put("msg", "鎿嶄綔鎴愬姛"); + return map; + } + + /** * 閿�鍗� * @param po * @return @@ -819,4 +915,37 @@ clientCard.setLastoper(LastOperateENUM.CANCEL.getCode()); return seClientCardMapper.updateByPrimaryKeySelective(clientCard); } + + /** + * 鍒ゆ柇鎸囧畾姘村崱鏄惁涓烘寕澶辩姸鎬佷笖鏃犺ˉ鍗¤褰� + * @param cardNum + * @return + */ + public Boolean isLostAndUnreplaced(Long cardNum) { + Integer lostCount = seClientCardMapper.getLostCount(cardNum); + Integer replacedCount = seClientCardMapper.getReplacedCount(cardNum); + if (lostCount > 0 && replacedCount == 0) { + return true; + } + return false; + } + + /** + * 璇诲彇姘村崱淇℃伅 + * @param cardAddr + * @return + */ + public VoTermCard readCard(String cardAddr) { + VoTermCard voTermCard = seClientCardMapper.getTermCardInfo(cardAddr); + if(voTermCard != null) { + return voTermCard; + } + + VoTermCard voTermManagerCard = seManagerCardMapper.getTermManagerCardInfo(cardAddr); + if(voTermManagerCard != null) { + return voTermManagerCard; + } + + return null; + } } -- Gitblit v1.8.0