主播 代理 管理员 BD BDLEADER 身份变更荣誉徽章处理

This commit is contained in:
tianfeng 2025-11-21 18:07:47 +08:00
parent ca1eefc8be
commit 7d4ab3e68a
7 changed files with 93 additions and 57 deletions

View File

@ -10,12 +10,15 @@ import com.red.circle.console.inner.error.ConsoleErrorCode;
import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode; import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.framework.dto.PageResult; import com.red.circle.framework.dto.PageResult;
import com.red.circle.mq.business.model.event.BadgeOperateEvent;
import com.red.circle.mq.rocket.business.producer.UserMqMessageService;
import com.red.circle.other.inner.asserts.team.TeamErrorCode; import com.red.circle.other.inner.asserts.team.TeamErrorCode;
import com.red.circle.other.inner.endpoint.team.bd.BdTeamInfoClient; import com.red.circle.other.inner.endpoint.team.bd.BdTeamInfoClient;
import com.red.circle.other.inner.endpoint.team.bd.BdTeamLeaderClient; import com.red.circle.other.inner.endpoint.team.bd.BdTeamLeaderClient;
import com.red.circle.other.inner.endpoint.team.logs.TeamImportanceLogClient; import com.red.circle.other.inner.endpoint.team.logs.TeamImportanceLogClient;
import com.red.circle.other.inner.endpoint.team.logs.TeamProcessApprovalClient; import com.red.circle.other.inner.endpoint.team.logs.TeamProcessApprovalClient;
import com.red.circle.other.inner.endpoint.team.target.UserHistoryIdentityClient; import com.red.circle.other.inner.endpoint.team.target.UserHistoryIdentityClient;
import com.red.circle.other.inner.enums.material.BadgeKeyEnum;
import com.red.circle.other.inner.model.cmd.team.BdTeamInfoCmd; import com.red.circle.other.inner.model.cmd.team.BdTeamInfoCmd;
import com.red.circle.other.inner.model.cmd.team.bd.BdTeamLeaderAddCmd; import com.red.circle.other.inner.model.cmd.team.bd.BdTeamLeaderAddCmd;
import com.red.circle.other.inner.model.cmd.team.bd.BdTeamLeaderOpsPageQryCmd; import com.red.circle.other.inner.model.cmd.team.bd.BdTeamLeaderOpsPageQryCmd;
@ -56,6 +59,7 @@ public class TeamLeaderBDServiceImpl implements TeamLeaderBDService {
private final TeamImportanceLogClient teamImportanceLogClient; private final TeamImportanceLogClient teamImportanceLogClient;
private final TeamProcessApprovalClient teamProcessApprovalClient; private final TeamProcessApprovalClient teamProcessApprovalClient;
private final UserHistoryIdentityClient userHistoryIdentityClient; private final UserHistoryIdentityClient userHistoryIdentityClient;
private final UserMqMessageService userMqMessageService;
@Override @Override
public PageResult<RoomBdLeadCO> pageOps(BdTeamLeaderOpsPageQryCmd qryCmd) { public PageResult<RoomBdLeadCO> pageOps(BdTeamLeaderOpsPageQryCmd qryCmd) {
@ -166,6 +170,9 @@ public class TeamLeaderBDServiceImpl implements TeamLeaderBDService {
.setCreateUser(cmd.getUpdateUser()) .setCreateUser(cmd.getUpdateUser())
.setBdLeadUserId(cmd.getUserId()) .setBdLeadUserId(cmd.getUserId())
); );
userMqMessageService.sendBadgeOperateEvent(cmd.getUserId(), BadgeKeyEnum.BD.name(), BadgeOperateEvent.OperationType.WEAR.name());
userMqMessageService.sendBadgeOperateEvent(cmd.getUserId(), BadgeKeyEnum.BD_LEADER.name(), BadgeOperateEvent.OperationType.WEAR.name());
} }
@Override @Override
@ -206,6 +213,9 @@ public class TeamLeaderBDServiceImpl implements TeamLeaderBDService {
.setCreateUser(updateUser) .setCreateUser(updateUser)
.setCreateUserOrigin(1) .setCreateUserOrigin(1)
); );
userMqMessageService.sendBadgeOperateEvent(roomBdLead.getUserId(), BadgeKeyEnum.BD_LEADER.name(), BadgeOperateEvent.OperationType.REMOVE.name());
} }
@Override @Override

