进房间自动领取奖励发送通知
This commit is contained in:
parent
3e360af785
commit
f5c8dbc333
@ -141,4 +141,9 @@ public enum GroupMessageTypeEnum {
|
||||
*/
|
||||
ROCKET_ENERGY_LAUNCH,
|
||||
|
||||
/**
|
||||
* 火箭奖励用户
|
||||
*/
|
||||
ROCKET_REWARD_USER,
|
||||
|
||||
}
|
||||
|
||||
@ -4,6 +4,9 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
|
||||
import com.red.circle.common.business.enums.SendPropsOrigin;
|
||||
import com.red.circle.external.inner.endpoint.message.ImGroupClient;
|
||||
import com.red.circle.external.inner.model.cmd.message.CustomGroupMsgBodyCmd;
|
||||
import com.red.circle.external.inner.model.enums.message.GroupMessageTypeEnum;
|
||||
import com.red.circle.other.app.dto.clientobject.RocketRewardCO;
|
||||
import com.red.circle.other.app.dto.cmd.RocketRewardClaimCmd;
|
||||
import com.red.circle.other.app.manager.RocketImPushManager;
|
||||
@ -32,7 +35,9 @@ import org.springframework.stereotype.Component;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
@ -50,7 +55,7 @@ public class RocketRewardClaimCmdExe {
|
||||
private final RocketConfigGateway rocketConfigGateway;
|
||||
private final RocketRewardLogGateway rocketRewardLogGateway;
|
||||
private final DistributedLockUtil distributedLockUtil;
|
||||
private final RocketImPushManager rocketImPushManager;
|
||||
private final ImGroupClient imGroupClient;
|
||||
private final WalletGoldClient walletGoldClient;
|
||||
private final PropsBackpackClient propsBackpackClient;
|
||||
private final BadgeBackpackClient badgeBackpackClient;
|
||||
@ -73,7 +78,7 @@ public class RocketRewardClaimCmdExe {
|
||||
* 无返回值,静默领取
|
||||
*/
|
||||
@Async("rocketRewardExecutor")
|
||||
public void executeAsync(Long roomId, Long userId) {
|
||||
public void executeAsync(Long roomId, String roomAccount, Long userId) {
|
||||
try {
|
||||
log.debug("异步自动领取火箭奖励: roomId={}, userId={}", roomId, userId);
|
||||
|
||||
@ -84,8 +89,16 @@ public class RocketRewardClaimCmdExe {
|
||||
RocketRewardCO result = execute(cmd);
|
||||
|
||||
if (result != null) {
|
||||
log.info("异步自动领取成功: roomId={}, userId={}, reward={}",
|
||||
roomId, userId, result.getRewardType());
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("rewardType", result.getRewardType());
|
||||
map.put("cover", result.getCover());
|
||||
map.put("rocketLevel", result.getRocketLevel());
|
||||
map.put("userId", userId);
|
||||
imGroupClient.sendCustomMessage(roomAccount,
|
||||
CustomGroupMsgBodyCmd.builder()
|
||||
.type(GroupMessageTypeEnum.ROCKET_REWARD_USER)
|
||||
.data(map)
|
||||
.build());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
// 静默失败,不影响进房
|
||||
@ -157,7 +170,9 @@ public class RocketRewardClaimCmdExe {
|
||||
rewardCO.setRewardType(selectedReward.getType());
|
||||
rewardCO.setRewardItemId(selectedReward.getId());
|
||||
rewardCO.setRewardItemName(selectedReward.getName());
|
||||
rewardCO.setCover(selectedReward.getCover());
|
||||
rewardCO.setRewardAmount(getRewardAmount(selectedReward));
|
||||
rewardCO.setRocketLevel(rocketLevel);
|
||||
rewardCO.setMessage("恭喜您获得火箭奖励!");
|
||||
|
||||
log.info("火箭奖励领取成功: roomId={}, userId={}, level={}, rewardType={}, rewardId={}",
|
||||
|
||||
@ -128,7 +128,7 @@ public class RoomEnterCmdExe {
|
||||
|
||||
// 自动领取火箭奖励
|
||||
try {
|
||||
rocketRewardClaimCmdExe.executeAsync(cmd.getRoomId(), cmd.getReqUserId());
|
||||
rocketRewardClaimCmdExe.executeAsync(cmd.getRoomId(), manager.getRoomAccount(), cmd.getReqUserId());
|
||||
} catch (Exception e) {
|
||||
log.error("触发自动领取火箭奖励失败: roomId={}, userId={}", cmd.getRoomId(), cmd.getReqUserId(), e);
|
||||
}
|
||||
|
||||
@ -33,6 +33,16 @@ public class RocketRewardCO {
|
||||
*/
|
||||
private Long rewardAmount;
|
||||
|
||||
/**
|
||||
* 封面图
|
||||
*/
|
||||
private String cover;
|
||||
|
||||
/**
|
||||
* 火箭等级
|
||||
*/
|
||||
private Integer rocketLevel;
|
||||
|
||||
/**
|
||||
* 是否贡献者
|
||||
*/
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user