勋章test处理

This commit is contained in:
tianfeng 2025-11-23 15:27:11 +08:00
parent 331716c086
commit e73ed48313

View File

@ -7,9 +7,13 @@ import com.red.circle.mq.business.model.event.BadgeOperateEvent;
import com.red.circle.mq.rocket.business.producer.UserMqMessageService;
import com.red.circle.other.infra.database.mongo.entity.team.team.TeamMember;
import com.red.circle.other.infra.database.mongo.service.team.team.TeamMemberService;
import com.red.circle.other.infra.database.rds.entity.badge.BadgeBackpack;
import com.red.circle.other.infra.database.rds.entity.badge.BadgeConfig;
import com.red.circle.other.infra.database.rds.entity.sys.Administrator;
import com.red.circle.other.infra.database.rds.entity.team.BusinessDevelopmentBaseInfo;
import com.red.circle.other.infra.database.rds.entity.team.RoomBdLead;
import com.red.circle.other.infra.database.rds.service.badge.BadgeBackpackService;
import com.red.circle.other.infra.database.rds.service.badge.BadgeConfigService;
import com.red.circle.other.infra.database.rds.service.sys.AdministratorService;
import com.red.circle.other.infra.database.rds.service.team.BusinessDevelopmentBaseInfoService;
import com.red.circle.other.infra.database.rds.service.team.RoomBdLeadService;
@ -49,6 +53,10 @@ public class BatchSendBadgeTest {
private AdministratorService administratorService;
@Autowired
private FreightGoldClient freightGoldClient;
@Autowired
private BadgeBackpackService badgeBackpackService;
@Autowired
private BadgeConfigService badgeConfigService;
// 线程池大小
private static final int THREAD_POOL_SIZE = 10;
@ -67,13 +75,13 @@ public class BatchSendBadgeTest {
// sendBdLeaderBadges(executor);
// 3. 批量发放BD勋章
// sendBdBadges(executor);
sendBdBadges(executor);
// 4. 批量发放管理员勋章
// sendAdminBadges(executor);
// 5. 批量发放金币代理勋章
sendRechargeAgencyBadges(executor);
// sendRechargeAgencyBadges(executor);
} finally {
executor.shutdown();
@ -89,6 +97,18 @@ public class BatchSendBadgeTest {
List<TeamMember> list = teamMemberService.list();
log.info("开始发放代理主播勋章,总数: {}", list.size());
BadgeConfig agencyConfig = badgeConfigService.getByBadgeKey(BadgeKeyEnum.AGENCY.name());
if (agencyConfig == null) {
log.error("{}徽章不存在", BadgeKeyEnum.AGENCY.name());
return;
}
BadgeConfig hostConfig = badgeConfigService.getByBadgeKey(BadgeKeyEnum.HOST.name());
if (hostConfig == null) {
log.error("{}徽章不存在", BadgeKeyEnum.HOST.name());
return;
}
AtomicInteger counter = new AtomicInteger(0);
list.forEach(teamMember -> {
@ -96,22 +116,34 @@ public class BatchSendBadgeTest {
try {
Long userId = teamMember.getMemberId();
// 发放主播勋章
userMqMessageService.sendBadgeOperateEvent(
userId,
BadgeKeyEnum.HOST.name(),
BadgeOperateEvent.OperationType.WEAR.name()
);
if (teamMember.getRole() == TeamMemberRole.OWN) {
// 发放代理勋章
BadgeBackpack existBadge = badgeBackpackService.query()
.eq(BadgeBackpack::getUserId, userId)
.eq(BadgeBackpack::getBadgeId, hostConfig.getId())
.getOne();
if (existBadge == null) {
// 发放主播勋章
userMqMessageService.sendBadgeOperateEvent(
userId,
BadgeKeyEnum.AGENCY.name(),
BadgeKeyEnum.HOST.name(),
BadgeOperateEvent.OperationType.WEAR.name()
);
}
if (teamMember.getRole() == TeamMemberRole.OWN) {
BadgeBackpack badgeBackpack = badgeBackpackService.query()
.eq(BadgeBackpack::getUserId, userId)
.eq(BadgeBackpack::getBadgeId, agencyConfig.getId())
.getOne();
if (badgeBackpack == null) {
// 发放代理勋章
userMqMessageService.sendBadgeOperateEvent(
userId,
BadgeKeyEnum.AGENCY.name(),
BadgeOperateEvent.OperationType.WEAR.name()
);
}
}
int count = counter.incrementAndGet();
if (count % 100 == 0) {
log.info("代理主播勋章发放进度: {}/{}", count, list.size());
@ -170,6 +202,12 @@ public class BatchSendBadgeTest {
List<BusinessDevelopmentBaseInfo> list = businessDevelopmentBaseInfoService.listAll();
log.info("开始发放BD勋章总数: {}", list.size());
BadgeConfig bdConfig = badgeConfigService.getByBadgeKey(BadgeKeyEnum.BD.name());
if (bdConfig == null) {
log.error("{}徽章不存在", BadgeKeyEnum.BD.name());
return;
}
AtomicInteger counter = new AtomicInteger(0);
list.forEach(bd -> {
@ -177,11 +215,18 @@ public class BatchSendBadgeTest {
try {
Long userId = bd.getUserId();
userMqMessageService.sendBadgeOperateEvent(
userId,
BadgeKeyEnum.BD.name(),
BadgeOperateEvent.OperationType.WEAR.name()
);
BadgeBackpack existBadge = badgeBackpackService.query()
.eq(BadgeBackpack::getUserId, userId)
.eq(BadgeBackpack::getBadgeId, bdConfig.getId())
.getOne();
if (existBadge == null) {
// 发放BD勋章
userMqMessageService.sendBadgeOperateEvent(
userId,
BadgeKeyEnum.BD.name(),
BadgeOperateEvent.OperationType.WEAR.name()
);
}
int count = counter.incrementAndGet();
if (count % 100 == 0) {
@ -269,6 +314,12 @@ public class BatchSendBadgeTest {
int cursor = 1;
boolean hasMore = true;
BadgeConfig badgeConfig = badgeConfigService.getByBadgeKey(BadgeKeyEnum.RECHARGE_AGENCY.name());
if (badgeConfig == null) {
log.error("{}徽章不存在", BadgeKeyEnum.RECHARGE_AGENCY.name());
return;
}
while (hasMore) {
PageQuery pageQuery = new PageQuery();
pageQuery.setCursor(cursor);
@ -299,6 +350,14 @@ public class BatchSendBadgeTest {
return;
}
BadgeBackpack existBadge = badgeBackpackService.query()
.eq(BadgeBackpack::getUserId, userId)
.eq(BadgeBackpack::getBadgeId, badgeConfig.getId())
.getOne();
if (existBadge != null) {
return;
}
userMqMessageService.sendBadgeOperateEvent(
userId,
BadgeKeyEnum.RECHARGE_AGENCY.name(),