| | |
| | | DriverInfo originalDriver = originalDriverId != null ? driverInfoMapper.selectById(originalDriverId) : null; |
| | | |
| | | ShopInfo depositShop = shopInfoMapper.selectById(order.getDepositShopId()); |
| | | // 取件点信息更新为存件门店,使用 UpdateWrapper 确保 null 字段也能生效 |
| | | |
| | | // 计算就地寄存存件门店分成比例 |
| | | Integer cityId = Integer.valueOf(order.getCityId()); |
| | | boolean isCompany = depositShop != null && Constants.equalsInteger(depositShop.getCompanyType(), Constants.ONE); |
| | | int fallbackFieldA = isCompany ? Constants.FIVE : Constants.SIX; |
| | | BigDecimal localDepositRata = getShopRevenueShare(depositShop, "localDeposit", cityId, fallbackFieldA); |
| | | Long totalAmount = order.getTotalAmount() != null ? order.getTotalAmount() : 0L; |
| | | Long localDepositFee = new BigDecimal(totalAmount).multiply(localDepositRata) |
| | | .setScale(0, RoundingMode.HALF_UP).longValue(); |
| | | |
| | | // 取件点信息更新为存件门店,重算分成 |
| | | UpdateWrapper<Orders> updateWrapper = new UpdateWrapper<>(); |
| | | updateWrapper.lambda() |
| | | .eq(Orders::getId, order.getId()) |
| | | .set(Orders::getType, Constants.ZERO) |
| | | .set(Orders::getStatus, Constants.OrderStatus.arrived.getKey()) |
| | | .set(Orders::getIsConverted, Constants.ONE) |
| | | .set(Orders::getTakeShopId, order.getDepositShopId()) |
| | | .set(Orders::getTakeShopName, order.getDepositShopName()) |
| | | .set(Orders::getTakeShopAddress, order.getDepositShopAddress()) |
| | | .set(Orders::getTakeShopLinkPhone, order.getDepositShopLinkPhone()) |
| | | .set(Orders::getTakeLocation, order.getDepositLocation()) |
| | | .set(Orders::getTakeLocationRemark, order.getDepositLocationRemark()) |
| | | .set(Orders::getTakeLat, order.getDepositLat()) |
| | | .set(Orders::getTakeLgt, order.getDepositLgt()) |
| | | .set(Orders::getExpectedTakeTime, new Date()); |
| | | .set(Orders::getExpectedTakeTime, new Date()) |
| | | // 存件门店分成按就地寄存重算 |
| | | .set(Orders::getDepositShopFeeRata, localDepositRata) |
| | | .set(Orders::getDepositShopFee, localDepositFee) |
| | | // 司机、取件门店分成归零 |
| | | .set(Orders::getDriverFeeRata, BigDecimal.ZERO) |
| | | .set(Orders::getDriverFee, 0L) |
| | | .set(Orders::getTakeShopFeeRata, BigDecimal.ZERO) |
| | | .set(Orders::getTakeShopFee, 0L); |
| | | if (Constants.equalsInteger(status, Constants.OrderStatus.accepted.getStatus())) { |
| | | updateWrapper.lambda() |
| | | .set(Orders::getAcceptDriver, null) |