| | |
| | | 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; |
| | |
| | | @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", "未包含小区信息"); |
| | |
| | | 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(); |
| | | |
| | |
| | | resultVo.setData(orderId); |
| | | |
| | | double couponDurationHours = 0.0; |
| | | //扣款 |
| | | 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 账户扣款 |
| | |
| | | * @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"); |
| | |
| | | throw new CmdException("核销失败"); |
| | | } |
| | | |
| | | couponNames += ("优惠券名称:" + couponPropertyUserDtos.get(0).getCouponName() + ",优惠券编号:" + couponId + ";"); |
| | | |
| | | CouponPropertyPoolConfigDto couponPropertyPoolConfigDto = new CouponPropertyPoolConfigDto(); |
| | | couponPropertyPoolConfigDto.setCouponId(couponPropertyUserDtos.get(0).getCppId()); |
| | | couponPropertyPoolConfigDto.setColumnKey("hours"); |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |