puzhibing
2023-06-27 4f8b61980b0db5995c16139d8eb9542b66da8a9f
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java
@@ -21,6 +21,8 @@
import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper;
import com.supersavedriving.driver.modular.system.warpper.HallOrderList;
import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -46,6 +48,8 @@
*/
@Service
public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService {
    Logger logger = LoggerFactory.getLogger(OrderServiceImpl.class);
    @Autowired
    private IDriverWorkService driverWorkService;
@@ -228,8 +232,6 @@
     * @return
     */
    public Order getOrderPrice(Integer type, Double distance, Integer waitTime, Order order, String city){
        distance = new BigDecimal(distance).setScale(0, BigDecimal.ROUND_UP).doubleValue();
        waitTime = new BigDecimal(waitTime).setScale(0, BigDecimal.ROUND_UP).intValue();
        order = getOrderInitialPrice(order);
        SystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<SystemConfig>().eq("type", 5));
        if(null == systemConfig){
@@ -289,12 +291,14 @@
                    order.setStartDistance(distance);//起步里程
                    order.setStartPrice(num4);//起步价
                }else{
                    BigDecimal subtract = new BigDecimal(distance).subtract(new BigDecimal(num3)).setScale(2, BigDecimal.ROUND_HALF_EVEN);//超出起步里程
                    BigDecimal divide = subtract.divide(new BigDecimal(num5), 2, BigDecimal.ROUND_HALF_EVEN);
                    BigDecimal multiply = divide.multiply(new BigDecimal(num6));
                    Double distance1 = distance;//原始里程
                    order.setStartDistance(num3);//起步里程
                    order.setStartPrice(num4);//起步价
                    order.setOverDriveDistance(subtract.doubleValue());//超出起步里程
                    order.setOverDriveDistance(new BigDecimal(distance1 - num3).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//超出起步里程
                    distance = new BigDecimal(distance).setScale(0, RoundingMode.UP).doubleValue();//向上取整
                    BigDecimal divide = new BigDecimal(distance - num3).divide(new BigDecimal(num5), 2, BigDecimal.ROUND_HALF_EVEN);
                    BigDecimal multiply = divide.multiply(new BigDecimal(num6));
                    order.setOverDrivePrice(multiply.doubleValue());//超出起步里程费
                    //计算长途费(超出长途起始公里,费用开始按照长途规则计算。)
@@ -309,10 +313,10 @@
                    }
                    //计算长途里程超出的部分
                    if(distance.compareTo(num8) > 0){
                        BigDecimal subtract1 = new BigDecimal(distance).subtract(new BigDecimal(num8)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
                        BigDecimal divide1 = subtract1.divide(new BigDecimal(num10), 2, BigDecimal.ROUND_HALF_EVEN);
                        order.setOverLongDistance(new BigDecimal(distance1 - num8).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());//超出长途里程
                        BigDecimal divide1 = new BigDecimal(distance - num8).divide(new BigDecimal(num10), 2, BigDecimal.ROUND_HALF_EVEN);
                        BigDecimal multiply1 = divide1.multiply(new BigDecimal(num11));
                        order.setOverLongDistance(subtract1.doubleValue());//超出长途里程
                        order.setOverLongDistancePrice(multiply1.doubleValue());//超出长途里程费
                    }
                }
@@ -333,10 +337,10 @@
        //等待费用
        if(waitTime.compareTo(num1 * 60) >= 0){
            order.setWaitTime(num1);//等待时长
            order.setWaitTime(num1 * 60);//等待时长
            order.setWaitTimePrice(num2);//等待费用
            Integer w = waitTime - (num3 * 60);
            Integer w = waitTime - (num1 * 60);
            BigDecimal multiply = new BigDecimal(w).divide(new BigDecimal(60), 0, RoundingMode.UP).multiply(new BigDecimal(num4));
            order.setOutWaitTime(w);//等待时长超出分钟
            order.setOutWaitTimePrice(multiply.doubleValue());//等待时长超出费用
@@ -593,19 +597,22 @@
                    @Override
                    public void run() {
                        Order order1 = OrderServiceImpl.this.selectById(order.getId());
                        if(order1.getState() != 101 && order1.getState() != 201 && order1.getDriverId().compareTo(driver1.getId()) != 0){
                        if(order1.getState() != 101 && order1.getState() != 201 && order1.getState() != 301 && order1.getDriverId().compareTo(driver1.getId()) != 0){
                            driver1.setServerStatus(1);
                            driverService.updateById(driver1);
                        }
                        if(order1.getState() == 201 || (order1.getState() == 101 && null == order1.getDriverId())){
                        if(order1.getState() == 201 || order1.getState() == 301 || (order1.getState() == 101 && null == order1.getDriverId())){
                            driver1.setServerStatus(1);
                            driverService.updateById(driver1);
                        }
                        if(order1.getState() == 201 || (order1.getState() == 101 && null == order1.getDriverId())){
                            order1.setHallOrder(1);
                            OrderServiceImpl.this.updateById(order1);
                            ExtraPushOrder(order);
                        }
                    }
                }, num4 * 1000);
            }else{
@@ -650,7 +657,7 @@
        for (Driver driver1 : drivers) {
            String value = redisUtil.getValue("DRIVER" + driver1.getId());
            if (ToolUtil.isEmpty(value)) {
                return;
                continue;
            }
            pushUtil.pushGrabOrderExtras(driver1.getId(), 2);
        }
@@ -858,6 +865,9 @@
    }
    /**
     * 获取订单详情
     * @param orderId
@@ -876,7 +886,7 @@
        int m = Double.valueOf(wait / 60).intValue();
        orderInfoWarpper.setWaitTime((m < 10 ? ("0" + m) : m) + ":" + (s < 10 ? ("0" + s) : s));
        Double actualMileage = orderInfoWarpper.getActualMileage();
        orderInfoWarpper.setActualMileage(new BigDecimal(actualMileage).divide(new BigDecimal(1000), 2, RoundingMode.HALF_EVEN).doubleValue());
        orderInfoWarpper.setActualMileage(new BigDecimal(actualMileage / 1000).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
        if(orderInfoWarpper.getTravelTime() == null){
            orderInfoWarpper.setTravelTime(0);
@@ -956,7 +966,18 @@
                            .where("'" + geocode.getCity() + "' like CONCAT('%', city, '%') and '" + geocode.getDistrict() + "' like CONCAT('%', district, '%') "));
                    city = null != weatherCity ? weatherCity.getId().toString() : "";
                }
                order = getOrderPrice(2, Double.valueOf(order.getActualMileage() / 1000), order.getWaitTime(), order, city);
                order = getOrderPrice(2, Double.valueOf(order.getActualMileage()) / 1000, order.getWaitTime(), order, city);
                Coupon coupon = userToCouponService.queryCoupon(order.getUserId(), order.getOrderMoney());
                if(null != coupon){
                    order.setCouponId(coupon.getId());
                    order.setDiscountedPrice(coupon.getCouponPreferentialAmount());
                    order.setPayMoney(order.getOrderMoney() - coupon.getCouponPreferentialAmount());
                    UserToCoupon userToCoupon = userToCouponService.selectById(coupon.getId());
                    userToCoupon.setValidCount(userToCoupon.getValidCount() - 1);
                    userToCouponService.updateById(userToCoupon);
                }else{
                    order.setPayMoney(order.getOrderMoney());
                }
                //修改司机状态和积分
                Driver driver = driverService.selectById(order.getDriverId());
@@ -1242,7 +1263,7 @@
        OrderPriceWarpper orderPriceWarpper = new OrderPriceWarpper();
        orderPriceWarpper.setStartTime(order.getArrivalTimeAtTheAppointmentPoint().getTime());
        orderPriceWarpper.setEndTime(order.getGetoffTime().getTime());
        orderPriceWarpper.setActualMileage(Double.valueOf(order.getActualMileage() / 1000));
        orderPriceWarpper.setActualMileage(Double.valueOf(order.getActualMileage()) / 1000);
        if(null != order.getStartPrice() && 0 != order.getStartPrice()){
            orderPriceWarpper.setStartPrice(order.getStartPrice());
            orderPriceWarpper.setStartDistance(order.getStartDistance());
@@ -1264,7 +1285,7 @@
        orderPriceWarpper.setDiscountedPrice(order.getDiscountedPrice());
        orderPriceWarpper.setBadWeatherPrice(order.getBadWeatherPrice());
        orderPriceWarpper.setPayMoney(order.getPayMoney());
        if(order.getState() < 107){
        if(order.getState() < 106){
            orderPriceWarpper.setPayMoney(order.getOrderMoney());
        }
        orderPriceWarpper.setWxCollectionCode(driver.getWxCollectionCode());
@@ -1292,70 +1313,14 @@
        if(payType == 2 && state == 107){
            order.setPayType(3);
            Coupon coupon = userToCouponService.queryCoupon(order.getUserId(), order.getOrderMoney());
            if(null != coupon){
                order.setCouponId(coupon.getId());
                order.setDiscountedPrice(coupon.getCouponPreferentialAmount());
                order.setPayMoney(order.getOrderMoney() - coupon.getCouponPreferentialAmount());
            }else{
                order.setPayMoney(order.getOrderMoney());
            }
        }
        if(payType == 2 && state == 108){
            order.setPayTime(new Date());
            if(null != order.getCouponId()){
                UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
                if(userToCoupon.getValidCount() > 0){
                    userToCoupon.setValidCount(userToCoupon.getValidCount() - 1);
                    userToCouponService.updateById(userToCoupon);
                    Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
                Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
                    Driver driver = driverService.selectById(order.getDriverId());
                    AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
                    accountChangeDetail.setUserType(2);
                    accountChangeDetail.setUserId(order.getDriverId());
                    accountChangeDetail.setCreateTime(new Date());
                    accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission());
                    accountChangeDetail.setType(1);
                    accountChangeDetail.setChangeType(7);
                    accountChangeDetail.setOrderId(order.getId());
                    accountChangeDetail.setExplain("优惠券收入");
                    driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount());
                    accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission());
                    driverService.updateById(driver);
                    accountChangeDetailService.insert(accountChangeDetail);
                    //补贴中分账
                    Double discountedPrice = order.getDiscountedPrice();
                    List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime"));
                    for (RechargeRecord rechargeRecord : rechargeRecords) {
                        Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount();
                        if(surplusDividedAmount.compareTo(discountedPrice) >= 0){
                            ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), discountedPrice, callbackPath + "/base/order/zhaunzhangCallback");
                            if(10000 == zhaunzhang.getCode()){
                                rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - discountedPrice);
                                rechargeRecordService.updateById(rechargeRecord);
                            }
                            break;
                        }else{
                            ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback");
                            if(10000 == zhaunzhang.getCode()){
                                rechargeRecord.setSurplusDividedAmount(0D);
                                rechargeRecordService.updateById(rechargeRecord);
                                discountedPrice -= surplusDividedAmount;
                            }else{
                                break;
                            }
                        }
                    }
                }
            }
            if(order.getDiscountAmount() > 0){
                Driver driver = driverService.selectById(order.getDriverId());
                AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
                accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
@@ -1366,28 +1331,30 @@
                accountChangeDetail.setType(1);
                accountChangeDetail.setChangeType(7);
                accountChangeDetail.setOrderId(order.getId());
                accountChangeDetail.setExplain("折扣优惠收入");
                driver.setCommission(driver.getCommission() + order.getDiscountAmount());
                accountChangeDetail.setExplain("优惠券收入");
                driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount());
                accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission());
                driverService.updateById(driver);
                accountChangeDetailService.insert(accountChangeDetail);
                //补贴中分账
                Double discountedPrice = order.getDiscountAmount();
                Double discountedPrice = order.getDiscountedPrice();
                List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime"));
                for (RechargeRecord rechargeRecord : rechargeRecords) {
                    Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount();
                    if(surplusDividedAmount.compareTo(discountedPrice) >= 0){
                        ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), discountedPrice, callbackPath + "/base/order/zhaunzhangCallback");
                        ResultUtil<Double> zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), discountedPrice, callbackPath + "/base/order/zhaunzhangCallback");
                        if(10000 == zhaunzhang.getCode()){
                            rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - discountedPrice);
                            Double remainAmount = zhaunzhang.getData();
                            rechargeRecord.setSurplusDividedAmount(remainAmount);
                            rechargeRecordService.updateById(rechargeRecord);
                        }
                        break;
                    }else{
                        ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback");
                        ResultUtil<Double> zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback");
                        if(10000 == zhaunzhang.getCode()){
                            rechargeRecord.setSurplusDividedAmount(0D);
                            Double remainAmount = zhaunzhang.getData();
                            rechargeRecord.setSurplusDividedAmount(remainAmount);
                            rechargeRecordService.updateById(rechargeRecord);
                            discountedPrice -= surplusDividedAmount;
                        }else{
@@ -1396,6 +1363,7 @@
                    }
                }
            }
        }
        this.updateById(order);
@@ -1424,7 +1392,7 @@
     * @param notifyUrl
     * @return
     */
    public ResultUtil zhaunzhang(Integer id, String merOrderId, String toUserId, Double amount, String notifyUrl){
    public ResultUtil<Double> zhaunzhang(Integer id, String merOrderId, String toUserId, Double amount, String notifyUrl){
        Transfer transfer = new Transfer();
        transfer.setDepositMerOrderId(merOrderId);
        transfer.setToUserId(toUserId);
@@ -1436,12 +1404,13 @@
        InterfaceResponse execute = request.execute(transfer, Transfer.SERVICE_CODE);
        if("0000".equals(execute.getCode())){
            JSONObject jsonObject = JSON.parseObject(execute.getResult());
            Integer status = jsonObject.getInteger("status");//0:待处理;1:成功;2:失败
            if(2 == status){
            String status = jsonObject.getString("status");//0:待处理;1:成功;2:失败
            if("2" == status){
                System.err.println("转账失败");
                return ResultUtil.error("转账失败");
            }
            return ResultUtil.success();
            Double remainAmount = Double.valueOf(jsonObject.getInteger("remainAmount")) / 100;
            return ResultUtil.success(remainAmount);
        }else{
            System.err.println("转账失败:" + execute.getMsg());
            return ResultUtil.error(execute.getMsg());
@@ -1502,7 +1471,7 @@
                accountChangeDetail1.setChangeType(9);
                accountChangeDetail1.setOrderId(order.getId());
                accountChangeDetail1.setOldData(driver.getBalance() + driver.getBackgroundBalance());
                accountChangeDetail1.setExplain("线下收款服务费支出");
                accountChangeDetail1.setExplain("订单信息费");
                accountChangeDetail1.setCreateTime(new Date());
                driver.setBalance(driver.getBalance() - num3);
                accountChangeDetail1.setNewData(driver.getBalance() + driver.getBackgroundBalance());
@@ -1967,7 +1936,7 @@
            Integer status = jsonObject.getInteger("status");//0:待处理 1:成功 2:失败
            String merOrderId1 = jsonObject.getString("merOrderId");
            if(2 == status){
                System.err.println("订单支付成功后的分账处理异常失败");
                logger.warn("订单支付成功后的分账处理异常失败");
                return ResultUtil.error("订单支付成功后的分账处理异常失败");
            }
            if(1 == status){
@@ -1986,9 +1955,10 @@
                return ResultUtil.success();
            }
        }else{
            System.err.println("订单支付成功后的分账处理异常 :" + execute.getMsg());
            logger.warn("订单支付成功后的分账处理异常 :" + execute.getMsg());
            return ResultUtil.error("订单支付成功后的分账处理异常 :" + execute.getMsg());
        }
        logger.warn("未知异常");
        return ResultUtil.error("未知异常");
    }
@@ -2015,9 +1985,9 @@
        if("0000".equals(execute1.getCode())){
            JSONObject jsonObject = JSON.parseObject(execute1.getResult());
            String merOrderId = jsonObject.getString("merOrderId");
            System.err.println("分账确认收货成功");
            logger.warn("分账确认收货成功");
        }else{
            System.err.println("分账确认收货异常" + execute1.getMsg());
            logger.warn("分账确认收货异常" + execute1.getMsg());
        }
    }
@@ -2197,54 +2167,8 @@
            order.setPayTime(new Date());
            if(null != order.getCouponId()){
                UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId());
                if(userToCoupon.getValidCount() > 0){
                    userToCoupon.setValidCount(userToCoupon.getValidCount() - 1);
                    userToCouponService.updateById(userToCoupon);
                    Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
                Coupon coupon = couponService.selectById(userToCoupon.getCouponId());
                    Driver driver = driverService.selectById(order.getDriverId());
                    AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
                    accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
                    accountChangeDetail.setUserType(2);
                    accountChangeDetail.setUserId(order.getDriverId());
                    accountChangeDetail.setCreateTime(new Date());
                    accountChangeDetail.setOldData(driver.getCouponBalance() + driver.getCommission());
                    accountChangeDetail.setType(1);
                    accountChangeDetail.setChangeType(7);
                    accountChangeDetail.setOrderId(order.getId());
                    accountChangeDetail.setExplain("优惠券收入");
                    driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount());
                    accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission());
                    driverService.updateById(driver);
                    accountChangeDetailService.insert(accountChangeDetail);
                    //补贴中分账
                    Double discountedPrice = order.getDiscountedPrice();
                    List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime"));
                    for (RechargeRecord rechargeRecord : rechargeRecords) {
                        Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount();
                        if(surplusDividedAmount.compareTo(discountedPrice) >= 0){
                            ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), discountedPrice, callbackPath + "/base/order/zhaunzhangCallback");
                            if(10000 == zhaunzhang.getCode()){
                                rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - discountedPrice);
                                rechargeRecordService.updateById(rechargeRecord);
                            }
                            break;
                        }else{
                            ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback");
                            if(10000 == zhaunzhang.getCode()){
                                rechargeRecord.setSurplusDividedAmount(0D);
                                rechargeRecordService.updateById(rechargeRecord);
                                discountedPrice -= surplusDividedAmount;
                            }else{
                                break;
                            }
                        }
                    }
                }
            }
            if(order.getDiscountAmount() > 0){
                Driver driver = driverService.selectById(order.getDriverId());
                AccountChangeDetail accountChangeDetail = new AccountChangeDetail();
                accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(3));
