From e5ac29afd5569196a54bd4f77457848afc7adf55 Mon Sep 17 00:00:00 2001 From: zhubaomin <zhubaomin> Date: 星期四, 24 十月 2024 11:47:25 +0800 Subject: [PATCH] 2024-10-24 朱宝民 添加反写接口,完善各相关查询接口,兼容反写信息 --- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java | 5 +- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml | 2 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml | 3 + pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateSv.java | 19 +++++++++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java | 3 + pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml | 10 +++-- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java | 14 ++++--- pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml | 4 +- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java | 39 +++++++++++++++---- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java | 6 +++ pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java | 5 +- 11 files changed, 81 insertions(+), 29 deletions(-) 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 6ddb1e5..b177eb6 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeCardOperateMapper.xml @@ -251,7 +251,7 @@ LEFT JOIN ba_user us ON ope.operator = us.id LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id <where> - AND ope.operate_type in(1, 2, 5) + AND ope.operate_type in(1, 2, 5,10) AND ope.operate_valid = 2 <if test = "clientName != null and clientName !=''"> AND cli.name like CONCAT('%',#{clientName},'%') @@ -300,6 +300,7 @@ WHEN ope.operate_type = 1 THEN '寮�鍗�' WHEN ope.operate_type = 2 THEN '鍏呭��' WHEN ope.operate_type = 5 THEN '杩旇繕' + WHEN ope.operate_type = 10 THEN '鍙嶅啓' END) AS operateType, ope.operate_dt FROM se_card_operate ope @@ -309,7 +310,7 @@ LEFT JOIN ba_user us ON ope.operator = us.id Left JOIN se_payment_method pay ON ope.payment_id = pay.id <where> - AND ope.operate_type in(1, 2, 5) + AND ope.operate_type in(1, 2, 5,10) AND ope.operate_valid = 2 <if test = "clientName != null and clientName !=''"> AND cli.name like CONCAT('%',#{clientName},'%') @@ -341,7 +342,7 @@ LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id INNER JOIN ba_user us ON ope.operator = us.id <where> - AND ope.operate_type IN(1,2,3,5) + AND ope.operate_type IN(1,2,3,5,10) AND ope.operate_valid = 2 <if test = "villageId != null and villageId > 0"> AND cli.villageId = #{villageId} @@ -371,6 +372,7 @@ WHEN 2 THEN '鍏呭��' WHEN 3 THEN '閿�鍗�' WHEN 5 THEN '琛ユ墸' + WHEN 10 THEN '鍙嶅啓' END) AS operateType, (IFNULL(ope.trade_amount,0.00) + IFNULL(ope.card_cost,0.00)) AS tradeAmount, IFNULL(ope.trade_amount,0.00) AS waterCost, @@ -395,7 +397,7 @@ LEFT JOIN se_payment_method pay ON ope.payment_id = pay.id LEFT JOIN ba_user us ON ope.operator = us.id <where> - AND ope.operate_type IN(1,2,3,5) + AND ope.operate_type IN(1,2,3,5,10) AND ope.operate_valid = 2 <if test = "villageId != null and villageId > 0"> AND cli.villageId = #{villageId} 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 1b18b3c..5c4ed90 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml @@ -454,7 +454,7 @@ <select id="getCardsCount" parameterType="java.util.Map" resultType="java.lang.Long"> SELECT COUNT(*) AS recordCount FROM se_client_card card - INNER JOIN se_client cli ON card.clientId = cli.id + LEFT JOIN se_client cli ON card.clientId = cli.id <where> AND card.state = 1 <if test="clientNum != null and clientNum != ''"> @@ -483,7 +483,7 @@ '鍐滄埛鍗�' AS cardType, FORMAT(card.money, 2) AS money FROM se_client_card card - INNER JOIN se_client cli ON card.clientId = cli.id + LEFT JOIN se_client cli ON card.clientId = cli.id <where> AND card.state = 1 <if test="clientNum != null and clientNum != ''"> diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml index 9499940..d42ffae 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeGeneralMapper.xml @@ -294,6 +294,7 @@ WHEN ope.operate_type = 3 THEN '閿�鍗�' WHEN ope.operate_type = 4 THEN '琛ュ崱' WHEN ope.operate_type = 5 THEN '杩旇繕' + WHEN ope.operate_type = 10 THEN '鍙嶅啓' END AS operateType, Date(ope.operate_dt) AS tradeDate, COUNT(*) AS count, @@ -304,7 +305,7 @@ FROM se_card_operate ope INNER JOIN ba_user us ON us.id = ope.operator <where> - AND ope.operate_type IN(1,2,3,4,5) + AND ope.operate_type IN(1,2,3,4,5,10) AND ope.operate_valid = 2 <if test = "cashierId != null and cashierId > 0"> AND us.id = #{cashierId} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml index 734119c..54d03d4 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVirtualCardMapper.xml @@ -189,7 +189,7 @@ SELECT id, vc_num AS vcNum, - money, + ROUND(money / 100, 2) AS money, in_use AS inUse, (CASE WHEN money <= #{alarmValue} THEN true diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java index cdd3d2d..d849c3f 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/CardOperateCtrl.java @@ -614,8 +614,7 @@ } /** - * 琛ユ墸 - * + * 琛ユ墸銆佸弽鍐� * @param po * @param bindingResult * @return @@ -633,10 +632,11 @@ * clientId 鍐滄埛缂栧彿锛堥潪浼犲叆鍙傛暟锛岀敱cardNum鍙嶆煡锛� * cardNum 姘村崱缂栧彿 * money 鍗$墖浣欓 - * refund 琛ユ墸浣欓 + * refund 琛ユ墸浣欓/鍙嶅啓閲戦 * remarks 澶囨敞 * operator 鎿嶄綔浜虹紪鍙� * refundTime 琛ユ墸鏃堕棿 + * operateType 鎿嶄綔绫诲瀷锛�1-琛ユ墸锛�2-鍙嶅啓 */ Long cardId = 0L; Long clientId = 0L; @@ -645,7 +645,7 @@ Float refund = po.getRefund(); String remarks = po.getRemarks(); Long operator = po.getOperator(); - Date refundTime = new Date(); + Integer operateType = po.getOperateType(); // 楠岃瘉姘村崱鐘舵�佹槸鍚︽敮鎸佸綋鍓嶆搷浣� String stateName = Optional.ofNullable(clientCardSv.getCardStateByCardNum(cardNum)).orElse(""); @@ -685,16 +685,29 @@ SeCardOperate seCardOperate = new SeCardOperate(); seCardOperate.setCardId(cardId); seCardOperate.setClientId(clientId); - seCardOperate.setMoney(money); + if(operateType == 1) { + // 琛ユ墸 + seCardOperate.setMoney(money); + seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode()); + }else { + // 鍙嶅啓 + seCardOperate.setMoney(refund); + seCardOperate.setOperateType(OperateTypeENUM.WRITE_BACK.getCode()); + } + //seCardOperate.setMoney(money); seCardOperate.setRefundAmount(refund); - seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode()); + //seCardOperate.setOperateType(OperateTypeENUM.REFUND.getCode()); seCardOperate.setRemarks(remarks); seCardOperate.setOperator(operator); - seCardOperate.setOperateDt(refundTime); + seCardOperate.setOperateDt(new Date()); seCardOperate.setOperateValid((byte) 1); Long rec = Optional.ofNullable(cardOperateSv.add(seCardOperate)).orElse(0L); if (rec == 0) { - return BaseResponseUtils.buildErrorMsg(SellResultCode.REFUND_FAIL_WRITE_REFUND_ERROR.getMessage()); + if(operateType == 1) { + return BaseResponseUtils.buildErrorMsg(SellResultCode.REFUND_FAIL_WRITE_REFUND_ERROR.getMessage()); + }else { + return BaseResponseUtils.buildErrorMsg(SellResultCode.WRITE_BACK_FAIL_WRITE_BACK_ERROR.getMessage()); + } } return BaseResponseUtils.buildSuccess(true); @@ -881,6 +894,16 @@ cardOperateSv.turnOperateValidByCardId(cardId, operateType); cardOperateSv.updateRefund(operateType, cardId); } + else if (operateType == 10) { + /** + * 鍙嶅啓鎿嶄綔鎵ц閫氱煡 + * 1.鎿嶄綔璁板綍鏀逛负鏈夋晥 + * 2.淇敼姘村崱琛ㄧ殑鎿嶄綔淇℃伅鍙婁綑棰�-浠庢搷浣滆褰曚腑鍙杕oney + * 璇存槑锛氳繑杩樻搷浣滆褰曚腑鐨刴oney灏辨槸鍙嶅啓閲戦 + */ + cardOperateSv.turnOperateValidByCardId(cardId, operateType); + cardOperateSv.updateWriteBack(operateType, cardId); + } return BaseResponseUtils.buildSuccess(); } 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 7f438a3..7b50431 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 @@ -816,4 +816,23 @@ clientCard.setLastoper(LastOperateENUM.REFUND.getCode()); return seClientCardMapper.updateByPrimaryKeySelective(clientCard); } + + /** + * 淇敼鍙嶅啓姘村崱琛ㄧ殑鎿嶄綔淇℃伅鍙婁綑棰� + * @param operateType + * @param cardId + * @return + */ + public Integer updateWriteBack(Integer operateType, Long cardId) { + SeCardOperate cardOperate = seCardOperateMapper.getCardOperate(operateType, cardId); + Date writeBackTime = Optional.ofNullable(cardOperate.getOperateDt()).orElse(new Date()); + Float money = cardOperate.getMoney(); + + SeClientCard clientCard = new SeClientCard(); + clientCard.setId(cardId); + clientCard.setRefunddt(writeBackTime); + clientCard.setMoney(money); + clientCard.setLastoper(LastOperateENUM.WRITE_BACK.getCode()); + return seClientCardMapper.updateByPrimaryKeySelective(clientCard); + } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java index 784c95b..82bde19 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/dto/DtoRefund.java @@ -55,4 +55,10 @@ @Schema(description = "鎿嶄綔浜虹紪鍙�", requiredMode = Schema.RequiredMode.NOT_REQUIRED) @Positive(message = "鎿嶄綔浜虹紪鍙峰繀椤讳负澶т簬0鐨勬暣鏁�") private Long operator; + + /** + * 鎿嶄綔绫诲瀷锛�1-琛ユ墸锛�2-鍙嶅啓 + */ + @NotNull(message = "鎿嶄綔绫诲瀷涓嶈兘涓虹┖") + private Integer operateType; } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java index 722dfdf..8ce605b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/cardOperate/enums/OperateTypeENUM.java @@ -21,9 +21,8 @@ LOSS((byte)6, "鎸傚け"), REVERSAL((byte)7, "鍐叉"), UNLOCK((byte)8, "瑙i攣"), - CONSUME((byte)9, "娑堣垂"); - //CHANGE_CARD((byte)10, "鎹㈠崱"), - //CHANGE_RECHARGE((byte)11, "鎹㈠崱鍏呭��"); + CONSUME((byte)9, "娑堣垂"), + WRITE_BACK((byte)10, "鍙嶅啓"); private final Byte code; private final String message; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java index 29b1e18..b7f7ed9 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/LastOperateENUM.java @@ -21,9 +21,8 @@ LOSS((byte)6, "鎸傚け"), REVERSAL((byte)7, "鍐叉"), UNLOCK((byte)8, "瑙i攣"), - CONSUME((byte)9, "娑堣垂"); - //CHANGE_CARD((byte)10,"鎹㈠崱"), - //CHANGE_RECHARGE((byte)11,"鎹㈠崱鍏呭��"); + CONSUME((byte)9, "娑堣垂"), + WRITE_BACK((byte)10, "鍙嶅啓"); private final Byte code; private final String message; diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java index ef8f6fa..adcce1b 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java @@ -69,9 +69,10 @@ REVERSAL_FAIL_WRITE_REVERSAL_ERROR(60002, "鍐叉澶辫触-鍐叉璁板綍鍐欏叆寮傚父"), /** - * 琛ユ墸 + * 琛ユ墸/鍙嶅啓 */ REFUND_FAIL_WRITE_REFUND_ERROR(70001, "琛ユ墸澶辫触-琛ユ墸璁板綍鍐欏叆寮傚父"), + WRITE_BACK_FAIL_WRITE_BACK_ERROR(70002, "鍙嶅啓澶辫触-鍙嶅啓璁板綍鍐欏叆寮傚父"), /** * 鎬昏处 diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java index 289bacb..6118669 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java @@ -104,14 +104,16 @@ JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com)); if(response != null && response.getString("code").equals("0001")) { JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap"); - HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class); JSONArray jsonArray = new JSONArray(); - for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) { - JSONObject jsonObject = new JSONObject(); - jsonObject.put("rtuAddr", entry.getKey()); - jsonObject.put("isOnLine", entry.getValue()); - jsonArray.add(jsonObject); + if(attachment != null) { + HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class); + for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("rtuAddr", entry.getKey()); + jsonObject.put("isOnLine", entry.getValue()); + jsonArray.add(jsonObject); + } } System.out.println(jsonArray.toJSONString()); -- Gitblit v1.8.0