diff --git a/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/cmd/team/manager/TeamManagerAddCmd.java b/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/cmd/team/manager/TeamManagerAddCmd.java index adca4a1f..09adf92c 100644 --- a/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/cmd/team/manager/TeamManagerAddCmd.java +++ b/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/cmd/team/manager/TeamManagerAddCmd.java @@ -29,6 +29,14 @@ public class TeamManagerAddCmd extends Command { @NotBlank(message = "regionId required.") private String regionId; + private Boolean canAddBdLeader; + + private Boolean canGiftProps; + + private Boolean canBanUser; + + private Boolean canUnbanUser; + @NotNull(message = "createUser required.") private Long createUser; diff --git a/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/agency/manager/TeamManagerDTO.java b/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/agency/manager/TeamManagerDTO.java index c2473f8a..ee1820b0 100644 --- a/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/agency/manager/TeamManagerDTO.java +++ b/rc-service/rc-inner-api/other-inner/other-inner-model/src/main/java/com/red/circle/other/inner/model/dto/agency/manager/TeamManagerDTO.java @@ -32,6 +32,14 @@ public class TeamManagerDTO extends DTO { private String regionId; + private Boolean canAddBdLeader; + + private Boolean canGiftProps; + + private Boolean canBanUser; + + private Boolean canUnbanUser; + private Timestamp createTime; private Timestamp updateTime; diff --git a/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/team/manager/TeamManagerServiceImpl.java b/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/team/manager/TeamManagerServiceImpl.java index 64952eb5..90427932 100644 --- a/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/team/manager/TeamManagerServiceImpl.java +++ b/rc-service/rc-service-console/console-application/src/main/java/com/red/circle/console/app/service/app/team/manager/TeamManagerServiceImpl.java @@ -92,6 +92,10 @@ public class TeamManagerServiceImpl implements TeamManagerService { .orElse("")) .setRegionId(info.getRegionId()) .setRegionName(regionNameMap.get(info.getRegionId())) + .setCanAddBdLeader(defaultEnabled(info.getCanAddBdLeader())) + .setCanGiftProps(defaultEnabled(info.getCanGiftProps())) + .setCanBanUser(defaultEnabled(info.getCanBanUser())) + .setCanUnbanUser(defaultEnabled(info.getCanUnbanUser())) .setCreateTime(info.getCreateTime()) .setUpdateTime(info.getUpdateTime())); } @@ -112,6 +116,10 @@ public class TeamManagerServiceImpl implements TeamManagerService { .setSysOrigin(cmd.getSysOrigin()) .setContact(cmd.getContact()) .setRegionId(cmd.getRegionId()) + .setCanAddBdLeader(defaultEnabled(cmd.getCanAddBdLeader())) + .setCanGiftProps(defaultEnabled(cmd.getCanGiftProps())) + .setCanBanUser(defaultEnabled(cmd.getCanBanUser())) + .setCanUnbanUser(defaultEnabled(cmd.getCanUnbanUser())) .setCreateUser(cmd.getCreateUser()); ResponseAssert.requiredSuccess(teamManagerClient.add(addCmd)); @@ -124,6 +132,10 @@ public class TeamManagerServiceImpl implements TeamManagerService { .setId(cmd.getId()) .setContact(cmd.getContact()) .setRegionId(cmd.getRegionId()) + .setCanAddBdLeader(cmd.getCanAddBdLeader()) + .setCanGiftProps(cmd.getCanGiftProps()) + .setCanBanUser(cmd.getCanBanUser()) + .setCanUnbanUser(cmd.getCanUnbanUser()) .setUpdateUser(cmd.getUpdateUser()))); } @@ -144,4 +156,8 @@ public class TeamManagerServiceImpl implements TeamManagerService { ResponseAssert.requiredSuccess(administratorClient.deleteSysAdministrator(administrator.getId())); } + private Boolean defaultEnabled(Boolean value) { + return !Boolean.FALSE.equals(value); + } + } diff --git a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/team/manager/TeamManagerCO.java b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/team/manager/TeamManagerCO.java index fd16a4cd..cc0aca12 100644 --- a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/team/manager/TeamManagerCO.java +++ b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/clienobject/team/manager/TeamManagerCO.java @@ -38,6 +38,14 @@ public class TeamManagerCO extends ClientObject { private String regionName; + private Boolean canAddBdLeader; + + private Boolean canGiftProps; + + private Boolean canBanUser; + + private Boolean canUnbanUser; + private Timestamp createTime; private Timestamp updateTime; diff --git a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerAddCmd.java b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerAddCmd.java index 3c453e1f..c44acf26 100644 --- a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerAddCmd.java +++ b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerAddCmd.java @@ -31,4 +31,12 @@ public class TeamManagerAddCmd extends Command { @NotBlank(message = "regionId required.") private String regionId; + private Boolean canAddBdLeader; + + private Boolean canGiftProps; + + private Boolean canBanUser; + + private Boolean canUnbanUser; + } diff --git a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerUpdateCmd.java b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerUpdateCmd.java index 06e51780..00fbb01f 100644 --- a/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerUpdateCmd.java +++ b/rc-service/rc-service-console/console-client/src/main/java/com/red/circle/console/app/dto/cmd/app/team/manager/TeamManagerUpdateCmd.java @@ -29,4 +29,12 @@ public class TeamManagerUpdateCmd extends Command { @NotBlank(message = "regionId required.") private String regionId; + private Boolean canAddBdLeader; + + private Boolean canGiftProps; + + private Boolean canBanUser; + + private Boolean canUnbanUser; + } diff --git a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/entity/team/TeamManagerInfo.java b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/entity/team/TeamManagerInfo.java index cfb1633e..c1752d40 100644 --- a/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/entity/team/TeamManagerInfo.java +++ b/rc-service/rc-service-other/other-infrastructure/src/main/java/com/red/circle/other/infra/database/rds/entity/team/TeamManagerInfo.java @@ -51,4 +51,28 @@ public class TeamManagerInfo extends TimestampBaseEntity { @TableField("region_id") private String regionId; + /** + * 经理中心是否允许添加BD Leader. + */ + @TableField("can_add_bd_leader") + private Boolean canAddBdLeader; + + /** + * 经理中心是否允许赠送道具. + */ + @TableField("can_gift_props") + private Boolean canGiftProps; + + /** + * 经理中心是否允许封禁用户. + */ + @TableField("can_ban_user") + private Boolean canBanUser; + + /** + * 经理中心是否允许解封用户. + */ + @TableField("can_unban_user") + private Boolean canUnbanUser; + } diff --git a/sql/20260611_team_manager_feature_switch.sql b/sql/20260611_team_manager_feature_switch.sql new file mode 100644 index 00000000..5b130f2f --- /dev/null +++ b/sql/20260611_team_manager_feature_switch.sql @@ -0,0 +1,61 @@ +SET @table_schema = DATABASE(); + +SET @ddl = IF( + EXISTS( + SELECT 1 + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @table_schema + AND TABLE_NAME = 'team_manager_base_info' + AND COLUMN_NAME = 'can_add_bd_leader' + ), + 'SELECT 1', + "ALTER TABLE `team_manager_base_info` ADD COLUMN `can_add_bd_leader` tinyint(1) NOT NULL DEFAULT 1 COMMENT '经理中心是否允许添加BD Leader' AFTER `region_id`" +); +PREPARE stmt FROM @ddl; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +SET @ddl = IF( + EXISTS( + SELECT 1 + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @table_schema + AND TABLE_NAME = 'team_manager_base_info' + AND COLUMN_NAME = 'can_gift_props' + ), + 'SELECT 1', + "ALTER TABLE `team_manager_base_info` ADD COLUMN `can_gift_props` tinyint(1) NOT NULL DEFAULT 1 COMMENT '经理中心是否允许赠送道具' AFTER `can_add_bd_leader`" +); +PREPARE stmt FROM @ddl; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +SET @ddl = IF( + EXISTS( + SELECT 1 + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @table_schema + AND TABLE_NAME = 'team_manager_base_info' + AND COLUMN_NAME = 'can_ban_user' + ), + 'SELECT 1', + "ALTER TABLE `team_manager_base_info` ADD COLUMN `can_ban_user` tinyint(1) NOT NULL DEFAULT 1 COMMENT '经理中心是否允许封禁用户' AFTER `can_gift_props`" +); +PREPARE stmt FROM @ddl; +EXECUTE stmt; +DEALLOCATE PREPARE stmt; + +SET @ddl = IF( + EXISTS( + SELECT 1 + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = @table_schema + AND TABLE_NAME = 'team_manager_base_info' + AND COLUMN_NAME = 'can_unban_user' + ), + 'SELECT 1', + "ALTER TABLE `team_manager_base_info` ADD COLUMN `can_unban_user` tinyint(1) NOT NULL DEFAULT 1 COMMENT '经理中心是否允许解封用户' AFTER `can_ban_user`" +); +PREPARE stmt FROM @ddl; +EXECUTE stmt; +DEALLOCATE PREPARE stmt;