boom-支持金豆奖励类型

This commit is contained in:
2025-08-13 10:41:56 +08:00
parent 177d53a13f
commit 3e1dd0f44e
4 changed files with 24 additions and 1 deletions

View File

@@ -17,6 +17,7 @@ public enum RewardTypeEnum implements ByteTypeEnum{
VIP((byte)10, "VIP", "等級"),
MEDAL((byte)11, "勳章", ""),
PERSONAL((byte)12, "个人页背景", ""),
GOLDBEAN((byte)13, "任务中心金豆", ""),
;
/** 奖品ID **/

View File

@@ -3,6 +3,7 @@ package com.accompany.business.constant.dailytask;
public enum GoldBeanBillType {
TASK_GAIN(1, "任务获取", (byte)2),
MALL_PAY(2, "商城购买", (byte)1),
ROOM_BOOM_RANDOM(3, "Boom奖励", (byte)1),
;
private final int type;

View File

@@ -143,6 +143,7 @@ public class RoomBoomSignServiceImpl extends ServiceImpl<RoomBoomSignMapper, Roo
// 房主派奖
goldNum += this.draw(roomUid, globalAwardMap, level, RoomBoomConstant.RoomBoomRoleType.ROOM_OWNER, roomUid, cycleDate, uidSet, prizes, id);
// 随机用户
Collection<Long> inRoomUids = roomService.getRoomUserZset(roomUid).readAll();
log.info("handleAwardDelayJob,randomUser,roomUid:{},uids:{}", roomUid, JSON.toJSONString(inRoomUids));
if (CollectionUtils.isNotEmpty(inRoomUids)) {
@@ -154,7 +155,7 @@ public class RoomBoomSignServiceImpl extends ServiceImpl<RoomBoomSignMapper, Roo
int i = 0;
while (iterator.hasNext()) {
Long randomUid = iterator.next();
if (uidSet.contains(randomUid) || i >= 5) {
if (uidSet.contains(randomUid) || i >= 15) {
continue;
}
goldNum += this.drawRandom(randomUid, randomUserGlobalAwardMap, level, RoomBoomConstant.RoomBoomRoleType.ROOM_NORMAL_USER, roomUid, cycleDate, uidSet, prizes, id);

View File

@@ -3,6 +3,7 @@ package com.accompany.business.util;
import com.accompany.business.common.constant.RewardTypeEnum;
import com.accompany.business.common.dto.RewardDto;
import com.accompany.business.common.vo.RewardVo;
import com.accompany.business.constant.dailytask.GoldBeanBillType;
import com.accompany.business.model.CarGoods;
import com.accompany.business.model.Gift;
import com.accompany.business.model.Headwear;
@@ -24,6 +25,7 @@ import com.accompany.business.service.medal.UserMedalService;
import com.accompany.business.service.nameplate.UserNameplateService;
import com.accompany.business.service.purse.UserPurseService;
import com.accompany.business.service.user.UserBackpackService;
import com.accompany.business.service.user.UserGoldBeanService;
import com.accompany.business.service.vip.ChatBubbleService;
import com.accompany.business.service.vip.VipInfoService;
import com.accompany.business.service.vip.VipLevelBizService;
@@ -41,6 +43,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -88,6 +91,8 @@ public class RewardUtil {
private PersonalBackgroundService personalBackgroundService;
@Autowired
private UserPersonalBackgroundService userPersonalBackgroundService;
@Autowired
private UserGoldBeanService userGoldBeanService;
@Resource(name = "bizExecutor")
private ThreadPoolExecutor bizExecutor;
@@ -337,6 +342,21 @@ public class RewardUtil {
vo.setPic(personalBackground.getPic());
break;
case GOLDBEAN:
if (num <= 0){
throw new ServiceException(BusiStatus.NOT_FOUNT_REWARD_ITEM);
}
bizExecutor.execute(() -> {
try {
userGoldBeanService.addGoldBean(uid, BigDecimal.valueOf(num), GoldBeanBillType.ROOM_BOOM_RANDOM, null, 1, null, null, null);
} catch (Exception e) {
log.error("[RewardUtil] {} {} {} {} {} 发奖异常", uid, typeEnum, refId, num, remark, e);
}
});
vo.setName(typeEnum.getDesc());
vo.setPic(null);
default:
break;
}