From af551e9df1e59ef94f57007e1f4e8960ba2f8778 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期二, 04 四月 2023 11:15:40 +0800
Subject: [PATCH] optimize charge coupon
---
service-common/src/main/java/com/java110/common/cmd/chargeMachine/StartChargeCmd.java | 77 ++++++++++++++++++++++++--------------
1 files changed, 48 insertions(+), 29 deletions(-)
diff --git a/service-common/src/main/java/com/java110/common/cmd/chargeMachine/StartChargeCmd.java b/service-common/src/main/java/com/java110/common/cmd/chargeMachine/StartChargeCmd.java
index 7678784..7856d40 100644
--- a/service-common/src/main/java/com/java110/common/cmd/chargeMachine/StartChargeCmd.java
+++ b/service-common/src/main/java/com/java110/common/cmd/chargeMachine/StartChargeCmd.java
@@ -27,6 +27,7 @@
import com.java110.po.accountDetail.AccountDetailPo;
import com.java110.po.chargeMachineOrder.ChargeMachineOrderPo;
import com.java110.po.chargeMachineOrderAcct.ChargeMachineOrderAcctPo;
+import com.java110.po.chargeMachineOrderCoupon.ChargeMachineOrderCouponPo;
import com.java110.po.chargeMachinePort.ChargeMachinePortPo;
import com.java110.po.couponPropertyUser.CouponPropertyUserPo;
import com.java110.utils.exception.CmdException;
@@ -82,6 +83,9 @@
@Autowired
private IChargeRuleFeeV1InnerServiceSMO chargeRuleFeeV1InnerServiceSMOImpl;
+ @Autowired
+ private IChargeMachineOrderCouponV1InnerServiceSMO chargeMachineOrderCouponV1InnerServiceSMOImpl;
+
@Override
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖轰俊鎭�");
@@ -124,9 +128,9 @@
if (chargeRuleFeeDtos == null || chargeRuleFeeDtos.size() < 1) {
throw new CmdException("鏈缃厖鍊兼敹璐�");
}
- reqJson.put("durationPrice",chargeRuleFeeDtos.get(chargeRuleFeeDtos.size()-1).getDurationPrice());
+ reqJson.put("durationPrice", chargeRuleFeeDtos.get(chargeRuleFeeDtos.size() - 1).getDurationPrice());
- BigDecimal payMoneyDec = new BigDecimal(Double.parseDouble(chargeRuleFeeDtos.get(chargeRuleFeeDtos.size()-1).getDurationPrice()));
+ BigDecimal payMoneyDec = new BigDecimal(Double.parseDouble(chargeRuleFeeDtos.get(chargeRuleFeeDtos.size() - 1).getDurationPrice()));
double payMoney = payMoneyDec.multiply(new BigDecimal(duration)).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
@@ -253,11 +257,11 @@
resultVo.setData(orderId);
double couponDurationHours = 0.0;
- //鎵f
- if (reqJson.containsKey("couponIds") && !StringUtil.isEmpty(reqJson.getString("couponIds"))) {
- //todo 浼樻儬鍒告姷鎵�
- couponDurationHours = withholdCoupon(reqJson, chargeMachineDtos, orderId);
- }
+
+
+ //todo 浼樻儬鍒告姷鎵�
+ withholdCoupon(reqJson, chargeMachineDtos, orderId);
+
if (durationHours - couponDurationHours > 0) {
// todo 3.0 璐︽埛鎵f
@@ -274,10 +278,14 @@
* @param chargeMachineDtos
* @param orderId
*/
- private double withholdCoupon(JSONObject reqJson, List<ChargeMachineDto> chargeMachineDtos, String orderId) {
+ private void withholdCoupon(JSONObject reqJson, List<ChargeMachineDto> chargeMachineDtos, String orderId) {
+ if (!reqJson.containsKey("couponIds") || StringUtil.isEmpty(reqJson.getString("couponIds"))) {
+ return;
+ }
int flag;
- double hours = 0;
- String couponNames = "";
+// double hours = 0;
+// String couponNames = "";
+ ChargeMachineOrderCouponPo chargeMachineOrderCouponPo = null;
for (String couponId : reqJson.getString("couponIds").split(",")) {
String requestId = DistributedLock.getLockUUID();
String key = this.getClass().getSimpleName() + reqJson.getString("couponId");
@@ -301,8 +309,6 @@
throw new CmdException("鏍搁攢澶辫触");
}
- couponNames += ("浼樻儬鍒稿悕绉帮細" + couponPropertyUserDtos.get(0).getCouponName() + ",浼樻儬鍒哥紪鍙凤細" + couponId + ";");
-
CouponPropertyPoolConfigDto couponPropertyPoolConfigDto = new CouponPropertyPoolConfigDto();
couponPropertyPoolConfigDto.setCouponId(couponPropertyUserDtos.get(0).getCppId());
couponPropertyPoolConfigDto.setColumnKey("hours");
@@ -311,30 +317,43 @@
Assert.listOnlyOne(couponPropertyPoolConfigDtos, "鏈寘鍚紭鎯犲埜閰嶇疆淇℃伅");
double value = Double.parseDouble(couponPropertyPoolConfigDtos.get(0).getColumnValue());
- hours += value;
+
+ chargeMachineOrderCouponPo = new ChargeMachineOrderCouponPo();
+ chargeMachineOrderCouponPo.setCouponId(couponId);
+ chargeMachineOrderCouponPo.setCouponName(couponPropertyUserDtos.get(0).getCouponName());
+ chargeMachineOrderCouponPo.setOrderId(orderId);
+ chargeMachineOrderCouponPo.setCommunityId(chargeMachineDtos.get(0).getCommunityId());
+ chargeMachineOrderCouponPo.setState("W");
+ chargeMachineOrderCouponPo.setCmocId(GenerateCodeFactory.getGeneratorId("11"));
+ chargeMachineOrderCouponPo.setHours(value + "");
+ chargeMachineOrderCouponV1InnerServiceSMOImpl.saveChargeMachineOrderCoupon(chargeMachineOrderCouponPo);
+
+// couponNames += ("浼樻儬鍒稿悕绉帮細" + couponPropertyUserDtos.get(0).getCouponName() + "(" + couponId + "),灏忔椂锛�"+value+";");
+//
+// hours += value;
} finally {
DistributedLock.releaseDistributedLock(requestId, key);
}
}
- hours = Math.ceil(hours);
+// hours = Math.ceil(hours);
- ChargeMachineOrderAcctPo chargeMachineOrderAcctPo = new ChargeMachineOrderAcctPo();
- chargeMachineOrderAcctPo.setAcctDetailId("-1");
- chargeMachineOrderAcctPo.setAmount("0");
- chargeMachineOrderAcctPo.setCmoaId(GenerateCodeFactory.getGeneratorId("11"));
- chargeMachineOrderAcctPo.setOrderId(orderId);
- chargeMachineOrderAcctPo.setAcctId(reqJson.getString("acctId"));
- chargeMachineOrderAcctPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
- chargeMachineOrderAcctPo.setEndTime(DateUtil.getAddHoursStringA(DateUtil.getCurrentDate(), new Double(hours).intValue()));
- chargeMachineOrderAcctPo.setRemark("浼樻儬鍒告姷鎵�," + couponNames);
- chargeMachineOrderAcctPo.setCommunityId(chargeMachineDtos.get(0).getCommunityId());
- chargeMachineOrderAcctPo.setEnergy("0");
- chargeMachineOrderAcctPo.setDurationPrice(reqJson.getString("durationPrice"));
+// ChargeMachineOrderAcctPo chargeMachineOrderAcctPo = new ChargeMachineOrderAcctPo();
+// chargeMachineOrderAcctPo.setAcctDetailId("-1");
+// chargeMachineOrderAcctPo.setAmount("0");
+// chargeMachineOrderAcctPo.setCmoaId(GenerateCodeFactory.getGeneratorId("11"));
+// chargeMachineOrderAcctPo.setOrderId(orderId);
+// chargeMachineOrderAcctPo.setAcctId(reqJson.getString("acctId"));
+// chargeMachineOrderAcctPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+// chargeMachineOrderAcctPo.setEndTime(DateUtil.getAddHoursStringA(DateUtil.getCurrentDate(), new Double(hours).intValue()));
+// chargeMachineOrderAcctPo.setRemark("浼樻儬鍒告姷鎵�," + couponNames);
+// chargeMachineOrderAcctPo.setCommunityId(chargeMachineDtos.get(0).getCommunityId());
+// chargeMachineOrderAcctPo.setEnergy("0");
+// chargeMachineOrderAcctPo.setDurationPrice(reqJson.getString("durationPrice"));
+//
+// chargeMachineOrderAcctV1InnerServiceSMOImpl.saveChargeMachineOrderAcct(chargeMachineOrderAcctPo);
- chargeMachineOrderAcctV1InnerServiceSMOImpl.saveChargeMachineOrderAcct(chargeMachineOrderAcctPo);
-
- return hours;
+// return hours;
}
/**
--
Gitblit v1.8.0