|
@@ -0,0 +1,82 @@
|
|
|
+package com.zanxiang.sdk.service.Impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.zanxiang.module.util.JsonUtil;
|
|
|
+import com.zanxiang.mybatis.entity.GameUser;
|
|
|
+import com.zanxiang.mybatis.entity.GameUserRole;
|
|
|
+import com.zanxiang.mybatis.mapper.GameUserRoleMapper;
|
|
|
+import com.zanxiang.sdk.domain.params.GameUserRoleUpdateParam;
|
|
|
+import com.zanxiang.sdk.domain.params.UserData;
|
|
|
+import com.zanxiang.sdk.service.GameUserRoleService;
|
|
|
+import com.zanxiang.sdk.service.GameUserService;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.time.LocalDateTime;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author : xufeng
|
|
|
+ * @time : 2022-07-06
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class GameUserRoleServiceImpl extends ServiceImpl<GameUserRoleMapper, GameUserRole> implements GameUserRoleService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private GameUserService gameUserService;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Boolean updateUserGameRole(GameUserRoleUpdateParam param, UserData userData) {
|
|
|
+ log.error("上报用户信息, param : {}", JsonUtil.toString(param));
|
|
|
+ //上报类型
|
|
|
+ Integer dataType = param.getDataType();
|
|
|
+ //查询玩家信息
|
|
|
+ GameUser gameUser = gameUserService.getOne(new LambdaQueryWrapper<GameUser>().eq(GameUser::getGameId, userData.getGameId())
|
|
|
+ .eq(GameUser::getUserId, userData.getUserId()));
|
|
|
+ //获取用户角色信息
|
|
|
+ GameUserRole userRole = this.getOne(new LambdaQueryWrapper<GameUserRole>()
|
|
|
+ .eq(GameUserRole::getGameId, userData.getGameId())
|
|
|
+ .eq(GameUserRole::getRoleId, param.getRoleId()));
|
|
|
+ //角色信息不存在, 创建
|
|
|
+ if (userRole == null) {
|
|
|
+ userRole = GameUserRole.builder()
|
|
|
+ .userId(userData.getUserId())
|
|
|
+ .gameUserId(gameUser.getId())
|
|
|
+ .gameId(userData.getGameId())
|
|
|
+ .serverId(param.getServerId())
|
|
|
+ .serverName(param.getServerName())
|
|
|
+ .roleId(param.getRoleId())
|
|
|
+ .roleName(param.getRoleName())
|
|
|
+ .roleLevel(param.getRoleLevel())
|
|
|
+ .roleVipLevel(param.getRoleVipLevel())
|
|
|
+ .rolePower(param.getRolePower())
|
|
|
+ .platformCoin(param.getPlatformCoin())
|
|
|
+ .os(userData.getDeviceSystem())
|
|
|
+ .createTime(LocalDateTime.now())
|
|
|
+ .updateTime(LocalDateTime.now())
|
|
|
+ .lastLoginTime(LocalDateTime.now())
|
|
|
+ .build();
|
|
|
+ super.save(userRole);
|
|
|
+ } else {
|
|
|
+ super.update(new LambdaUpdateWrapper<GameUserRole>()
|
|
|
+ .set(GameUserRole::getRoleName, param.getRoleName())
|
|
|
+ .set(GameUserRole::getRoleLevel, param.getRoleLevel())
|
|
|
+ .set(GameUserRole::getServerId, param.getServerId())
|
|
|
+ .set(GameUserRole::getServerName, param.getServerName())
|
|
|
+ .set(param.getRoleCreateTime() != null, GameUserRole::getCreateTime, param.getRoleCreateTime())
|
|
|
+ .set(param.getRoleGradeUpdateTime() != null, GameUserRole::getUpdateTime, param.getRoleGradeUpdateTime())
|
|
|
+ .set(param.getRoleVipLevel() != null, GameUserRole::getRoleVipLevel, param.getRoleVipLevel())
|
|
|
+ .set(param.getRolePower() != null, GameUserRole::getRolePower, param.getRolePower())
|
|
|
+ .set(param.getPlatformCoin() != null, GameUserRole::getPlatformCoin, param.getPlatformCoin())
|
|
|
+ .eq(GameUserRole::getGameId, userData.getGameId())
|
|
|
+ .eq(GameUserRole::getRoleId, param.getRoleId())
|
|
|
+ );
|
|
|
+ }
|
|
|
+ return Boolean.TRUE;
|
|
|
+ }
|
|
|
+}
|