View File

@ -154,7 +154,7 @@ public class UserFreightBalanceServiceImpl implements
BigDecimal amount = userFreightRechargeRecordClient.inrNowMonthAmount(cmd.getUserId(), BigDecimal amount = userFreightRechargeRecordClient.inrNowMonthAmount(cmd.getUserId(),
ArithmeticUtils.lteZero(cmd.getAmount()) ? BigDecimal.ZERO : cmd.getAmount()) ArithmeticUtils.lteZero(cmd.getAmount()) ? BigDecimal.ZERO : cmd.getAmount())
.getBody(); .getBody();
sendFreightShipBadge(cmd.getUserId(), amount); // sendFreightShipBadge(cmd.getUserId(), amount);
} }
} finally { } finally {
redisService.unlock(lockKey); redisService.unlock(lockKey);
@ -214,9 +214,7 @@ public class UserFreightBalanceServiceImpl implements
return; return;
} }
sendFreightShipBadge(balance.getUserId(), sendFreightShipBadge(balance.getUserId());
userFreightRechargeRecordClient.countAmount(balance.getUserId())
.getBody());
} }
private Long getFreightBadgeId() { private Long getFreightBadgeId() {
@ -506,23 +504,14 @@ public class UserFreightBalanceServiceImpl implements
* 余额如果大于1250则发送货运代理徽章. * 余额如果大于1250则发送货运代理徽章.
* *
* @param userId 代理用户id. * @param userId 代理用户id.
* @param balance 代理余额.
*/ */
public void sendFreightShipBadge(Long userId, BigDecimal balance) { public void sendFreightShipBadge(Long userId) {
if (Objects.isNull(balance)) {
return;
}
Long freightBadgeId = getFreightBadgeId(); Long freightBadgeId = getFreightBadgeId();
if (Objects.isNull(freightBadgeId)) { if (Objects.isNull(freightBadgeId)) {
return; return;
} }
if (balance.compareTo(BigDecimal.valueOf(500)) < 0) {
return;
}
badgeBackpackClient.giveBadgePermanent(freightBadgeId, userId);
badgeBackpackClient.giveBadgePermanent(freightBadgeId, userId);
} }
/** /**

View File

@ -2,6 +2,8 @@ package com.red.circle.other.infra.common.team.decay;
import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode; import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.mq.business.model.event.BadgeOperateEvent;
import com.red.circle.mq.rocket.business.producer.UserMqMessageService;
import com.red.circle.other.domain.gateway.user.UserProfileGateway; import com.red.circle.other.domain.gateway.user.UserProfileGateway;
import com.red.circle.other.domain.gateway.user.ability.RegisterDeviceGateway; import com.red.circle.other.domain.gateway.user.ability.RegisterDeviceGateway;
import com.red.circle.other.domain.model.user.UserProfile; import com.red.circle.other.domain.model.user.UserProfile;
@ -14,6 +16,7 @@ import com.red.circle.other.infra.database.mongo.service.team.team.TeamProfileSe
import com.red.circle.other.infra.database.rds.service.team.UserHistoryIdentityService; import com.red.circle.other.infra.database.rds.service.team.UserHistoryIdentityService;
import com.red.circle.other.inner.asserts.user.UserErrorCode; import com.red.circle.other.inner.asserts.user.UserErrorCode;
import com.red.circle.other.inner.asserts.team.TeamErrorCode; import com.red.circle.other.inner.asserts.team.TeamErrorCode;
import com.red.circle.other.inner.enums.material.BadgeKeyEnum;
import com.red.circle.other.inner.model.cmd.team.TeamMemberAddCmd; import com.red.circle.other.inner.model.cmd.team.TeamMemberAddCmd;
import com.red.circle.other.inner.enums.team.TeamAppProcessApprovalReason; import com.red.circle.other.inner.enums.team.TeamAppProcessApprovalReason;
import com.red.circle.other.inner.enums.team.TeamApplicationType; import com.red.circle.other.inner.enums.team.TeamApplicationType;
@ -40,6 +43,7 @@ public class TeamMemberAddDecay {
private final UserHistoryIdentityService historyIdentityService; private final UserHistoryIdentityService historyIdentityService;
private final TeamApplicationProcessApprovalService applicationProcessApprovalService; private final TeamApplicationProcessApprovalService applicationProcessApprovalService;
private final RegisterDeviceGateway registerDeviceGateway; private final RegisterDeviceGateway registerDeviceGateway;
private final UserMqMessageService userMqMessageService;
/** /**
* 添加成员. * 添加成员.
@ -89,6 +93,8 @@ public class TeamMemberAddDecay {
); );
historyIdentityService.saveHost(param.getMemberUserId()); historyIdentityService.saveHost(param.getMemberUserId());
userMqMessageService.sendBadgeOperateEvent(param.getMemberUserId(), BadgeKeyEnum.HOST.name(), BadgeOperateEvent.OperationType.WEAR.name());
return teamProfile; return teamProfile;
} }

View File

@ -54,8 +54,8 @@ public class BadgeConfigServiceImpl extends BaseServiceImpl<BadgeConfigDAO, Badg
public Long getFreightBadgeId() { public Long getFreightBadgeId() {
return Optional.ofNullable( return Optional.ofNullable(
query().select(BadgeConfig::getId) query().select(BadgeConfig::getId)
.eq(BadgeConfig::getType, BadgeConfigTypeEnum.ADMINISTRATOR) .eq(BadgeConfig::getType, BadgeConfigTypeEnum.HONOR_ADMIN)
.eq(BadgeConfig::getBadgeKey, "shipping_agent") .eq(BadgeConfig::getBadgeKey, BadgeKeyEnum.RECHARGE_AGENCY)
.eq(BadgeConfig::getDel, Boolean.FALSE) .eq(BadgeConfig::getDel, Boolean.FALSE)
.last(PageConstant.LIMIT_ONE) .last(PageConstant.LIMIT_ONE)
.getOne()) .getOne())
@ -78,7 +78,8 @@ public class BadgeConfigServiceImpl extends BaseServiceImpl<BadgeConfigDAO, Badg
public List<Long> listAdminBadgeIds() { public List<Long> listAdminBadgeIds() {
return Optional.ofNullable( return Optional.ofNullable(
query().select(BadgeConfig::getId) query().select(BadgeConfig::getId)
.eq(BadgeConfig::getType, SysBadgeConfigTypeEnum.ADMINISTRATOR) .eq(BadgeConfig::getType, SysBadgeConfigTypeEnum.HONOR_ADMIN)
.likeLeft(BadgeConfig::getBadgeKey, BadgeKeyEnum.ADMIN)
.eq(BadgeConfig::getDel, Boolean.FALSE) .eq(BadgeConfig::getDel, Boolean.FALSE)
.list()) .list())
.map(sysBadgeConfigs -> sysBadgeConfigs.stream().map(BadgeConfig::getId).collect( .map(sysBadgeConfigs -> sysBadgeConfigs.stream().map(BadgeConfig::getId).collect(
@ -173,7 +174,7 @@ public class BadgeConfigServiceImpl extends BaseServiceImpl<BadgeConfigDAO, Badg
public Long getAdminBadgeId(String key) { public Long getAdminBadgeId(String key) {
return Optional.ofNullable( return Optional.ofNullable(
query().select(BadgeConfig::getId) query().select(BadgeConfig::getId)
.eq(BadgeConfig::getType, SysBadgeConfigTypeEnum.ADMINISTRATOR) .eq(BadgeConfig::getType, SysBadgeConfigTypeEnum.HONOR_ADMIN)
.eq(BadgeConfig::getBadgeKey, key) .eq(BadgeConfig::getBadgeKey, key)
.eq(BadgeConfig::getDel, Boolean.FALSE) .eq(BadgeConfig::getDel, Boolean.FALSE)
.last(PageConstant.LIMIT_ONE) .last(PageConstant.LIMIT_ONE)

View File

@ -103,21 +103,6 @@ public class BadgeBackpackClientServiceImpl implements BadgeBackpackClientServic
@Override @Override
public void deleteBadge(Collection<Long> userIds, Collection<Long> badgeIds) { public void deleteBadge(Collection<Long> userIds, Collection<Long> badgeIds) {
badgeBackpackService.deleteBadge(userIds, badgeIds); badgeBackpackService.deleteBadge(userIds, badgeIds);
// for (Long userId : userIds) {
// UserProfile userProfile = userProfileGateway.getByUserId(userId);
// if (Objects.isNull(userProfile)) {
// continue;
// }
// List<UserUseBadgeDTO> wearBadge = userProfile.getWearBadge();
// if (CollectionUtils.isEmpty(wearBadge)) {
// continue;
// }
// //过滤需要删除的 wearBadge id
// Set<Long> saveWear = wearBadge.stream().map(UserUseBadgeDTO::getId)
// .filter(id -> !badgeIds.contains(id)).collect(Collectors.toSet());
// userProfileGateway.updateUserWearBadge(userId, userProfile.getOriginSys(),
// saveWear);
// }
} }
@Override @Override
@ -163,7 +148,7 @@ public class BadgeBackpackClientServiceImpl implements BadgeBackpackClientServic
userProfileGateway.updateUserWearBadge(userId, userProfile.getOriginSys(),saveWear); userProfileGateway.updateUserWearBadge(userId, userProfile.getOriginSys(),saveWear);
} }
@Override @Override
public void removeWearByIds(Set<Long> ids) { public void removeWearByIds(Set<Long> ids) {
badgeBackpackService.removeWearByIds(ids); badgeBackpackService.removeWearByIds(ids);
} }
@ -252,7 +237,7 @@ public class BadgeBackpackClientServiceImpl implements BadgeBackpackClientServic
.setExpireTime(TimestampUtils.now()) .setExpireTime(TimestampUtils.now())
); );
userProfileGateway.removeCache(userId); userProfileGateway.removeCacheAll(userId);
} }
@Override @Override

View File

@ -3,6 +3,8 @@ package com.red.circle.other.app.inner.service.sys.impl;
import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode; import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.framework.dto.PageResult; import com.red.circle.framework.dto.PageResult;
import com.red.circle.mq.business.model.event.BadgeOperateEvent;
import com.red.circle.mq.rocket.business.producer.UserMqMessageService;
import com.red.circle.other.app.inner.convertor.sys.AdministratorInnerConvertor; import com.red.circle.other.app.inner.convertor.sys.AdministratorInnerConvertor;
import com.red.circle.other.app.inner.service.material.props.BadgeBackpackClientService; import com.red.circle.other.app.inner.service.material.props.BadgeBackpackClientService;
import com.red.circle.other.app.inner.service.sys.AdministratorClientService; import com.red.circle.other.app.inner.service.sys.AdministratorClientService;
@ -13,6 +15,8 @@ import com.red.circle.other.infra.database.rds.entity.sys.AdministratorAuth;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorAuthResourceService; import com.red.circle.other.infra.database.rds.service.sys.AdministratorAuthResourceService;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorAuthService; import com.red.circle.other.infra.database.rds.service.sys.AdministratorAuthService;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService; import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.inner.enums.material.BadgeKeyEnum;
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.AddSysAdministratorCmd;
import com.red.circle.other.inner.model.cmd.sys.AppUserDetailsQryCmd; import com.red.circle.other.inner.model.cmd.sys.AppUserDetailsQryCmd;
import com.red.circle.other.inner.model.cmd.sys.SysAdministratorAuthCmd; import com.red.circle.other.inner.model.cmd.sys.SysAdministratorAuthCmd;
@ -22,10 +26,8 @@ import com.red.circle.other.inner.model.dto.sys.AdministratorDTO;
import com.red.circle.other.inner.model.dto.sys.SysAdministratorAuthResourceDTO; import com.red.circle.other.inner.model.dto.sys.SysAdministratorAuthResourceDTO;
import com.red.circle.other.inner.model.dto.sys.SysAdministratorInfoDTO; import com.red.circle.other.inner.model.dto.sys.SysAdministratorInfoDTO;
import com.red.circle.tool.core.text.StringUtils; import com.red.circle.tool.core.text.StringUtils;
import java.util.Collections;
import java.util.List; import java.util.*;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -46,6 +48,7 @@ public class AdministratorClientServiceImpl implements AdministratorClientServic
private final BadgeBackpackClientService badgeBackpackClientService; private final BadgeBackpackClientService badgeBackpackClientService;
private final AdministratorInnerConvertor administratorInnerConvertor; private final AdministratorInnerConvertor administratorInnerConvertor;
private final AdministratorAuthResourceService administratorAuthResourceService; private final AdministratorAuthResourceService administratorAuthResourceService;
private final UserMqMessageService userMqMessageService;
@Override @Override
public AdministratorDTO getByUserId(Long userId) { public AdministratorDTO getByUserId(Long userId) {
@ -122,20 +125,11 @@ public class AdministratorClientServiceImpl implements AdministratorClientServic
} }
administratorService.removeById(id); administratorService.removeById(id);
deleteUserAdminBadge(sysAdministrator.getUserId()); userMqMessageService.sendBadgeOperateEvent(sysAdministrator.getUserId(), BadgeKeyEnum.SUPER_ADMIN.name(), BadgeOperateEvent.OperationType.REMOVE.name());
userMqMessageService.sendBadgeOperateEvent(sysAdministrator.getUserId(), BadgeKeyEnum.ADMIN.name(), BadgeOperateEvent.OperationType.REMOVE.name());
userProfileGateway.removeCache(sysAdministrator.getUserId()); userProfileGateway.removeCache(sysAdministrator.getUserId());
} }
private void deleteUserAdminBadge(Long userId) {
if (Objects.isNull(userId)) {
return;
}
badgeBackpackClientService.deleteBadge(
Collections.singleton(userId),
badgeConfigClientService.listAdminBadgeIds()
);
}
@Override @Override
public void changeStatusAdministrator(SysAdministratorChangeStatusCmd param) { public void changeStatusAdministrator(SysAdministratorChangeStatusCmd param) {
Administrator administrator = administratorService.getById(param.getId()); Administrator administrator = administratorService.getById(param.getId());
@ -154,7 +148,17 @@ public class AdministratorClientServiceImpl implements AdministratorClientServic
} }
if (param.isDisable()) { if (param.isDisable()) {
deleteUserAdminBadge(administrator.getUserId()); if (Arrays.asList(RoomRolesEnum.SUPER_ADMIN.name(),
RoomRolesEnum.MANAGER.name()).contains(administrator.getRoles())) {
userMqMessageService.sendBadgeOperateEvent(administrator.getUserId(), BadgeKeyEnum.SUPER_ADMIN.name(), BadgeOperateEvent.OperationType.REMOVE.name());
}
userMqMessageService.sendBadgeOperateEvent(administrator.getUserId(), BadgeKeyEnum.ADMIN.name(), BadgeOperateEvent.OperationType.REMOVE.name());
}else {
if (Arrays.asList(RoomRolesEnum.SUPER_ADMIN.name(),
RoomRolesEnum.MANAGER.name()).contains(administrator.getRoles())) {
userMqMessageService.sendBadgeOperateEvent(administrator.getUserId(), BadgeKeyEnum.SUPER_ADMIN.name(), BadgeOperateEvent.OperationType.WEAR.name());
}
userMqMessageService.sendBadgeOperateEvent(administrator.getUserId(), BadgeKeyEnum.ADMIN.name(), BadgeOperateEvent.OperationType.WEAR.name());
} }
userProfileGateway.removeCache(administrator.getUserId()); userProfileGateway.removeCache(administrator.getUserId());
@ -164,11 +168,6 @@ public class AdministratorClientServiceImpl implements AdministratorClientServic
public void changeRoles(Long id, String roles) { public void changeRoles(Long id, String roles) {
Administrator administrator = administratorService.getById(id); Administrator administrator = administratorService.getById(id);
ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, administrator); ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, administrator);
// Long badgeId = badgeConfigClientService.getAdminBadgeId(roles);
// ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, badgeId);
deleteUserAdminBadge(administrator.getUserId());
userProfileGateway.removeCache(administrator.getUserId()); userProfileGateway.removeCache(administrator.getUserId());
administratorService.update() administratorService.update()
@ -176,5 +175,31 @@ public class AdministratorClientServiceImpl implements AdministratorClientServic
.eq(Administrator::getId, id) .eq(Administrator::getId, id)
.execute(); .execute();
// 处理勋章
if (StringUtils.isBlank(roles) || !Boolean.TRUE.equals(administrator.getStatus())) {
return;
}
Long userId = administrator.getUserId();
if (RoomRolesEnum.ADMIN.name().equals(roles)) {
// 发送ADMIN勋章
userMqMessageService.sendBadgeOperateEvent(userId, BadgeKeyEnum.ADMIN.name(),
BadgeOperateEvent.OperationType.WEAR.name());
// 清除SUPER_ADMIN勋章
userMqMessageService.sendBadgeOperateEvent(userId, BadgeKeyEnum.SUPER_ADMIN.name(),
BadgeOperateEvent.OperationType.REMOVE.name());
} else if (RoomRolesEnum.SUPER_ADMIN.name().equals(roles)) {
userMqMessageService.sendBadgeOperateEvent(userId, BadgeKeyEnum.SUPER_ADMIN.name(),
BadgeOperateEvent.OperationType.WEAR.name());
userMqMessageService.sendBadgeOperateEvent(userId, BadgeKeyEnum.ADMIN.name(),
BadgeOperateEvent.OperationType.WEAR.name());
} else if (RoomRolesEnum.MANAGER.name().equals(roles)) {
userMqMessageService.sendBadgeOperateEvent(userId, BadgeKeyEnum.SUPER_ADMIN.name(),
BadgeOperateEvent.OperationType.WEAR.name());
userMqMessageService.sendBadgeOperateEvent(userId, BadgeKeyEnum.ADMIN.name(),
BadgeOperateEvent.OperationType.WEAR.name());
}
} }
} }

View File

@ -11,7 +11,9 @@ import com.red.circle.component.redis.service.RedisService;
import com.red.circle.framework.core.asserts.ResponseAssert; import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.framework.core.response.CommonErrorCode; import com.red.circle.framework.core.response.CommonErrorCode;
import com.red.circle.framework.dto.PageResult; import com.red.circle.framework.dto.PageResult;
import com.red.circle.mq.business.model.event.BadgeOperateEvent;
import com.red.circle.mq.business.model.event.team.TeamSalaryCountEvent; import com.red.circle.mq.business.model.event.team.TeamSalaryCountEvent;
import com.red.circle.mq.rocket.business.producer.UserMqMessageService;
import com.red.circle.mq.rocket.business.streams.TeamSalaryCountSink; import com.red.circle.mq.rocket.business.streams.TeamSalaryCountSink;
import com.red.circle.other.app.inner.service.team.TeamProfileClientService; import com.red.circle.other.app.inner.service.team.TeamProfileClientService;
import com.red.circle.other.domain.gateway.user.UserProfileGateway; import com.red.circle.other.domain.gateway.user.UserProfileGateway;
@ -40,6 +42,7 @@ import com.red.circle.other.infra.database.rds.entity.team.BusinessDevelopmentTe
import com.red.circle.other.infra.database.rds.service.team.*; import com.red.circle.other.infra.database.rds.service.team.*;
import com.red.circle.other.inner.asserts.team.TeamErrorCode; import com.red.circle.other.inner.asserts.team.TeamErrorCode;
import com.red.circle.other.inner.asserts.user.UserErrorCode; import com.red.circle.other.inner.asserts.user.UserErrorCode;
import com.red.circle.other.inner.enums.material.BadgeKeyEnum;
import com.red.circle.other.inner.enums.team.TeamAppProcessApprovalReason; import com.red.circle.other.inner.enums.team.TeamAppProcessApprovalReason;
import com.red.circle.other.inner.enums.team.TeamApplicationType; import com.red.circle.other.inner.enums.team.TeamApplicationType;
import com.red.circle.other.inner.enums.team.TeamMemberRole; import com.red.circle.other.inner.enums.team.TeamMemberRole;
@ -119,6 +122,7 @@ public class TeamProfileClientServiceImpl implements TeamProfileClientService {
private final BillDiamondBalanceService billDiamondBalanceService; private final BillDiamondBalanceService billDiamondBalanceService;
private final BillDiamondBalanceDetailsService billDiamondBalanceDetailsService; private final BillDiamondBalanceDetailsService billDiamondBalanceDetailsService;
private final RegisterDeviceGateway registerDeviceGateway; private final RegisterDeviceGateway registerDeviceGateway;
private final UserMqMessageService userMqMessageService;
@Override @Override
public List<TeamProfileDTO> listByIds(Set<Long> ids) { public List<TeamProfileDTO> listByIds(Set<Long> ids) {
@ -324,6 +328,11 @@ public class TeamProfileClientServiceImpl implements TeamProfileClientService {
// 标记身份 // 标记身份
userHistoryIdentityService.saveAgentAndHost(userProfile.getId()); userHistoryIdentityService.saveAgentAndHost(userProfile.getId());
// 佩戴主播和代理徽章
userMqMessageService.sendBadgeOperateEvent(userProfile.getId(), BadgeKeyEnum.AGENCY.name(), BadgeOperateEvent.OperationType.WEAR.name());
userMqMessageService.sendBadgeOperateEvent(userProfile.getId(), BadgeKeyEnum.HOST.name(), BadgeOperateEvent.OperationType.WEAR.name());
redisService.unlock(key); redisService.unlock(key);
} }
@ -434,6 +443,17 @@ public class TeamProfileClientServiceImpl implements TeamProfileClientService {
activityAgentAnchorCountService.initZeroTeam(teamId); activityAgentAnchorCountService.initZeroTeam(teamId);
activityAgentAnchorCountService activityAgentAnchorCountService
.initZeroMember(teamMemberService.getMemberIdsByTeamId(teamId)); .initZeroMember(teamMemberService.getMemberIdsByTeamId(teamId));
teamMemberService.listByTeamId(teamId).forEach(teamMember -> {
// 移除主播和代理徽章
if (teamMember.getRole() == TeamMemberRole.OWN) {
userMqMessageService.sendBadgeOperateEvent(teamMember.getMemberId(), BadgeKeyEnum.AGENCY.name(),
BadgeOperateEvent.OperationType.REMOVE.name());
}
userMqMessageService.sendBadgeOperateEvent(teamMember.getMemberId(), BadgeKeyEnum.HOST.name(),
BadgeOperateEvent.OperationType.REMOVE.name());
});
}); });
Set<Long> bdUserIds = getBdUserIdsByTeamIds(teamIds); Set<Long> bdUserIds = getBdUserIdsByTeamIds(teamIds);