From 8948a1c990bc4036628eabaf1b64ee677c634693 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期二, 10 六月 2025 19:59:41 +0800 Subject: [PATCH] 解锁 --- pipIrr-platform/pipIrr-web/pipIrr-web-terminal/src/main/java/com/dy/pipIrrTerminal/card/CardSv.java | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 109 insertions(+), 0 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..6c762ce 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,5 +1,6 @@ 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; @@ -131,6 +132,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 +646,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 +914,18 @@ 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; + } } -- Gitblit v1.8.0