diff --git a/rc-service/rc-inner-api/order-inner/order-inner-model/src/main/java/com/red/circle/order/inner/model/enums/PayApplicationCommodityType.java b/rc-service/rc-inner-api/order-inner/order-inner-model/src/main/java/com/red/circle/order/inner/model/enums/PayApplicationCommodityType.java index d80e6f50..7d292e4a 100644 --- a/rc-service/rc-inner-api/order-inner/order-inner-model/src/main/java/com/red/circle/order/inner/model/enums/PayApplicationCommodityType.java +++ b/rc-service/rc-inner-api/order-inner/order-inner-model/src/main/java/com/red/circle/order/inner/model/enums/PayApplicationCommodityType.java @@ -15,7 +15,12 @@ public enum PayApplicationCommodityType { /** * 货运金币. */ - FREIGHT_GOLD; + FREIGHT_GOLD, + + /** + * 超级金币代理 + */ + FREIGHT_GOLD_SUPER; public boolean eq(String key) { return Objects.equals(key, this.name()); diff --git a/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/user/UserProfileDTO.java b/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/user/UserProfileDTO.java index 527581d8..852fc009 100644 --- a/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/user/UserProfileDTO.java +++ b/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/user/UserProfileDTO.java @@ -189,6 +189,11 @@ public class UserProfileDTO implements Serializable { */ private Boolean isFreightAgent; + /** + * 是否超级金币代理 + */ + private Boolean isSuperFreightAgent; + /** * 用户使用的徽章. */ diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightGoldClientApi.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightGoldClientApi.java index a583de85..a392130e 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightGoldClientApi.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-api/src/main/java/com/red/circle/wallet/inner/endpoint/freight/api/FreightGoldClientApi.java @@ -60,6 +60,12 @@ public interface FreightGoldClientApi { @GetMapping("/checkFreightAgent") ResultResponse checkFreightAgent(@RequestParam("userId") Long userId); + /** + * 是否为超级货运代理角色 + */ + @GetMapping("/checkSuperFreightAgent") + ResultResponse checkSuperFreightAgent(@RequestParam("userId") Long userId); + @PostMapping("/pageFreight") ResultResponse> pageFreight( @RequestBody UserFreightBalancePageQryCmd query); diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/FreightBalanceCmd.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/FreightBalanceCmd.java index da4690e4..2ae6cdf0 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/FreightBalanceCmd.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/cmd/FreightBalanceCmd.java @@ -63,6 +63,11 @@ public class FreightBalanceCmd extends CommonCommand { */ private Boolean dealer; + /** + * 是否超级经销商 0.否 1.是. + */ + private Boolean superDealer; + /** * 授权卖家数量. */ diff --git a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/UserFreightBalanceDTO.java b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/UserFreightBalanceDTO.java index 0d9f6ba0..6edbc012 100644 --- a/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/UserFreightBalanceDTO.java +++ b/rc-service/rc-inner-api/wallet-inner/wallet-inner-model/src/main/java/com/red/circle/wallet/inner/model/dto/UserFreightBalanceDTO.java @@ -77,6 +77,11 @@ public class UserFreightBalanceDTO implements Serializable { */ private Boolean dealer; + /** + * 是否超级经销商 0.否 1.是. + */ + private Boolean superDealer; + /** * 授权卖家数量. */ diff --git a/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/UserFreightRestController.java b/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/UserFreightRestController.java index 835213c7..84af6fde 100644 --- a/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/UserFreightRestController.java +++ b/rc-service/rc-service-console/console-adapter/src/main/java/com/red/circle/console/adapter/app/user/UserFreightRestController.java @@ -92,6 +92,16 @@ public class UserFreightRestController extends BaseController { userFreightService.switchDealerStatus(id, status); } + /** + * 是否超级经销商切换 + */ + @OpsOperationReqLog("货运代理-是否超级经销商开关") + @PostMapping("/switch-superdealer-status/{id}/{status}") + public void switchSuperDealerStatus(@PathVariable("id") Long id, + @PathVariable("status") Boolean status) { + userFreightService.switchSuperDealerStatus(id, status); + } + /** * 扣除货款. */ diff --git a/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/user/UserFreightBalanceServiceImpl.java b/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/user/UserFreightBalanceServiceImpl.java index ac2e506d..74dced6e 100644 --- a/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/user/UserFreightBalanceServiceImpl.java +++ b/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/user/UserFreightBalanceServiceImpl.java @@ -327,6 +327,19 @@ public class UserFreightBalanceServiceImpl implements walletAppConvertor.toUserFreightBalanceCmd(balance)))); } + @Override + public void switchSuperDealerStatus(Long id, Boolean status) { + UserFreightBalanceDTO balance = ResponseAssert.requiredSuccess( + freightGoldClient.getFreightBalanceById(id)); + ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, balance); + + balance.setSuperDealer(status); + balance.setUpdateTime(TimestampUtils.now()); + ResponseAssert.isTrue(CommonErrorCode.UPDATE_FAILURE, ResponseAssert.requiredSuccess( + freightGoldClient.updateFreightBalance( + walletAppConvertor.toUserFreightBalanceCmd(balance)))); + } + @Override public void updateSellerQuantity(UserFreightSellerCmd param) { if (!freightGoldClient.updateSellerQuantity(param).getBody()){ diff --git a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/user/UserFreightBalanceCO.java b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/user/UserFreightBalanceCO.java index 99e2997e..cc15384b 100644 --- a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/user/UserFreightBalanceCO.java +++ b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/user/UserFreightBalanceCO.java @@ -78,6 +78,11 @@ public class UserFreightBalanceCO implements Serializable { */ private Boolean dealer; + /** + * 是否超级经销商 0.否 1.是. + */ + private Boolean superDealer; + /** * 授权卖家数量. */ diff --git a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/service/app/user/UserFreightService.java b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/service/app/user/UserFreightService.java index e3e26ca0..31acc56f 100644 --- a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/service/app/user/UserFreightService.java +++ b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/service/app/user/UserFreightService.java @@ -82,6 +82,11 @@ public interface UserFreightService { */ void switchDealerStatus(Long id, Boolean status); + /** + * 是否超级经销商切换 + */ + void switchSuperDealerStatus(Long id, Boolean status); + /** * 修改经销商卖家数量 */ diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/user/query/UserProfileUseSearchQryExe.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/user/query/UserProfileUseSearchQryExe.java index 9b469a19..06f26883 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/user/query/UserProfileUseSearchQryExe.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/command/user/query/UserProfileUseSearchQryExe.java @@ -39,6 +39,7 @@ public class UserProfileUseSearchQryExe { UserProfileDTO userProfileDTO = userProfileAppConvertor.toUserProfileDTO(userProfile); userProfileDTO.setIsFreightAgent(ResponseAssert.requiredSuccess(freightGoldClient.checkFreightAgent(userProfile.getId()))); + userProfileDTO.setIsSuperFreightAgent(ResponseAssert.requiredSuccess(freightGoldClient.checkSuperFreightAgent(userProfile.getId()))); return userProfileDTO; } diff --git a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/entity/freight/FreightBalance.java b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/entity/freight/FreightBalance.java index 972e6172..29b47bba 100644 --- a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/entity/freight/FreightBalance.java +++ b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/entity/freight/FreightBalance.java @@ -76,6 +76,12 @@ public class FreightBalance extends TimestampBaseEntity { @TableField("dealer") private Boolean dealer; + /** + * 是否超级经销商 0.否 1.是. + */ + @TableField("super_dealer") + private Boolean superDealer; + /** * 授权卖家数量. */ diff --git a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/FreightBalanceService.java b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/FreightBalanceService.java index 503b358b..19c7e87c 100644 --- a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/FreightBalanceService.java +++ b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/FreightBalanceService.java @@ -109,6 +109,11 @@ public interface FreightBalanceService extends BaseService { */ Boolean checkFreightAgent(Long userId); + /** + * 是否为超级货运代理角色 + */ + Boolean checkSuperFreightAgent(Long userId); + /** * 根据用户id获取货运代理 */ diff --git a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceServiceImpl.java b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceServiceImpl.java index f3e847b3..6e994555 100644 --- a/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceServiceImpl.java +++ b/rc-service/rc-service-wallet/wallet-infrastructure/src/main/java/com/red/circle/wallet/infra/database/rds/service/freight/impl/FreightBalanceServiceImpl.java @@ -131,6 +131,19 @@ public class FreightBalanceServiceImpl extends .orElse(false); } + @Override + public Boolean checkSuperFreightAgent(Long userId) { + return Optional.ofNullable(query() + .select(FreightBalance::getId) + .eq(FreightBalance::getUserId, userId) + .eq(FreightBalance::getClose, Boolean.FALSE) + .eq(FreightBalance::getSuperDealer, Boolean.TRUE) + .last(PageConstant.LIMIT_ONE) + .getOne()) + .map(item -> Objects.nonNull(item.getId())) + .orElse(false); + } + @Override public FreightBalance getFreightBalance(Long userId) { return query().eq(FreightBalance::getUserId, userId).last(PageConstant.LIMIT_ONE).getOne(); diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/freight/FreightGoldClientEndpoint.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/freight/FreightGoldClientEndpoint.java index 003a7a75..a97a37a3 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/freight/FreightGoldClientEndpoint.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/endpoint/freight/FreightGoldClientEndpoint.java @@ -58,6 +58,11 @@ public class FreightGoldClientEndpoint implements FreightGoldClientApi { return ResultResponse.success(freightGoldClientService.checkFreightAgent(userId)); } + @Override + public ResultResponse checkSuperFreightAgent(Long userId) { + return ResultResponse.success(freightGoldClientService.checkSuperFreightAgent(userId)); + } + @Override public ResultResponse> pageFreight( UserFreightBalancePageQryCmd query) { diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/FreightGoldClientService.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/FreightGoldClientService.java index bb3e9946..2fafa523 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/FreightGoldClientService.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/FreightGoldClientService.java @@ -58,6 +58,11 @@ public interface FreightGoldClientService { */ Boolean checkFreightAgent(Long userId); + /** + * 是否为超级货运代理角色 + */ + Boolean checkSuperFreightAgent(Long userId); + PageResult pageFreight(UserFreightBalancePageQryCmd query); UserFreightBalanceDTO getFreightBalance(Long userId); diff --git a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightGoldClientServiceImpl.java b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightGoldClientServiceImpl.java index 70d55101..035b089e 100644 --- a/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightGoldClientServiceImpl.java +++ b/rc-service/rc-service-wallet/wallet-inner-endpoint/src/main/java/com/red/circle/wallet/inner/service/freight/impl/FreightGoldClientServiceImpl.java @@ -109,6 +109,11 @@ public class FreightGoldClientServiceImpl implements FreightGoldClientService { return freightBalanceService.checkFreightAgent(userId); } + @Override + public Boolean checkSuperFreightAgent(Long userId) { + return freightBalanceService.checkSuperFreightAgent(userId); + } + @Override public PageResult pageFreight(UserFreightBalancePageQryCmd query) { return freightBalanceService.pageFreight(query)