diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java index 47498a70..c726996d 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/TransactionBillService.java @@ -303,17 +303,6 @@ public interface TransactionBillService */ TransactionBillVO selectLastOne(TransactionBillQuery query); - /** - * 修复订单数据 - */ - int fix(Long billId); - - /** - * 修复所有订单数据 - * @return - */ - int fixAll(); - /** * 收取商户查看用户手机号的价格 * @param bill diff --git a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java index e933fd45..0da2923f 100644 --- a/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java +++ b/smart-switch-service/src/main/java/com/ruoyi/ss/transactionBill/service/impl/TransactionBillServiceImpl.java @@ -9,7 +9,6 @@ import com.ruoyi.common.domain.vo.LongDecimalVO; import com.ruoyi.common.enums.ServiceCode; import com.ruoyi.common.enums.WithdrawServiceType; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.pay.wx.service.WxPayService; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.SnowFlakeUtil; @@ -27,7 +26,6 @@ import com.ruoyi.ss.bonus.domain.Bonus; import com.ruoyi.ss.bonus.domain.BonusVO; import com.ruoyi.ss.bonus.domain.enums.BonusArrivalType; import com.ruoyi.ss.bonus.domain.enums.BonusStatus; -import com.ruoyi.ss.bonus.service.BonusConverter; import com.ruoyi.ss.bonus.service.BonusService; import com.ruoyi.ss.channelWithdraw.domain.ChannelWithdrawVO; import com.ruoyi.ss.channelWithdraw.service.ChannelWithdrawService; @@ -45,8 +43,6 @@ import com.ruoyi.ss.receiveBill.domain.ReceiveBill; import com.ruoyi.ss.receiveBill.domain.enums.ReceiveBillStatus; import com.ruoyi.ss.receiveBill.domain.enums.ReceiveBillType; import com.ruoyi.ss.receiveBill.service.ReceiveBillService; -import com.ruoyi.ss.record.time.service.IRecordTimeService; -import com.ruoyi.ss.record.time.service.RecordTimeConverter; import com.ruoyi.ss.recordBalance.domain.enums.RecordBalanceBstType; import com.ruoyi.ss.risk.service.RiskService; import com.ruoyi.ss.store.domain.StoreVo; @@ -66,7 +62,10 @@ import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO; import com.ruoyi.ss.transactionBill.domain.vo.TransactionDailyAmountVO; import com.ruoyi.ss.transactionBill.domain.vo.UserWithdrawServiceVO; import com.ruoyi.ss.transactionBill.mapper.TransactionBillMapper; -import com.ruoyi.ss.transactionBill.service.*; +import com.ruoyi.ss.transactionBill.service.TransactionAssembler; +import com.ruoyi.ss.transactionBill.service.TransactionBillService; +import com.ruoyi.ss.transactionBill.service.TransactionBillValidator; +import com.ruoyi.ss.transactionBill.service.WithdrawValidator; import com.ruoyi.ss.transfer.domain.TransferVO; import com.ruoyi.ss.transfer.interfaces.AfterTransfer; import com.ruoyi.ss.transfer.service.TransferConverter; @@ -78,7 +77,6 @@ import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.task.bill.BillDelayedManager; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionTemplate; @@ -112,9 +110,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After @Autowired private DeviceService deviceService; - @Autowired - private WxPayService wxPayService; - @Autowired private UserService userService; @@ -134,18 +129,9 @@ public class TransactionBillServiceImpl implements TransactionBillService, After @Autowired private ScheduledExecutorService scheduledExecutorService; - @Value("${sm.withdraw.password.enable}") - private Boolean smWithdrawPasswordEnable; // 是否开启提现密码 - @Autowired private TransactionTemplate transactionTemplate; - @Autowired - private IRecordTimeService recordTimeService; - - @Autowired - private RecordTimeConverter recordTimeConverter; - @Autowired private PayBillService payBillService; @@ -158,15 +144,9 @@ public class TransactionBillServiceImpl implements TransactionBillService, After @Autowired private ISysConfigService sysConfigService; - @Autowired - private TransactionBillConverter transactionBillConverter; - @Autowired private WithdrawValidator withdrawValidator; - @Autowired - private BonusConverter bonusConverter; - @Autowired private BonusService bonusService; @@ -304,33 +284,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After } } - @Override - public int fix(Long billId) { - TransactionBillVO bill = selectSmTransactionBillByBillId(billId); - return fix(bill); - } - - @Override - public int fixAll() { - TransactionBillQuery query = new TransactionBillQuery(); - query.setStatusList(TransactionBillStatus.payedOrder()); - query.setVersion(1); - List list = selectSmTransactionBillList(query); - if (CollectionUtils.isEmptyElement(list)) { - return 0; - } - - for (TransactionBillVO bill : list) { - try { - this.fix(bill); - } catch (Exception e) { - log.error("修复订单数据失败:{}, {}", bill.getBillNo(), e.getMessage()); - } - } - - return 1; - } - @Override public int receiveMchShowMobileAmount(TransactionBillVO bill) { ServiceUtil.assertion(bill == null, "订单不存在"); @@ -414,36 +367,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return transactionBillMapper.selectCountGroupBy(query, groupBy); } - private int fix(TransactionBillVO bill) { - return 0; -// if (bill == null || bill.getBillId() == null) { -// log.warn("修复订单数据失败:订单不存在或订单ID为空"); -// return 0; -// } -// // 仅可以修复旧订单 -// ServiceUtil.assertion(bill.getVersion() == null || bill.getVersion() != 1, "该订单版本无法修复"); -// ServiceUtil.assertion(!TransactionBillStatus.payedOrder().contains(bill.getStatus()), "订单未支付,无法修复"); -// -// // 获取订单分成数据,判断是否已有分成数据 -// BonusQuery query = new BonusQuery(); -// query.setBillId(bill.getBillId()); -// int bonusCount = bonusService.selectCount(query); -// ServiceUtil.assertion(bonusCount > 0, "订单已存在分成数据,无法重复修复"); -// -// // 根据订单生成新的分成数据 -// List bonusList = bonusConverter.toPo(bill); -// ServiceUtil.assertion(CollectionUtils.isEmptyElement(bonusList), "订单生成分成数据失败"); -// -// // 插入数据 -// Integer result = transactionTemplate.execute(status -> { -// int insert = bonusService.batchInsert(bonusList); -// ServiceUtil.assertion(insert != bonusList.size(), "订单分成数据插入失败"); -// return insert; -// }); -// -// return result == null ? 0 : result; - } - // 转换为订单所需的数据 private TransactionBill parseToOrder(RechargeBO bo) { // 校验 @@ -994,60 +917,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return transactionBillMapper.updateSmTransactionBill(data); } -// @Override -// public DoPayVO payDeposit(RechargePayDepositBO bo) { -// // 校验 -// ServiceUtil.assertion(transactionBillValidator.prePayDeposit(bo)); -// // 锁 -// Long lockKey = bo.getOrder().getBillId(); -// ServiceUtil.assertion(!redisLock.lock(RedisLockKey.PREPAY_DEPOSIT, lockKey), "当前订单押金正在支付,请稍后重试"); -// try { -// // 创建支付订单并发起支付 -// return payBillService.createPayBill(payBillConverter.toPoByRechargeDeposit(bo)); -// } finally { -// redisLock.unlock(RedisLockKey.PREPAY_DEPOSIT, lockKey); -// } -// } - -// private int endTimingUse(EndUseBO bo) { -// if (bo == null) { -// return 0; -// } -// TransactionBillVO order = bo.getOrder(); -// DeviceVO device = bo.getDevice(); -// ServiceUtil.assertion(order == null, "订单不存在"); -// ServiceUtil.assertion(!TransactionBillStatus.SUCCESS_DEPOSIT.getStatus().equals(order.getStatus()), "当前订单状态不允许结束"); -// ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作"); -// ServiceUtil.assertion(device == null, "设备不存在"); -// -// LocalDateTime endTime = LocalDateTime.now(); // 结束使用的时间 -// -// // 结束使用的电量:若蓝牙传过来的值为空或者小于当前电量,则使用当前电量,否则使用蓝牙传输的电量 -// BigDecimal totalEle = this.calcTotalEle(device, bo.getTotalEle()); -// -// // 计算金额 -// BigDecimal money = this.calcTimingAmount(order, endTime, totalEle); -// -// Integer result = transactionTemplate.execute(status -> { -// // 修改订单信息 -// TransactionBill data = new TransactionBill(); -// data.setSuitEndEle(totalEle); -// data.setSuitEndTime(endTime); -// data.setStatus(TransactionBillStatus.UNPAID.getStatus()); -// data.setMoney(money); -// TransactionBillQuery query = new TransactionBillQuery(); -// query.setStatus(TransactionBillStatus.SUCCESS_DEPOSIT.getStatus()); -// query.setBillId(order.getBillId()); -// query.setIsFinished(false); -// int update = this.updateByQuery(data, query); -// ServiceUtil.assertion(update != 1, "修改订单状态失败,请刷新后重试"); -// -// return update; -// }); -// -// return result == null ? 0 : result; -// } - private BigDecimal calcTotalEle(DeviceVO device, BigDecimal totalEle) { if (totalEle == null || totalEle.compareTo(device.getTotalElectriQuantity()) < 0) { return device.getTotalElectriQuantity(); @@ -1186,40 +1055,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return transactionBillMapper.selectSumOfMoney(query); } - private int endUseSingle(EndUseBO bo) { - if (bo == null) { - return 0; - } - TransactionBillVO order = bo.getOrder(); - DeviceVO device = bo.getDevice(); - ServiceUtil.assertion(order == null, "订单不存在"); - ServiceUtil.assertion(order.getIsFinished() != null && order.getIsFinished(), "当前订单已结束,无法操作"); -// ServiceUtil.assertion(!TransactionBillStatus.SUCCESS.getStatus().equals(order.getStatus()), "当前订单状态不允许结束"); - ServiceUtil.assertion(device == null, "设备不存在"); - - LocalDateTime endTime = LocalDateTime.now(); // 结束使用的时间 - - // 结束使用的电量:若蓝牙传过来的值为空或者小于当前电量,则使用当前电量,否则使用蓝牙传输的电量(谁大用谁) - BigDecimal totalEle = this.calcTotalEle(device, bo.getTotalEle()); - - Integer result = transactionTemplate.execute(status -> { - // 修改结束使用的时间 - TransactionBill data = new TransactionBill(); - data.setSuitEndTime(endTime); - data.setSuitEndEle(totalEle); - TransactionBillQuery query = new TransactionBillQuery(); - query.setBillId(order.getBillId()); - query.setStatus(TransactionBillStatus.SUCCESS.getStatus()); - query.setIsFinished(false); - int update = this.updateByQuery(data, query); - ServiceUtil.assertion(update != 1, "修改订单信息失败,请重试:" + order.getBillNo()); - - return update; - }); - - return result == null ? 0 : result; - } - /** * 计算退款金额 */ @@ -1308,12 +1143,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After // 计算分时段计量金额 private BigDecimal calcTimingCountAmount(TransactionBillVO order) { - //---旧的 -// BigDecimal startEle = order.getSuitStartEle() == null ? BigDecimal.ZERO : order.getSuitStartEle(); // 起始电量 -// BigDecimal usedEle = totalEle == null ? BigDecimal.ZERO : totalEle.subtract(startEle); // 本次用电量 -// return calcTimingCountAmount(order.getSuitGearAmount(), order.getSuitGearTime(), order.getSuitStartTime(), endTime, usedEle); - // 旧的 --- - BillEleRecordQuery query = new BillEleRecordQuery(); query.setBillId(order.getBillId()); BigDecimal amount = billEleRecordService.selectSumOfTotalPrice(query); @@ -1321,76 +1150,8 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return BigDecimal.ZERO; } return amount; - - // 查询订单电量记录 -// BillEleRecordQuery query = new BillEleRecordQuery(); -// query.setBillId(order.getBillId()); -// List recordList = billEleRecordService.selectBillEleRecordList(query); - -// // 拟创建新的记录 -// LocalDateTime now = LocalDateTime.now(); -// DeviceVO device = deviceService.selectById(order.getDeviceId()); -// deviceService.pullDeviceInfo(device, null); -// BillEleRecord newRecord = billEleRecordConverter.toPo(order, device, now, now); -// recordList.add((BillEleRecordVO) newRecord); -// -// // 记录根据记录时间排序 -// recordList.sort(Comparator.comparing(BillEleRecordVO::getRecordTime)); -// -// // 计算每个记录的金额 -// BigDecimal lastEle = order.getSuitStartEle(); -// BigDecimal totalPrice = BigDecimal.ZERO; -// for (BillEleRecordVO record : recordList) { -// -// -// totalPrice.add(record.getPrice() * ) -// } - } - // 计算分时段计量金额 - private BigDecimal calcTimingCountAmount(List suitGearAmount, List suitGearTime, LocalDateTime startTime, LocalDateTime endTime, BigDecimal usedEle) { - if (startTime == null) { - startTime = LocalDateTime.now(); - } - BigDecimal total = BigDecimal.ZERO; - - // 计算每小时平均用电量 - Duration betweenAvg = Duration.between(startTime, endTime); - long minutes = betweenAvg.toMinutes(); - if (minutes == 0) { - minutes = 1; - } - BigDecimal avgEle = usedEle.divide(BigDecimal.valueOf(minutes), 6, RoundingMode.HALF_UP); // 平均每分钟的用电量 4.6 - - // 初始时间 - LocalDateTime time = startTime ; - - // 计算每分钟的金额 - while(endTime.isAfter(time)) { - int hour = time.getHour(); - BigDecimal minuteAmount = suitGearAmount.get(suitGearTime.get(hour)).multiply(avgEle); - total = total.add(minuteAmount); - - time = time.plusMinutes(1); - } - - return total; - } - - // 测试总用电量 -// public static void main(String[] args) { -// List suitGearAmount = Arrays.asList(new BigDecimal(0.22), new BigDecimal("0.39"), new BigDecimal("0.59"), new BigDecimal("0.89")); -// List suitGearTime = Arrays.stream("1,1,1,1,1,1,1,2,2,2,1,0,0,0,1,2,3,3,3,2,2,2,2,1".split(",")).map(Integer::parseInt).collect(Collectors.toList()); -// LocalDateTime startTime = DateUtils.toLocalDateTime("2024-12-19 12:45:31"); -// LocalDateTime endTime = DateUtils.toLocalDateTime("2024-12-20 14:58:35"); -// BigDecimal usedEle = new BigDecimal(13.8); // 总用电量 13.8 -// -// TransactionBillServiceImpl service = new TransactionBillServiceImpl(); -// BigDecimal total = service.calcTimingCountAmount(suitGearAmount, suitGearTime, startTime, endTime, usedEle); -// System.out.println(total); -// } - // 计算分时段计时金额 private BigDecimal calcTimingTimeAmount(TransactionBillVO order, LocalDateTime endTime) { // 订单不存在 或者 开始时间为空,则表示未开始使用,返回0 @@ -1623,11 +1384,10 @@ public class TransactionBillServiceImpl implements TransactionBillService, After ServiceUtil.assertion(CollectionUtils.isEmptyElement(bonusList), "订单编号为%s的订单没有收益信息,无法退款", bill.getBillNo()); Integer result = transactionTemplate.execute(status -> { - // 分成方余额按照比例扣减 - // 按比例计算退款金额 + // 分成方按照比例扣减余额 BigDecimal refundAmount = dto.getRefundAmount(); // 总退款金额 int updateRefundBonus = this.updateRefundBonus(bonusList, refundAmount, bill.getMoney()); - ServiceUtil.assertion(updateRefundBonus != bonusList.size(), "商户余额更新失败"); + ServiceUtil.assertion(updateRefundBonus == 0 || updateRefundBonus > bonusList.size(), "商户余额更新失败"); // 发起退款 PayBillRefundDTO refundDto = new PayBillRefundDTO(); @@ -1654,22 +1414,32 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return 0; } - // FIXME 构建退款列表 - // FIXME 多次退款有问题,比如商户已经退款0.3元,剩余0.2元,第二次退款的时候,还是给商户分配了0.3元的退款,此时退款会失败。 - // FIXME 需要重新考虑一下退款金额的分配规则。 - List refundList = new ArrayList<>(); // 退款的列表 + // 构建退款列表 + List refundList = new ArrayList<>(); BigDecimal dividedAmount = BigDecimal.ZERO; // 已分配金额 + for (BonusVO bonus : bonusList) { if (bonus == null) { continue; } - // 计算扣减金额 = 退款金额 * 分配金额 / 总金额 - BigDecimal bonusRefundAmount = refundAmount.multiply(bonus.getAmount()).divide(billAmount, 2, RoundingMode.HALF_UP); + + // 计算该分成记录的可退金额 = 分配金额 - 已退金额 + BigDecimal availableRefund = bonus.getAmount().subtract(bonus.getRefundAmount() == null ? BigDecimal.ZERO : bonus.getRefundAmount()); + if (availableRefund.compareTo(BigDecimal.ZERO) <= 0) { + continue; // 跳过已无可退金额的记录 + } + + // 按原始比例计算本次应退金额 = 本次退款总额 * (原始分配金额/订单总额) + BigDecimal proportion = bonus.getAmount().divide(billAmount, 6, RoundingMode.HALF_UP); + BigDecimal shouldRefund = refundAmount.multiply(proportion).setScale(2, RoundingMode.HALF_UP); + + // 实际退款金额取可退金额与应退金额的较小值 + BigDecimal actualRefund = shouldRefund.min(availableRefund); Bonus refundBonus = new Bonus(); refundBonus.setId(bonus.getId()); refundBonus.setStatus(bonus.getStatus()); - refundBonus.setRefundAmount(bonusRefundAmount); + refundBonus.setRefundAmount(actualRefund); refundBonus.setArrivalId(bonus.getArrivalId()); refundBonus.setArrivalType(bonus.getArrivalType()); refundBonus.setBillNo(bonus.getBillNo()); @@ -1677,60 +1447,110 @@ public class TransactionBillServiceImpl implements TransactionBillService, After refundBonus.setToBalance(bonus.getToBalance()); refundList.add(refundBonus); - dividedAmount = dividedAmount.add(bonusRefundAmount); + dividedAmount = dividedAmount.add(actualRefund); } - // 若存在误差,则平台吃掉误差 - if (dividedAmount.compareTo(refundAmount) != 0) { - Bonus platform = refundList.stream().filter(bonus -> bonus.getArrivalType().equals(BonusArrivalType.PLATFORM.getType())).findFirst().orElse(null); - ServiceUtil.assertion(platform == null, "平台不存在"); - BigDecimal subtract = refundAmount.subtract(dividedAmount); // 误差值 - platform.setRefundAmount(platform.getRefundAmount().add(subtract)); - } + // 处理误差 + handleRefundAmountDiff(refundList, bonusList, dividedAmount, refundAmount); // 校验金额 for (Bonus bonus : refundList) { ServiceUtil.assertion(bonus.getRefundAmount().compareTo(BigDecimal.ZERO) < 0, "退款金额不允许小于0"); } - BigDecimal sum = refundList.stream().map(Bonus::getRefundAmount).reduce(BigDecimal.ZERO, BigDecimal::add); + BigDecimal sum = CollectionUtils.sumDecimal(refundList, Bonus::getRefundAmount); ServiceUtil.assertion(sum.compareTo(refundAmount) != 0, "退款金额分配出错"); + // 执行退款逻辑 + return executeRefund(refundList); + } + + /** + * 处理退款金额分配的误差 + * @param refundList 退款列表 + * @param bonusList 原始分成列表 + * @param dividedAmount 已分配金额 + * @param refundAmount 需要退款总金额 + */ + private void handleRefundAmountDiff(List refundList, List bonusList, BigDecimal dividedAmount, BigDecimal refundAmount) { + if (dividedAmount.compareTo(refundAmount) == 0) { + return; + } + // 误差值 + BigDecimal diff = refundAmount.subtract(dividedAmount); + + // 多个分成方共同承担误差 + BigDecimal remainingDiff = diff; + for (Bonus refundBonus : refundList) { + // 获取原始分成记录 + BonusVO originalBonus = bonusList.stream() + .filter(b -> b.getId().equals(refundBonus.getId())) + .findFirst() + .orElse(null); + + if (originalBonus == null) { + continue; + } + + // 计算当前分成方的剩余可退金额 + BigDecimal availableRefund = originalBonus.getAmount() + .subtract(originalBonus.getRefundAmount() == null ? BigDecimal.ZERO : originalBonus.getRefundAmount()) + .subtract(refundBonus.getRefundAmount()); + + // 如果剩余可退金额足够承担误差 + if (availableRefund.compareTo(BigDecimal.ZERO) > 0) { + // 取可用退款金额与剩余误差中的较小值 + BigDecimal adjustAmount = availableRefund.min(remainingDiff); + refundBonus.setRefundAmount(refundBonus.getRefundAmount().add(adjustAmount)); + remainingDiff = remainingDiff.subtract(adjustAmount); + + // 如果误差已经分配完毕,则退出 + if (remainingDiff.compareTo(BigDecimal.ZERO) == 0) { + return; + } + } + } + + // 如果仍然无法完全分配误差,抛出异常 + if (remainingDiff.compareTo(BigDecimal.ZERO) > 0) { + throw new ServiceException("退款金额分配出错:无法处理误差金额"); + } + } + + // 执行分成退款 + private int executeRefund(List refundList) { Integer result = transactionTemplate.execute(status -> { int update = 0; for (Bonus bonus : refundList) { - // 根据分成状态来决定是否扣减用户余额(给用户加余额前需要判断分成状态是否为待分成) if (BonusStatus.WAIT_DIVIDE.getStatus().equals(bonus.getStatus())) { - // 待分成,扣减待分成金额,加上退款金额 int refund = bonusService.refundWhenWaitDivide(bonus.getId(), bonus.getRefundAmount()); ServiceUtil.assertion(refund != 1, "可退款金额不足"); } else if (BonusStatus.DIVIDEND.getStatus().equals(bonus.getStatus())) { - // 已分成,扣减已分成金额,加上退款金额 int refund = bonusService.refundWhenDividend(bonus.getId(), bonus.getRefundAmount()); ServiceUtil.assertion(refund != 1, "可退款金额不足"); - // 扣减分成方余额 - ServiceUtil.assertion(bonus.getToBalance() == null, "数据异常,请联系管理员处理"); if (bonus.getToBalance() != null && bonus.getToBalance()) { if (BonusArrivalType.userList().contains(bonus.getArrivalType())) { - userService.subtractBalance(bonus.getArrivalId(), bonus.getRefundAmount(), String.format("订单退款:%s", bonus.getBillNo()), RecordBalanceBstType.RECHARGE, bonus.getBillId()); + userService.subtractBalance( + bonus.getArrivalId(), + bonus.getRefundAmount(), + String.format("订单退款:%s", bonus.getBillNo()), + RecordBalanceBstType.RECHARGE, + bonus.getBillId() + ); } else if (BonusArrivalType.deptList().contains(bonus.getArrivalType())) { -// deptService.subtractBalance(bonus.getArrivalId(), bonus.getRefundAmount(), String.format("订单退款:%s", bonus.getBillNo()), RecordBalanceBstType.RECHARGE, bonus.getBillId()); + // deptService相关逻辑暂时不处理 } } } - update++; } - return update; }); return result == null ? 0 : result; } - - @Override public int updateByQuery(TransactionBill data, TransactionBillQuery query) { if (query == null) { @@ -1809,33 +1629,6 @@ public class TransactionBillServiceImpl implements TransactionBillService, After return 0; } - // 结束使用订单 -// @Override -// public int endUse(EndUseBO bo) { -// if (bo == null) { -// return 0; -// } -// -// return this.endSmartUse(bo); - - // 智能订单 -// if (SuitFeeMode.SMART.getMode().equals(bill.getSuitFeeMode())) { -// // 单次智能 -//// if (SuitFeeType.singleList().contains(bill.getSuitFeeType())) { -//// } -//// // 分时段智能 -//// else if (SuitFeeType.timingList().contains(bill.getSuitFeeType())){ -//// return this.endTimingUse(bo); -//// } -// } -// // 单次订单 -// else if (SuitFeeMode.SINGLE.getMode().equals(bill.getSuitFeeMode())) { -// return this.endUseSingle(bo); -// } -// -// return 0; -// } - @Override public List> selectCommonSumOfMoney(TransactionBillQuery query, String groupBy) { return transactionBillMapper.selectCommonSumOfMoney(query, groupBy); diff --git a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmTransactionBillController.java b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmTransactionBillController.java index 193e2874..058d628e 100644 --- a/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmTransactionBillController.java +++ b/smart-switch-web/src/main/java/com/ruoyi/web/controller/ss/SmTransactionBillController.java @@ -180,19 +180,4 @@ public class SmTransactionBillController extends BaseController return error("暂不支持该订单类型"); } - // 修复订单数据 - @PutMapping("/{billId}/fix") - @Log(title = "修复订单数据", businessType = BusinessType.UPDATE) - @PreAuthorize("@ss.hasPermi('system:bill:fix')") - public AjaxResult fix(@PathVariable Long billId) { - return toAjax(transactionBillService.fix(billId)); - } - - @PutMapping("/fixAll") - @Log(title = "修复所有订单数据", businessType = BusinessType.UPDATE) - @PreAuthorize("@ss.hasPermi('system:bill:fix')") - public AjaxResult fixAll() { - return toAjax(transactionBillService.fixAll()); - } - }