|  | @@ -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());
 |