|
|
@@ -12,6 +12,7 @@ import org.dromara.business.domain.PlayersItemsLog;
|
|
|
import org.dromara.business.domain.User;
|
|
|
import org.dromara.business.domain.bo.ItemsUserBo;
|
|
|
import org.dromara.business.domain.bo.UserBo;
|
|
|
+import org.dromara.business.domain.enums.ItemsTypeEnum;
|
|
|
import org.dromara.business.domain.vo.ItemsVo;
|
|
|
import org.dromara.business.domain.vo.PlayerItemsVo;
|
|
|
import org.dromara.business.domain.vo.UserVo;
|
|
|
@@ -347,7 +348,7 @@ public class UserServiceImpl implements IUserService {
|
|
|
|
|
|
// 1. 参数校验
|
|
|
validateParams(bo);
|
|
|
- logger.debug("参数校验通过: userId={}, itemId={}, quantity={}, type={}",
|
|
|
+ logger.info("参数校验通过: userId={}, itemId={}, quantity={}, type={}",
|
|
|
bo.getUserId(), bo.getItemId(), bo.getQuantity(), bo.getType());
|
|
|
|
|
|
// 2. 获取分布式锁
|
|
|
@@ -357,12 +358,12 @@ public class UserServiceImpl implements IUserService {
|
|
|
throw new RuntimeException("获取道具操作锁失败,请稍后再试");
|
|
|
}
|
|
|
|
|
|
- logger.debug("成功获取分布式锁: userId={}", bo.getUserId());
|
|
|
+ logger.info("成功获取分布式锁: userId={}", bo.getUserId());
|
|
|
|
|
|
try {
|
|
|
// * type: 1 新增, 2 扣除, 3 其他
|
|
|
if (bo.getType() == 2) {
|
|
|
- logger.debug("执行道具扣除前检查: userId={}, itemId={}, requiredQuantity={}",
|
|
|
+ logger.info("执行道具扣除前检查: userId={}, itemId={}, requiredQuantity={}",
|
|
|
bo.getUserId(), bo.getItemId(), bo.getQuantity());
|
|
|
|
|
|
PlayerItems playerItem = new PlayerItems();
|
|
|
@@ -377,16 +378,16 @@ public class UserServiceImpl implements IUserService {
|
|
|
bo.getQuantity());
|
|
|
throw new RuntimeException("道具数量不足");
|
|
|
}
|
|
|
- logger.debug("道具数量检查通过: 当前持有={}", playerItemsVos.getQuantity());
|
|
|
+ logger.info("道具数量检查通过: 当前持有={}", playerItemsVos.getQuantity());
|
|
|
}
|
|
|
|
|
|
// 3. 记录变更日志
|
|
|
- logger.debug("开始记录道具操作日志");
|
|
|
+ logger.info("开始记录道具操作日志");
|
|
|
logRewardDistribution(bo);
|
|
|
- logger.debug("道具操作日志记录完成");
|
|
|
+ logger.info("道具操作日志记录完成");
|
|
|
|
|
|
// 4. 发放/更新道具
|
|
|
- logger.debug("开始构建道具变更列表");
|
|
|
+ logger.info("开始构建道具变更列表");
|
|
|
List<PlayerItems> playerItemsList = buildPlayerItems(bo);
|
|
|
int updateCount = playerItemsMapper.batchInsertOrUpdatePlayerItems(playerItemsList);
|
|
|
|
|
|
@@ -403,14 +404,14 @@ public class UserServiceImpl implements IUserService {
|
|
|
jsonObject.put("channelType", "item_update");
|
|
|
jsonObject.put("value", bo.getUserId());
|
|
|
redisUtil.publish(RedisKeys.CHANNEL_ADMIN, jsonObject);
|
|
|
- logger.debug("已发布 Redis 消息: channel={}, data={}", RedisKeys.CHANNEL_ADMIN, jsonObject);
|
|
|
+ logger.info("已发布 Redis 消息: channel={}, data={}", RedisKeys.CHANNEL_ADMIN, jsonObject);
|
|
|
|
|
|
return Boolean.TRUE;
|
|
|
|
|
|
} finally {
|
|
|
// 确保释放锁
|
|
|
ItemOperationLock.releaseLock(bo.getUserId());
|
|
|
- logger.debug("已释放分布式锁: userId={}", bo.getUserId());
|
|
|
+ logger.info("已释放分布式锁: userId={}", bo.getUserId());
|
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
@@ -541,7 +542,7 @@ public class UserServiceImpl implements IUserService {
|
|
|
logger.error("道具信息不存在,itemId={}", bo.getItemId());
|
|
|
throw new RuntimeException("道具信息不存在,itemId=" + bo.getItemId());
|
|
|
}
|
|
|
- logger.debug("查询到道具信息: itemId={}, name={}, itemDesc={}",
|
|
|
+ logger.info("查询到道具信息: itemId={}, name={}, itemDesc={}",
|
|
|
itemsVo.getId(), itemsVo.getName(), itemsVo.getItemDesc());
|
|
|
|
|
|
PlayerItems playerItem = new PlayerItems();
|
|
|
@@ -551,17 +552,17 @@ public class UserServiceImpl implements IUserService {
|
|
|
// 查询玩家当前持有数量
|
|
|
PlayerItemsVo playerItemsVos = playerItemsMapper.selectPlayerItems(playerItem);
|
|
|
Integer beforeNum = playerItemsVos != null ? Integer.valueOf(playerItemsVos.getQuantity().toString()) : 0;
|
|
|
- logger.debug("玩家当前持有道具数量: playerId={}, itemId={}, beforeNum={}",
|
|
|
+ logger.info("玩家当前持有道具数量: playerId={}, itemId={}, beforeNum={}",
|
|
|
bo.getUserId(), bo.getItemId(), beforeNum);
|
|
|
|
|
|
// 计算变更后数量
|
|
|
Integer afterNum;
|
|
|
if (bo.getType() == 1) {
|
|
|
afterNum = beforeNum + bo.getQuantity();
|
|
|
- logger.debug("道具发放操作: quantity={}", bo.getQuantity());
|
|
|
+ logger.info("道具发放操作: quantity={}", bo.getQuantity());
|
|
|
} else {
|
|
|
afterNum = beforeNum - bo.getQuantity();
|
|
|
- logger.debug("道具回收操作: quantity={}", bo.getQuantity());
|
|
|
+ logger.info("道具回收操作: quantity={}", bo.getQuantity());
|
|
|
}
|
|
|
|
|
|
// 构建日志实体
|
|
|
@@ -572,10 +573,11 @@ public class UserServiceImpl implements IUserService {
|
|
|
logEntry.setAfterNum(afterNum.longValue());
|
|
|
logEntry.setUserId(bo.getUserId());
|
|
|
logEntry.setItemTypeText(itemsVo.getName());
|
|
|
- logEntry.setRemark(itemsVo.getItemDesc());
|
|
|
+ logEntry.setRemark(ItemsTypeEnum.fromCode(bo.getItemType()).getDescription()+"-"+itemsVo.getItemDesc());
|
|
|
logEntry.setType(bo.getType() == 1 ? 1L : 2L); // 简化赋值
|
|
|
-
|
|
|
- logger.debug("准备插入日志记录: {}", logEntry);
|
|
|
+ //后台 系统赠送
|
|
|
+ logEntry.setItemType(bo.getItemType());
|
|
|
+ logger.info("准备插入日志记录: {}", logEntry);
|
|
|
|
|
|
// 插入日志
|
|
|
int insertResult = playersItemsLogMapper.insertPlayerItemLog(logEntry);
|