添加获取当前用户信息接口
This commit is contained in:
@@ -1,22 +1,23 @@
|
||||
package com.yupi.springbootinit.service.impl;
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.date.DateUnit;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.yupi.springbootinit.common.ErrorCode;
|
||||
import com.yupi.springbootinit.exception.BusinessException;
|
||||
import com.yupi.springbootinit.mapper.SystemTenantMapper;
|
||||
import com.yupi.springbootinit.model.entity.SystemTenant;
|
||||
import com.yupi.springbootinit.model.entity.SystemUsers;
|
||||
import com.yupi.springbootinit.service.SystemTenantService;
|
||||
import com.yupi.springbootinit.mapper.SystemUsersMapper;
|
||||
import com.yupi.springbootinit.model.vo.user.SystemUsersVO;
|
||||
import com.yupi.springbootinit.service.SystemUsersService;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import com.yupi.springbootinit.mapper.SystemUsersMapper;
|
||||
import com.yupi.springbootinit.service.SystemUsersService;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
/*
|
||||
* @author: ziin
|
||||
@@ -90,5 +91,43 @@ public class SystemUsersServiceImpl extends ServiceImpl<SystemUsersMapper,System
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public SystemUsersVO getCurrentUserInfo() {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
SystemUsers user = baseMapper.selectById(userId);
|
||||
if (user == null || Boolean.TRUE.equals(user.getDeleted())) {
|
||||
throw new BusinessException(ErrorCode.NOT_FOUND_ERROR, "用户不存在");
|
||||
}
|
||||
SystemTenant tenant = systemTenantMapper.selectById(user.getTenantId());
|
||||
if (tenant == null || Boolean.TRUE.equals(tenant.getDeleted())) {
|
||||
throw new BusinessException(ErrorCode.TENANT_NAME_NOT_EXISTS);
|
||||
}
|
||||
return buildSystemUsersVO(user, tenant);
|
||||
}
|
||||
|
||||
private SystemUsersVO buildSystemUsersVO(SystemUsers user, SystemTenant tenant) {
|
||||
SystemUsersVO userVO = new SystemUsersVO();
|
||||
BeanUtil.copyProperties(user, userVO);
|
||||
userVO.setTokenName(StpUtil.getTokenName());
|
||||
userVO.setTokenValue(StpUtil.getTokenValue());
|
||||
userVO.setExpireTime(tenant.getExpireTime());
|
||||
userVO.setCrawlExpireTime(tenant.getCrawlExpireTime());
|
||||
userVO.setBrotherExpireTime(tenant.getBrotherExpireTime());
|
||||
userVO.setAiExpireTime(tenant.getAiExpireTime());
|
||||
fillFeatureEnabled(userVO, user);
|
||||
return userVO;
|
||||
}
|
||||
|
||||
private void fillFeatureEnabled(SystemUsersVO userVO, SystemUsers user) {
|
||||
userVO.setAiReplayEnabled(isEnabled(user.getAiReplay()));
|
||||
userVO.setCrawlEnabled(isEnabled(user.getCrawl()));
|
||||
userVO.setBigBrotherEnabled(isEnabled(user.getBigBrother()));
|
||||
userVO.setAiChatEnabled(isEnabled(user.getAiChat()));
|
||||
userVO.setWebAiEnabled(isEnabled(user.getWebAi()));
|
||||
}
|
||||
|
||||
private boolean isEnabled(Byte value) {
|
||||
return value != null && value == 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user