diff --git a/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/freight/SendFreightShipCmdExe.java b/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/freight/SendFreightShipCmdExe.java index e88b693b..c58fed2d 100644 --- a/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/freight/SendFreightShipCmdExe.java +++ b/rc-service/rc-service-wallet/wallet-application/src/main/java/com/red/circle/wallet/app/command/freight/SendFreightShipCmdExe.java @@ -115,6 +115,16 @@ public class SendFreightShipCmdExe { try { + // 判断发送者和接收者的代理类型 + boolean senderIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.requiredReqUserId()); + boolean acceptIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.getAcceptUserId()); + boolean acceptIsFreight = freightBalanceService.checkFreightAgent(cmd.getAcceptUserId()); + + // 权限校验:超级经销商才可以发货给经销商和超级经销商,普通经销商不能发货给经销商或超级经销商 + if (acceptIsFreight || acceptIsSuperFreight) { + ResponseAssert.isTrue(FreightErrorCode.NOT_SUPER_FREIGHT, senderIsSuperFreight); + } + // 扣款失败 ResponseAssert.isTrue(WalletErrorCode.DEDUCTION_FAILED, freightBalanceService @@ -126,16 +136,6 @@ public class SendFreightShipCmdExe { // 插入流水 FreightBalanceRunningWater runningWater = saveRunningWater(cmd, balance); - // 判断发送者和接收者的代理类型 - boolean senderIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.requiredReqUserId()); - boolean acceptIsSuperFreight = freightBalanceService.checkSuperFreightAgent(cmd.getAcceptUserId()); - boolean acceptIsFreight = freightBalanceService.checkFreightAgent(cmd.getAcceptUserId()); - - // 权限校验:超级经销商才可以发货给经销商和超级经销商,普通经销商不能发货给经销商或超级经销商 - if (acceptIsFreight || acceptIsSuperFreight) { - ResponseAssert.isTrue(FreightErrorCode.NOT_SUPER_FREIGHT, senderIsSuperFreight); - } - // 发货:目标是普通经销商 → incrCandyBalance 进货运钱包;目标是超级经销商(或普通用户) → changeBalance 进金币钱包 if (acceptIsFreight && !acceptIsSuperFreight) { // 目标是经销商,入货运余额