@@ -2255,28 +2179,30 @@
                accountChangeDetail.setType(1);
                accountChangeDetail.setChangeType(7);
                accountChangeDetail.setOrderId(order.getId());
                accountChangeDetail.setExplain("折扣优惠收入");
                driver.setCommission(driver.getCommission() + order.getDiscountAmount());
                accountChangeDetail.setExplain("优惠券收入");
                driver.setCommission(driver.getCommission() + coupon.getCouponPreferentialAmount());
                accountChangeDetail.setNewData(driver.getCouponBalance() + driver.getCommission());
                driverService.updateById(driver);
                accountChangeDetailService.insert(accountChangeDetail);
                //补贴中分账
                Double discountedPrice = order.getDiscountAmount();
                Double discountedPrice = order.getDiscountedPrice();
                List<RechargeRecord> rechargeRecords = rechargeRecordService.selectList(new EntityWrapper<RechargeRecord>().eq("type", 4).eq("payStatus", 2).gt("surplusDividedAmount", 0).orderBy("createTime"));
                for (RechargeRecord rechargeRecord : rechargeRecords) {
                    Double surplusDividedAmount = rechargeRecord.getSurplusDividedAmount();
                    if(surplusDividedAmount.compareTo(discountedPrice) >= 0){
                        ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), discountedPrice, callbackPath + "/base/order/zhaunzhangCallback");
                        ResultUtil<Double> zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), discountedPrice, callbackPath + "/base/order/zhaunzhangCallback");
                        if(10000 == zhaunzhang.getCode()){
                            rechargeRecord.setSurplusDividedAmount(rechargeRecord.getSurplusDividedAmount() - discountedPrice);
                            Double remainAmount = zhaunzhang.getData();
                            rechargeRecord.setSurplusDividedAmount(remainAmount);
                            rechargeRecordService.updateById(rechargeRecord);
                        }
                        break;
                    }else{
                        ResultUtil zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback");
                        ResultUtil<Double> zhaunzhang = zhaunzhang(rechargeRecord.getId(), rechargeRecord.getOrderNumber(), driver.getMerchantNumber(), surplusDividedAmount, callbackPath + "/base/order/zhaunzhangCallback");
                        if(10000 == zhaunzhang.getCode()){
                            rechargeRecord.setSurplusDividedAmount(0D);
                            Double remainAmount = zhaunzhang.getData();
                            rechargeRecord.setSurplusDividedAmount(remainAmount);
                            rechargeRecordService.updateById(rechargeRecord);
                            discountedPrice -= surplusDividedAmount;
                        }else{