后台增加礼物赠送

This commit is contained in:
hy001 2026-05-19 18:30:02 +08:00
parent a51c252b36
commit 527a0b916d
2 changed files with 28 additions and 1 deletions

View File

@ -10,6 +10,7 @@ import com.red.circle.console.app.service.admin.UserAccountService;
import com.red.circle.console.inner.error.ConsoleErrorCode;
import com.red.circle.framework.core.asserts.ResponseAssert;
import com.red.circle.other.inner.endpoint.live.RoomManagerClient;
import com.red.circle.other.inner.endpoint.material.gift.GiftBackpackClient;
import com.red.circle.other.inner.endpoint.material.props.*;
import com.red.circle.other.inner.endpoint.user.user.SysUserProfileClient;
import com.red.circle.other.inner.enums.material.BadgeBackpackExpireTypeEnum;
@ -69,6 +70,7 @@ public class PropsGiveServiceImpl implements PropsGiveService {
private final PropsNobleVipClient propsNobleVipClient;
private final RoomThemeBackpackClient roomThemeBackpackClient;
private final PropsCommodityStoreClient propsCommodityStoreClient;
private final GiftBackpackClient giftBackpackClient;
private final UserAccountService userAccountService;
private final PropCouponClient propCouponClient;
@ -109,6 +111,7 @@ public class PropsGiveServiceImpl implements PropsGiveService {
.setType(cmd.getType())
.setSecondaryType(cmd.getSecondaryType())
.setContent(cmd.getContent())
.setQuantity(cmd.getQuantity())
.setSysOrigin(cmd.getSysOrigin())
.setReceiverAccounts(cmd.getReceiverAccounts())
.setVipOrigin(cmd.getVipOrigin())
@ -127,7 +130,7 @@ public class PropsGiveServiceImpl implements PropsGiveService {
ResponseAssert.isFalse(UserErrorCode.USER_INFO_NOT_FOUND, StringUtils.isBlank(sysOrigin));
// 后台赠送道具校验权限
if (!"BADGE".equals(cmd.getType())) {
if (!"BADGE".equals(cmd.getType()) && !"GIFT".equals(cmd.getType())) {
checkUserAccountAlias(cmd);
}
@ -165,6 +168,10 @@ public class PropsGiveServiceImpl implements PropsGiveService {
propsBackpackClient.givePropsNotify(cmd.getReceiverId(),cmd.getSecondaryType(),cmd.getExchangeDays(), Long.valueOf(cmd.getContent()));
return;
}
if (Objects.equals(cmd.getType(), PropsActivityRewardEnum.GIFT.name())) {
handleGift(cmd);
return;
}
if (Objects.equals(cmd.getType(), PropsActivityRewardEnum.GOLD.name())) {
handleGold(cmd);
return;
@ -388,6 +395,21 @@ public class PropsGiveServiceImpl implements PropsGiveService {
}
private void handleGift(PropsGiveUserCmd cmd) {
Long giftId = DataTypeUtils.toLong(cmd.getContent());
ResponseAssert.isFalse(ConsoleErrorCode.RESOURCES_SHELF_NOT_EXISTENT,
Objects.isNull(giftId) || Objects.equals(giftId, 0L));
Integer quantity = Objects.nonNull(cmd.getQuantity())
? cmd.getQuantity()
: cmd.getExchangeDays();
ResponseAssert.isFalse(ConsoleErrorCode.NUMBER_VIOLATION_ERROR,
Objects.isNull(quantity) || quantity <= 0);
ResponseAssert.requiredSuccess(
giftBackpackClient.incrGift(cmd.getReceiverId(), giftId, quantity));
}
private void isUserNormal(Long userId) {
UserProfileDTO userProfile = ResponseAssert.requiredSuccess(
userProfileClient.getByUserId(userId));

View File

@ -41,6 +41,11 @@ public class PropsGiveUserCmd extends Command {
@NotNull(message = "exchangeDays required.")
private Integer exchangeDays;
/**
* 礼物数量.
*/
private Integer quantity;
/**
* 道具类型.
*/