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