service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java
@@ -291,18 +291,15 @@ receivedAmount = receivedAmount.add(new BigDecimal(payFeeDataDto.getAccountAmount())); } cycles = receivedAmount.divide(feePrice, 4, BigDecimal.ROUND_HALF_EVEN); endCalender = getTargetEndTime(endCalender, cycles.doubleValue()); targetEndTime = endCalender.getTime(); targetEndTime = computeFeeSMOImpl.getTargetEndTime(cycles.doubleValue(),endCalender.getTime()); receivableAmount = payFeeDataDto.getReceivedAmount(); //处理 可能还存在 实收手工减免的情况 } else if (PayFeeDataDto.TEMP_CYCLE_CUSTOM_END_TIME.equals(payFeeDataDto.getTempCycle())) { //todo 这里按缴费结束时间缴费 String custEndTime = payFeeDataDto.getCustEndTime(); Date endDates = DateUtil.getDateFromStringB(custEndTime); Calendar c = Calendar.getInstance(); c.setTime(endDates); c.add(Calendar.DAY_OF_MONTH, 1); endDates = c.getTime();//这是明天 targetEndTime = endDates; if(!custEndTime.contains(":")){ custEndTime += " 23:59:59"; } targetEndTime = DateUtil.getDateFromStringA(custEndTime); BigDecimal receivedAmount1 = new BigDecimal(Double.parseDouble(payFeeDataDto.getReceivedAmount())); cycles = receivedAmount1.divide(feePrice, 4, BigDecimal.ROUND_HALF_EVEN); receivableAmount = payFeeDataDto.getReceivedAmount(); @@ -330,20 +327,7 @@ } private static Calendar getTargetEndTime(Calendar endCalender, Double cycles) { if (StringUtil.isInteger(cycles.toString())) { endCalender.add(Calendar.MONTH, new Double(cycles).intValue()); return endCalender; } if (cycles >= 1) { endCalender.add(Calendar.MONTH, new Double(Math.floor(cycles)).intValue()); cycles = cycles - Math.floor(cycles); } int futureDay = endCalender.getActualMaximum(Calendar.DAY_OF_MONTH); int hours = new Double(cycles * futureDay * 24).intValue(); endCalender.add(Calendar.HOUR, hours); return endCalender; } private void ifHasAccount(JSONObject reqJson, List<PayFeeDataDto> feeDataDtos) { service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java
@@ -777,7 +777,7 @@ Map feePriceAll = computeFeeSMOImpl.getFeePrice(feeDto); BigDecimal feePrice = new BigDecimal(feePriceAll.get("feePrice").toString()); if ("-101".equals(paramInJson.getString("cycles"))) { // todo 自定义金额交费 if (PayFeeDataDto.TEMP_CYCLE_CUSTOM_AMOUNT.equals(paramInJson.getString("cycles"))) { // todo 自定义金额交费 Date endTime = feeDto.getEndTime(); Calendar endCalender = Calendar.getInstance(); endCalender.setTime(endTime); @@ -796,7 +796,7 @@ if (businessFeeDetail.getDoubleValue("receivableAmount") < receivedAmount.doubleValue()) { businessFeeDetail.put("receivableAmount", receivedAmount.doubleValue()); } } else if ("-103".equals(paramInJson.getString("cycles"))) { //todo 这里按缴费结束时间缴费 } else if (PayFeeDataDto.TEMP_CYCLE_CUSTOM_END_TIME.equals(paramInJson.getString("cycles"))) { //todo 这里按缴费结束时间缴费 String custEndTime = paramInJson.getString("custEndTime"); if(!custEndTime.contains(":")){ custEndTime += " 23:59:59"; service-fee/src/main/java/com/java110/fee/cmd/fee/PayOweFeeCmd.java
@@ -151,7 +151,7 @@ userDto.setUserId(userId); List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto); Assert.listOnlyOne(userDtos, "用户未登录"); userDto = userDtos.get(0); String payOrderId = paramObj.getString("payOrderId"); JSONArray fees = paramObj.getJSONArray("fees"); service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java
@@ -174,8 +174,8 @@ Assert.hasKeyAndValue(reqJson, "feeId", "feeId不能为空"); if (reqJson.containsKey("cycles")) { double cycles = reqJson.getDouble("cycles"); if (cycles < 0) { throw new IllegalArgumentException("退费周期必须负数");// 这里必须传入负数,否则费用自动相加不会退费 if (cycles >= 0) { throw new CmdException("退费周期必须负数");// 这里必须传入负数,否则费用自动相加不会退费 } } FeeDetailDto feeDetailDto = new FeeDetailDto();