wuxw
2024-04-06 9c54808964a6f337e232c1bd7f7dd6454ba01499
优化临时费用创建bug
4个文件已修改
38 ■■■■ 已修改文件
service-fee/src/main/java/com/java110/fee/cmd/fee/PayBatchFeeCmd.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/fee/PayFeeCmd.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/fee/PayOweFeeCmd.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/returnPayFee/UpdateReturnPayFeeCmd.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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();