抽奖新增碎片类型

This commit is contained in:
tianfeng 2026-01-15 17:02:25 +08:00
parent ed796d3228
commit 1b5fc22d7f

View File

@ -7,10 +7,12 @@ import com.red.circle.common.business.enums.SendPropsOrigin;
import com.red.circle.other.app.service.activity.LotteryPrizeGrantService;
import com.red.circle.other.infra.database.rds.entity.activity.LotteryPrize;
import com.red.circle.other.inner.endpoint.material.props.BadgeBackpackClient;
import com.red.circle.other.inner.endpoint.material.props.FragmentsBackpackClient;
import com.red.circle.other.inner.endpoint.material.props.PropsBackpackClient;
import com.red.circle.other.inner.endpoint.material.props.RoomThemeBackpackClient;
import com.red.circle.other.inner.endpoint.user.user.UserProfileClient;
import com.red.circle.other.inner.enums.material.BadgeBackpackExpireTypeEnum;
import com.red.circle.other.inner.enums.material.PropsTypeEnum;
import com.red.circle.other.inner.enums.sys.SysBadgeConfigTypeEnum;
import com.red.circle.other.inner.enums.sys.SysCurrencySendReasonEnum;
import com.red.circle.other.inner.model.cmd.material.GiveBadgeCmd;
@ -23,6 +25,7 @@ import com.red.circle.wallet.inner.endpoint.wallet.WalletGoldClient;
import com.red.circle.wallet.inner.model.cmd.DiamondReceiptCmd;
import com.red.circle.wallet.inner.model.cmd.GoldReceiptCmd;
import java.math.BigDecimal;
import java.util.Set;
import com.red.circle.wallet.inner.model.enums.GoldOrigin;
import lombok.RequiredArgsConstructor;
@ -46,6 +49,7 @@ public class LotteryPrizeGrantServiceImpl implements LotteryPrizeGrantService {
private final BadgeBackpackClient badgeBackpackClient;
private final RoomThemeBackpackClient roomThemeBackpackClient;
private final UserProfileClient userProfileClient;
private final FragmentsBackpackClient fragmentsBackpackClient;
@Override
public void grantPrize(Long userId, LotteryPrize prize, String recordNo) {
@ -79,6 +83,10 @@ public class LotteryPrizeGrantServiceImpl implements LotteryPrizeGrantService {
case "BADGE":
grantBadge(userId, prize, recordNo);
break;
case "FRAGMENTS":
grantFragments(userId, prize);
break;
case "THEME":
grantTheme(userId, prize, recordNo);
@ -248,12 +256,26 @@ public class LotteryPrizeGrantServiceImpl implements LotteryPrizeGrantService {
.setDays(days)
.setBadgeType(SysBadgeConfigTypeEnum.ACTIVITY)
);
// 发送通知
// propsBackpackClient.givePropsNotify(userId, "BADGE", days, prize.getPropsId());
log.info("Badge granted, userId: {}, badgeId: {}, days: {}, expireType: {}, recordNo: {}",
userId, prize.getPropsId(), days, expireType, recordNo);
}
/**
* 发放徽章.
*/
private void grantFragments(Long userId, LotteryPrize prize) {
if (prize.getPropsId() == null) {
return;
}
// 这里的天数是数量随便数量
int days = prize.getPrizeValue() != null ? prize.getPrizeValue().intValue() : 1;
// 新增碎片
fragmentsBackpackClient.incrFragments(
userId,
prize.getPropsId(),
days,
PropsTypeEnum.FRAGMENTS.name()
);
}
/**