|
@@ -9,27 +9,38 @@ import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
import cn.tr.core.annotation.TenantIgnore;
|
|
import cn.tr.core.annotation.TenantIgnore;
|
|
|
import cn.tr.core.exception.ServiceException;
|
|
import cn.tr.core.exception.ServiceException;
|
|
|
import cn.tr.core.exception.TRExcCode;
|
|
import cn.tr.core.exception.TRExcCode;
|
|
|
-import cn.tr.core.strategy.LoginUserStrategy;
|
|
|
|
|
import cn.tr.core.utils.IpUtil;
|
|
import cn.tr.core.utils.IpUtil;
|
|
|
import cn.tr.core.utils.PswUtils;
|
|
import cn.tr.core.utils.PswUtils;
|
|
|
import cn.tr.core.utils.ServletUtils;
|
|
import cn.tr.core.utils.ServletUtils;
|
|
|
import cn.tr.module.sys.config.SysConfigManager;
|
|
import cn.tr.module.sys.config.SysConfigManager;
|
|
|
import cn.tr.module.sys.config.SysConfigProperties;
|
|
import cn.tr.module.sys.config.SysConfigProperties;
|
|
|
import cn.tr.module.sys.oauth2.config.CaptchaOperator;
|
|
import cn.tr.module.sys.oauth2.config.CaptchaOperator;
|
|
|
|
|
+import cn.tr.module.sys.oauth2.dto.AccountUserInfoDTO;
|
|
|
import cn.tr.module.sys.oauth2.mapper.OAuth2Mapper;
|
|
import cn.tr.module.sys.oauth2.mapper.OAuth2Mapper;
|
|
|
import cn.tr.module.sys.oauth2.dto.OAuth2PswReqDTO;
|
|
import cn.tr.module.sys.oauth2.dto.OAuth2PswReqDTO;
|
|
|
import cn.tr.module.sys.tenant.dto.SysTenantCommonDTO;
|
|
import cn.tr.module.sys.tenant.dto.SysTenantCommonDTO;
|
|
|
import cn.tr.module.sys.tenant.service.ISysTenantService;
|
|
import cn.tr.module.sys.tenant.service.ISysTenantService;
|
|
|
|
|
+import cn.tr.module.sys.user.dto.SysOrgDTO;
|
|
|
|
|
+import cn.tr.module.sys.user.dto.SysPositionDTO;
|
|
|
|
|
+import cn.tr.module.sys.user.dto.SysRoleDTO;
|
|
|
import cn.tr.module.sys.user.dto.SysUserDTO;
|
|
import cn.tr.module.sys.user.dto.SysUserDTO;
|
|
|
import cn.tr.module.sys.user.enums.UserStatusEnum;
|
|
import cn.tr.module.sys.user.enums.UserStatusEnum;
|
|
|
|
|
+import cn.tr.module.sys.user.mapper.SysOrgMapper;
|
|
|
|
|
+import cn.tr.module.sys.user.mapper.SysPositionMapper;
|
|
|
|
|
+import cn.tr.module.sys.user.mapper.SysRoleMapper;
|
|
|
|
|
+import cn.tr.module.sys.user.service.ISysOrgService;
|
|
|
|
|
+import cn.tr.module.sys.user.service.ISysPositionService;
|
|
|
|
|
+import cn.tr.module.sys.user.service.ISysRoleService;
|
|
|
import cn.tr.module.sys.user.service.ISysUserService;
|
|
import cn.tr.module.sys.user.service.ISysUserService;
|
|
|
import cn.tr.plugin.security.bo.UserLoginInfoBO;
|
|
import cn.tr.plugin.security.bo.UserLoginInfoBO;
|
|
|
|
|
+import cn.tr.plugin.security.context.LoginUserContextHolder;
|
|
|
import cn.tr.plugin.security.utils.SaTokenUtils;
|
|
import cn.tr.plugin.security.utils.SaTokenUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.context.annotation.Lazy;
|
|
import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
|
|
+import java.util.List;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -54,6 +65,16 @@ public class LoginOAuth2PswUserOperator extends AbstractOAuth2PswUserOperator{
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private CaptchaOperator captchaOperator;
|
|
private CaptchaOperator captchaOperator;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISysOrgService orgService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISysRoleService roleService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private ISysPositionService positionService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
@TenantIgnore
|
|
@TenantIgnore
|
|
|
public String auth(OAuth2PswReqDTO source) {
|
|
public String auth(OAuth2PswReqDTO source) {
|
|
@@ -133,8 +154,7 @@ public class LoginOAuth2PswUserOperator extends AbstractOAuth2PswUserOperator{
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public boolean updatePsw(String oldPsw, String newPsw) {
|
|
public boolean updatePsw(String oldPsw, String newPsw) {
|
|
|
- String username = LoginUserStrategy.tr.getCurrentUsername();
|
|
|
|
|
- return sysUserService.updatePsw(username,oldPsw,newPsw);
|
|
|
|
|
|
|
+ return sysUserService.updatePsw(LoginUserContextHolder.getUser().getUserId(),oldPsw,newPsw);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -144,6 +164,37 @@ public class LoginOAuth2PswUserOperator extends AbstractOAuth2PswUserOperator{
|
|
|
return OAuth2Mapper.INSTANCE.toPswLoginInfo(sysUserService.selectSysUserById(loginId));
|
|
return OAuth2Mapper.INSTANCE.toPswLoginInfo(sysUserService.selectSysUserById(loginId));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public AccountUserInfoDTO getAccountInfo() {
|
|
|
|
|
+ AccountUserInfoDTO result = new AccountUserInfoDTO();
|
|
|
|
|
+ String loginId =String.valueOf( SaTokenUtils.getStpUtil().getLoginId());
|
|
|
|
|
+ SysUserDTO user = sysUserService.selectSysUserById(loginId);
|
|
|
|
|
+
|
|
|
|
|
+ AccountUserInfoDTO.BasicInfo basicInfo = AccountUserInfoDTO.BasicInfo.builder()
|
|
|
|
|
+ .avatar(user.getAvatar())
|
|
|
|
|
+ .username(user.getUsername())
|
|
|
|
|
+ .nickname(user.getNickname())
|
|
|
|
|
+ .gender(user.getGender())
|
|
|
|
|
+ .phone(user.getPhone())
|
|
|
|
|
+ .email(user.getEmail())
|
|
|
|
|
+ .createTime(user.getCreateTime())
|
|
|
|
|
+ .lastLoginIp(user.getLastLoginIp())
|
|
|
|
|
+ .lastLoginAddress(user.getLastLoginAddress())
|
|
|
|
|
+ .lastLoginDate(user.getLastLoginDate())
|
|
|
|
|
+ .build();
|
|
|
|
|
+ //填充角色信息
|
|
|
|
|
+ List<SysRoleDTO> roles = roleService.selectSysRoleByIds(user.getRoleIds());
|
|
|
|
|
+ basicInfo.setRoles(SysRoleMapper.INSTANCE.convertSmallList(roles));
|
|
|
|
|
+ //填充岗位信息
|
|
|
|
|
+ List<SysPositionDTO> positions = positionService.selectSysPositionByIds(user.getPostIds());
|
|
|
|
|
+ basicInfo.setPositions(SysPositionMapper.INSTANCE.convertSmallList(positions));
|
|
|
|
|
+ //填充机构信息
|
|
|
|
|
+ SysOrgDTO sysOrgDTO = orgService.selectSysOrgById(user.getOrgId());
|
|
|
|
|
+ basicInfo.setOrg(SysOrgMapper.INSTANCE.convertSmall(sysOrgDTO));
|
|
|
|
|
+ result.setBasicInfo(basicInfo);
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public String matchLoginType() {
|
|
public String matchLoginType() {
|
|
|
return StpUtil.TYPE;
|
|
return StpUtil.TYPE;
|