From da3b5c72fa45bc26a9868c2b26e3efda14845179 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期一, 17 四月 2023 01:01:36 +0800
Subject: [PATCH] 加入搜索

---
 service-common/src/main/java/com/java110/common/cmd/chargeMachine/StartChargeCmd.java |  115 ++++++++++++++++++++++++++++++---------------------------
 1 files changed, 61 insertions(+), 54 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..19cd090 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
@@ -1,6 +1,5 @@
 package com.java110.common.cmd.chargeMachine;
 
-import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.common.charge.IChargeCore;
 import com.java110.core.annotation.Java110Cmd;
@@ -10,13 +9,12 @@
 import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.account.AccountDto;
-import com.java110.dto.accountDetail.AccountDetailDto;
 import com.java110.dto.chargeMachine.ChargeMachineDto;
-import com.java110.dto.chargeMachineOrder.ChargeMachineOrderDto;
-import com.java110.dto.chargeMachinePort.ChargeMachinePortDto;
-import com.java110.dto.chargeRuleFee.ChargeRuleFeeDto;
-import com.java110.dto.couponPropertyPoolConfig.CouponPropertyPoolConfigDto;
-import com.java110.dto.couponPropertyUser.CouponPropertyUserDto;
+import com.java110.dto.chargeMachine.ChargeMachineOrderDto;
+import com.java110.dto.chargeMachine.ChargeMachinePortDto;
+import com.java110.dto.chargeMachine.ChargeRuleFeeDto;
+import com.java110.dto.couponPool.CouponPropertyPoolConfigDto;
+import com.java110.dto.couponPool.CouponPropertyUserDto;
 import com.java110.dto.user.UserDto;
 import com.java110.intf.acct.IAccountInnerServiceSMO;
 import com.java110.intf.acct.ICouponPropertyPoolConfigV1InnerServiceSMO;
@@ -27,6 +25,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 +81,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 +126,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();
 
@@ -252,17 +254,14 @@
         }
         resultVo.setData(orderId);
 
-        double couponDurationHours = 0.0;
-        //鎵f
-        if (reqJson.containsKey("couponIds") && !StringUtil.isEmpty(reqJson.getString("couponIds"))) {
-            //todo 浼樻儬鍒告姷鎵�
-            couponDurationHours = withholdCoupon(reqJson, chargeMachineDtos, orderId);
-        }
 
-        if (durationHours - couponDurationHours > 0) {
-            // todo 3.0 璐︽埛鎵f
-            withholdAccount(reqJson, chargeMachineDtos, orderId, durationHours, couponDurationHours);
-        }
+        //todo 浼樻儬鍒告姷鎵�
+        withholdCoupon(reqJson, chargeMachineDtos, orderId);
+
+
+        // todo 3.0 璐︽埛棰勬墸娆�
+        withholdAccount(reqJson, chargeMachineDtos, orderId, durationHours);
+
 
         context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
     }
@@ -274,10 +273,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 +304,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 +312,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;
     }
 
     /**
@@ -344,20 +358,17 @@
      * @param chargeMachineDtos
      * @param orderId
      */
-    private void withholdAccount(JSONObject reqJson, List<ChargeMachineDto> chargeMachineDtos, String orderId, double durationHours, double couponDurationHours) {
+    private void withholdAccount(JSONObject reqJson, List<ChargeMachineDto> chargeMachineDtos, String orderId, double durationHours) {
         AccountDto accountDto = new AccountDto();
         accountDto.setAcctId(reqJson.getString("acctId"));
         List<AccountDto> accountDtos = accountInnerServiceSMOImpl.queryAccounts(accountDto);
 
         double amount = 0.0;
         BigDecimal durationPrice = new BigDecimal(Double.parseDouble(reqJson.getString("durationPrice")));
-        if (couponDurationHours > 0) {
-            durationPrice = durationPrice.multiply(new BigDecimal(durationHours - couponDurationHours)).setScale(2, BigDecimal.ROUND_HALF_UP);
-            amount = durationPrice.doubleValue();
-        } else {
-            durationPrice = durationPrice.multiply(new BigDecimal(durationHours)).setScale(2, BigDecimal.ROUND_HALF_UP);
-            amount = durationPrice.doubleValue();
-        }
+
+        durationPrice = durationPrice.multiply(new BigDecimal(durationHours)).setScale(2, BigDecimal.ROUND_HALF_UP);
+        amount = durationPrice.doubleValue();
+
 
         AccountDetailPo accountDetailPo = new AccountDetailPo();
         accountDetailPo.setAcctId(accountDtos.get(0).getAcctId());
@@ -373,11 +384,7 @@
         chargeMachineOrderAcctPo.setCmoaId(GenerateCodeFactory.getGeneratorId("11"));
         chargeMachineOrderAcctPo.setOrderId(orderId);
         chargeMachineOrderAcctPo.setAcctId(accountDtos.get(0).getAcctId());
-        if (couponDurationHours > 0) {
-            chargeMachineOrderAcctPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        } else {
-            chargeMachineOrderAcctPo.setStartTime(DateUtil.getAddHoursStringA(DateUtil.getCurrentDate(), new Double(Math.ceil(couponDurationHours)).intValue()));
-        }
+        chargeMachineOrderAcctPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
         chargeMachineOrderAcctPo.setEndTime(DateUtil.getAddHoursStringA(DateUtil.getCurrentDate(), new Double(Math.ceil(durationHours)).intValue()));
         chargeMachineOrderAcctPo.setRemark("璐︽埛鎵f");
         chargeMachineOrderAcctPo.setCommunityId(chargeMachineDtos.get(0).getCommunityId());

--
Gitblit v1.8.0