|
@@ -9,17 +9,20 @@ import com.zanxiang.common.enums.BanStatusEnum;
|
|
|
import com.zanxiang.common.exception.BaseException;
|
|
|
import com.zanxiang.common.utils.StringUtils;
|
|
|
import com.zanxiang.common.utils.bean.BeanUtils;
|
|
|
+import com.zanxiang.erp.security.util.SecurityUtil;
|
|
|
import com.zanxiang.manage.domain.dto.UserDTO;
|
|
|
import com.zanxiang.manage.domain.params.UserBanListParam;
|
|
|
import com.zanxiang.manage.domain.params.UserBanUpdateParam;
|
|
|
import com.zanxiang.manage.domain.vo.UserBanVO;
|
|
|
import com.zanxiang.manage.service.UserBanService;
|
|
|
import com.zanxiang.manage.service.UserService;
|
|
|
+import com.zanxiang.mybatis.entity.User;
|
|
|
import com.zanxiang.mybatis.entity.UserBan;
|
|
|
import com.zanxiang.mybatis.mapper.UserBanMapper;
|
|
|
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;
|
|
|
import java.time.LocalTime;
|
|
@@ -78,38 +81,40 @@ public class UserBanServiceImpl extends ServiceImpl<UserBanMapper, UserBan> impl
|
|
|
* @return : 返回更新结果
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Boolean addOrUpdate(UserBanUpdateParam param) {
|
|
|
- //查询玩家
|
|
|
+ //查询用户信息
|
|
|
+ UserDTO userDTO = userService.getById(param.getUserId());
|
|
|
+ if (userDTO == null) {
|
|
|
+ throw new BaseException("参数错误, 玩家信息不存在");
|
|
|
+ }
|
|
|
+ //更新用户信息
|
|
|
+ userService.update(new LambdaUpdateWrapper<User>()
|
|
|
+ .set(User::getStatus, param.getStatus())
|
|
|
+ .set(User::getUpdateTime, LocalDateTime.now())
|
|
|
+ .eq(User::getId, param.getUserId()));
|
|
|
+ //查询玩家封禁信息
|
|
|
UserBan userBan = super.getOne(new LambdaQueryWrapper<UserBan>().eq(UserBan::getUserId, param.getUserId()));
|
|
|
//已存在的玩家直接更新
|
|
|
if (userBan != null) {
|
|
|
return super.update(new LambdaUpdateWrapper<UserBan>()
|
|
|
.set(UserBan::getStatus, param.getStatus())
|
|
|
.set(UserBan::getBanTime, Objects.equals(param.getStatus(), BanStatusEnum.BAN_STATUS.getStatus()) ? LocalDateTime.now() : null)
|
|
|
- .set(UserBan::getOperateId, 1L)
|
|
|
- .set(UserBan::getOperateName, "赞象 admin")
|
|
|
+ .set(UserBan::getOperateId, SecurityUtil.getUserId())
|
|
|
+ .set(UserBan::getOperateName, SecurityUtil.getTokenInfo().getNickname())
|
|
|
.set(UserBan::getUpdateTime, LocalDateTime.now())
|
|
|
- .eq(UserBan::getUserId, param.getUserId())
|
|
|
- );
|
|
|
- }
|
|
|
- //玩家信息不存在, 并且是解封状态, 直接过
|
|
|
- if (Objects.equals(param.getStatus(), BanStatusEnum.NORMAL_STATUS.getStatus())) {
|
|
|
- return Boolean.TRUE;
|
|
|
- }
|
|
|
- //查询玩家用户信息
|
|
|
- UserDTO userDTO = userService.getById(param.getUserId());
|
|
|
- if (userDTO == null) {
|
|
|
- throw new BaseException("参数错误, 玩家信息不存在");
|
|
|
+ .eq(UserBan::getUserId, param.getUserId()));
|
|
|
}
|
|
|
+ //添加玩家封禁信息
|
|
|
return super.save(UserBan.builder()
|
|
|
.userId(userDTO.getId())
|
|
|
.userName(userDTO.getUsername())
|
|
|
.userNickName(userDTO.getNickname())
|
|
|
.regTime(userDTO.getCreateTime())
|
|
|
.banTime(LocalDateTime.now())
|
|
|
- .status(BanStatusEnum.BAN_STATUS.getStatus())
|
|
|
- .operateId(1L)
|
|
|
- .operateName("赞象 admin")
|
|
|
+ .status(param.getStatus())
|
|
|
+ .operateId(SecurityUtil.getUserId())
|
|
|
+ .operateName(SecurityUtil.getTokenInfo().getNickname())
|
|
|
.createTime(LocalDateTime.now())
|
|
|
.updateTime(LocalDateTime.now())
|
|
|
.build());
|