经理中心

This commit is contained in:
hy001 2026-05-11 18:47:27 +08:00
parent 5d98ed071c
commit 2f45f23bd7

View File

@ -9,11 +9,16 @@ import com.red.circle.console.inner.error.ConsoleErrorCode;
import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.framework.dto.PageResult;
import com.red.circle.other.inner.endpoint.sys.AdministratorClient;
import com.red.circle.other.inner.endpoint.team.manager.TeamManagerClient;
import com.red.circle.other.inner.endpoint.team.target.UserHistoryIdentityClient;
import com.red.circle.other.inner.endpoint.user.region.RegionConfigClient;
import com.red.circle.other.inner.endpoint.user.user.UserProfileClient;
import com.red.circle.other.inner.enums.sys.appmanager.RoomRolesEnum;
import com.red.circle.other.inner.model.cmd.sys.AddSysAdministratorCmd;
import com.red.circle.other.inner.model.cmd.sys.SysAdministratorChangeStatusCmd;
import com.red.circle.other.inner.model.cmd.team.manager.TeamManagerOpsPageQryCmd;
import com.red.circle.other.inner.model.dto.sys.AdministratorDTO;
import com.red.circle.other.inner.model.dto.agency.manager.TeamManagerDTO;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.sequence.IdWorkerUtils;
@ -36,6 +41,7 @@ public class TeamManagerServiceImpl implements TeamManagerService {
private final UserService userService;
private final TeamManagerClient teamManagerClient;
private final AdministratorClient administratorClient;
private final UserProfileClient userProfileClient;
private final RegionConfigClient regionConfigClient;
private final UserHistoryIdentityClient userHistoryIdentityClient;
@ -112,6 +118,7 @@ public class TeamManagerServiceImpl implements TeamManagerService {
ResponseAssert.requiredSuccess(teamManagerClient.add(addCmd));
ResponseAssert.requiredSuccess(userHistoryIdentityClient.saveManager(cmd.getUserId()));
ensureAppManager(cmd.getUserId(), cmd.getCreateUser());
}
@Override
@ -128,6 +135,46 @@ public class TeamManagerServiceImpl implements TeamManagerService {
TeamManagerDTO db = ResponseAssert.requiredSuccess(teamManagerClient.getById(id));
ResponseAssert.notNull(CommonErrorCode.DATA_ERROR, db);
ResponseAssert.requiredSuccess(teamManagerClient.deleteById(id));
removeAppManagerIfOnlyManagerRole(db.getUserId());
}
private void ensureAppManager(Long userId, Long operatorUserId) {
AdministratorDTO administrator = ResponseAssert.requiredSuccess(
administratorClient.getByUserId(userId));
if (Objects.isNull(administrator)) {
AddSysAdministratorCmd addCmd = new AddSysAdministratorCmd();
addCmd.setUserId(userId);
addCmd.setRoles(RoomRolesEnum.MANAGER.name());
addCmd.setReqUserId(operatorUserId);
ResponseAssert.requiredSuccess(administratorClient.addSysAdministrator(addCmd));
administrator = ResponseAssert.requiredSuccess(administratorClient.getByUserId(userId));
}
ResponseAssert.notNull(CommonErrorCode.DATA_ERROR, administrator);
if (StringUtils.isBlank(administrator.getRoles())
|| !Boolean.TRUE.equals(administrator.getStatus())) {
ResponseAssert.requiredSuccess(
administratorClient.changeRoles(administrator.getId(), RoomRolesEnum.MANAGER.name()));
}
if (!Boolean.TRUE.equals(administrator.getStatus())) {
SysAdministratorChangeStatusCmd statusCmd = new SysAdministratorChangeStatusCmd()
.setId(administrator.getId())
.setStatus(1);
statusCmd.setReqUserId(operatorUserId);
ResponseAssert.requiredSuccess(administratorClient.changeStatusAdministrator(statusCmd));
}
}
private void removeAppManagerIfOnlyManagerRole(Long userId) {
AdministratorDTO administrator = ResponseAssert.requiredSuccess(
administratorClient.getByUserId(userId));
if (Objects.isNull(administrator) || !RoomRolesEnum.MANAGER.eq(administrator.getRoles())) {
return;
}
ResponseAssert.requiredSuccess(administratorClient.deleteSysAdministrator(administrator.getId()));
}
}