saas 优化
parent
981706944a
commit
0595237e8b
|
@ -42,11 +42,12 @@ public class TokenController {
|
||||||
Firm firm = sysFirmService.findFirmByName(form.getFirmName());
|
Firm firm = sysFirmService.findFirmByName(form.getFirmName());
|
||||||
|
|
||||||
//不能存在提示
|
//不能存在提示
|
||||||
if (firm==null){
|
if (firm.getDatabaseName()==null){
|
||||||
return Result.error(null,"公司不存在");
|
return Result.error(null,"公司不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 用户登录
|
// 用户登录
|
||||||
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
|
LoginUser userInfo = sysLoginService.login(firm.getDatabaseName(),form.getUsername(), form.getPassword());
|
||||||
// 获取登录token
|
// 获取登录token
|
||||||
return Result.success(tokenService.createToken(userInfo));
|
return Result.success(tokenService.createToken(userInfo));
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import com.muyu.common.core.utils.StringUtils;
|
||||||
import com.muyu.common.core.utils.ip.IpUtils;
|
import com.muyu.common.core.utils.ip.IpUtils;
|
||||||
import com.muyu.common.redis.service.RedisService;
|
import com.muyu.common.redis.service.RedisService;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
|
import com.muyu.common.system.domain.Firm;
|
||||||
import com.muyu.common.system.remote.RemoteUserService;
|
import com.muyu.common.system.remote.RemoteUserService;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
import com.muyu.common.system.domain.LoginUser;
|
import com.muyu.common.system.domain.LoginUser;
|
||||||
|
@ -40,7 +41,7 @@ public class SysLoginService {
|
||||||
/**
|
/**
|
||||||
* 登录
|
* 登录
|
||||||
*/
|
*/
|
||||||
public LoginUser login (String username, String password) {
|
public LoginUser login (String databaseName,String username, String password) {
|
||||||
// 用户名或密码为空 错误
|
// 用户名或密码为空 错误
|
||||||
if (StringUtils.isAnyBlank(username, password)) {
|
if (StringUtils.isAnyBlank(username, password)) {
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
|
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/密码必须填写");
|
||||||
|
@ -64,8 +65,14 @@ public class SysLoginService {
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
|
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
|
||||||
throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
|
throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Firm firm = new Firm();
|
||||||
|
firm.setDatabaseName(databaseName);
|
||||||
|
firm.setUserName(username);
|
||||||
|
|
||||||
|
|
||||||
// 查询用户信息
|
// 查询用户信息
|
||||||
Result<LoginUser> userResult = remoteUserService.getUserInfo(username, SecurityConstants.INNER);
|
Result<LoginUser> userResult = remoteUserService.getUserInfo(firm, SecurityConstants.INNER);
|
||||||
|
|
||||||
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
|
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData())) {
|
||||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
|
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.muyu.common.system.domain;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class Firm {
|
||||||
|
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private String firmName;
|
||||||
|
|
||||||
|
private String databaseName;
|
||||||
|
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -4,6 +4,7 @@ import com.muyu.common.core.constant.SecurityConstants;
|
||||||
import com.muyu.common.core.constant.ServiceNameConstants;
|
import com.muyu.common.core.constant.ServiceNameConstants;
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.core.web.page.TableDataInfo;
|
import com.muyu.common.core.web.page.TableDataInfo;
|
||||||
|
import com.muyu.common.system.domain.Firm;
|
||||||
import com.muyu.common.system.domain.SysFirmUser;
|
import com.muyu.common.system.domain.SysFirmUser;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
|
import com.muyu.common.system.remote.factory.RemoteUserFallbackFactory;
|
||||||
|
@ -23,13 +24,13 @@ public interface RemoteUserService {
|
||||||
/**
|
/**
|
||||||
* 通过用户名查询用户信息
|
* 通过用户名查询用户信息
|
||||||
*
|
*
|
||||||
* @param username 用户名
|
* @param
|
||||||
* @param source 请求来源
|
* @param source 请求来源
|
||||||
*
|
*
|
||||||
* @return 结果
|
* @return 结果
|
||||||
*/
|
*/
|
||||||
@GetMapping("/user/info/{username}")
|
@PostMapping("/user/info")
|
||||||
public Result<LoginUser> getUserInfo (@PathVariable("username") String username, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
public Result<LoginUser> getUserInfo (@RequestBody Firm firm, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册用户信息
|
* 注册用户信息
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.muyu.common.system.remote.factory;
|
||||||
|
|
||||||
import com.muyu.common.core.domain.Result;
|
import com.muyu.common.core.domain.Result;
|
||||||
import com.muyu.common.core.web.page.TableDataInfo;
|
import com.muyu.common.core.web.page.TableDataInfo;
|
||||||
|
import com.muyu.common.system.domain.Firm;
|
||||||
import com.muyu.common.system.domain.SysFirmUser;
|
import com.muyu.common.system.domain.SysFirmUser;
|
||||||
import com.muyu.common.system.remote.RemoteUserService;
|
import com.muyu.common.system.remote.RemoteUserService;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
@ -26,8 +27,10 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
|
||||||
public RemoteUserService create (Throwable throwable) {
|
public RemoteUserService create (Throwable throwable) {
|
||||||
log.error("用户服务调用失败:{}", throwable.getMessage());
|
log.error("用户服务调用失败:{}", throwable.getMessage());
|
||||||
return new RemoteUserService() {
|
return new RemoteUserService() {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result<LoginUser> getUserInfo (String username, String source) {
|
public Result<LoginUser> getUserInfo(Firm firm, String source) {
|
||||||
return Result.error("获取用户失败:" + throwable.getMessage());
|
return Result.error("获取用户失败:" + throwable.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,11 @@
|
||||||
<artifactId>cloud-common-api-doc</artifactId>
|
<artifactId>cloud-common-api-doc</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.muyu</groupId>
|
||||||
|
<artifactId>cloud-common-saas</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ nacos:
|
||||||
addr: 47.101.53.251:8848
|
addr: 47.101.53.251:8848
|
||||||
user-name: nacos
|
user-name: nacos
|
||||||
password: nacos
|
password: nacos
|
||||||
namespace: lgy
|
namespace: four
|
||||||
|
|
||||||
# Spring
|
# Spring
|
||||||
spring:
|
spring:
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.muyu.common.log.annotation.Log;
|
||||||
import com.muyu.common.log.enums.BusinessType;
|
import com.muyu.common.log.enums.BusinessType;
|
||||||
import com.muyu.common.security.service.TokenService;
|
import com.muyu.common.security.service.TokenService;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
|
import com.muyu.common.system.domain.Firm;
|
||||||
import com.muyu.common.system.remote.RemoteFileService;
|
import com.muyu.common.system.remote.RemoteFileService;
|
||||||
import com.muyu.common.system.domain.SysFile;
|
import com.muyu.common.system.domain.SysFile;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
@ -43,8 +44,12 @@ public class SysProfileController extends BaseController {
|
||||||
*/
|
*/
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public Result profile () {
|
public Result profile () {
|
||||||
String username = SecurityUtils.getUsername();
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
SysUser user = userService.selectUserByUserName(username);
|
String username = loginUser.getUsername();
|
||||||
|
Firm firm = new Firm();
|
||||||
|
|
||||||
|
firm.setUserName(username);
|
||||||
|
SysUser user = userService.selectUserByUserName(firm);
|
||||||
return Result.success(
|
return Result.success(
|
||||||
ProfileResp.builder()
|
ProfileResp.builder()
|
||||||
.roleGroup( userService.selectUserRoleGroup(username) )
|
.roleGroup( userService.selectUserRoleGroup(username) )
|
||||||
|
@ -87,7 +92,9 @@ public class SysProfileController extends BaseController {
|
||||||
@PutMapping("/updatePwd")
|
@PutMapping("/updatePwd")
|
||||||
public Result updatePwd (String oldPassword, String newPassword) {
|
public Result updatePwd (String oldPassword, String newPassword) {
|
||||||
String username = SecurityUtils.getUsername();
|
String username = SecurityUtils.getUsername();
|
||||||
SysUser user = userService.selectUserByUserName(username);
|
Firm firm = new Firm();
|
||||||
|
firm.setUserName(username);
|
||||||
|
SysUser user = userService.selectUserByUserName(firm);
|
||||||
String password = user.getPassword();
|
String password = user.getPassword();
|
||||||
if (!SecurityUtils.matchesPassword(oldPassword, password)) {
|
if (!SecurityUtils.matchesPassword(oldPassword, password)) {
|
||||||
return error("修改密码失败,旧密码错误");
|
return error("修改密码失败,旧密码错误");
|
||||||
|
|
|
@ -10,10 +10,7 @@ import com.muyu.common.log.enums.BusinessType;
|
||||||
import com.muyu.common.security.annotation.InnerAuth;
|
import com.muyu.common.security.annotation.InnerAuth;
|
||||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
import com.muyu.common.system.domain.SysDept;
|
import com.muyu.common.system.domain.*;
|
||||||
import com.muyu.common.system.domain.SysRole;
|
|
||||||
import com.muyu.common.system.domain.SysUser;
|
|
||||||
import com.muyu.common.system.domain.LoginUser;
|
|
||||||
import com.muyu.system.domain.resp.AuthRoleResp;
|
import com.muyu.system.domain.resp.AuthRoleResp;
|
||||||
import com.muyu.system.domain.resp.UserDetailInfoResp;
|
import com.muyu.system.domain.resp.UserDetailInfoResp;
|
||||||
import com.muyu.system.domain.resp.UserInfoResp;
|
import com.muyu.system.domain.resp.UserInfoResp;
|
||||||
|
@ -103,9 +100,9 @@ public class SysUserController extends BaseController {
|
||||||
* 获取当前用户信息
|
* 获取当前用户信息
|
||||||
*/
|
*/
|
||||||
@InnerAuth
|
@InnerAuth
|
||||||
@GetMapping("/info/{username}")
|
@PostMapping("/info")
|
||||||
public Result<LoginUser> info (@PathVariable("username") String username) {
|
public Result<LoginUser> info (@RequestBody Firm firm) {
|
||||||
SysUser sysUser = userService.selectUserByUserName(username);
|
SysUser sysUser = userService.selectUserByUserName(firm);
|
||||||
if (StringUtils.isNull(sysUser)) {
|
if (StringUtils.isNull(sysUser)) {
|
||||||
return Result.error("用户名或密码错误");
|
return Result.error("用户名或密码错误");
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,7 @@ public interface SysDictTypeMapper extends BaseMapper<SysDictType> {
|
||||||
*
|
*
|
||||||
* @return 字典类型集合信息
|
* @return 字典类型集合信息
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public List<SysDictType> selectDictTypeList (SysDictType dictType);
|
public List<SysDictType> selectDictTypeList (SysDictType dictType);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.muyu.system.service;
|
package com.muyu.system.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.muyu.common.system.domain.Firm;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -45,7 +46,7 @@ public interface SysUserService extends IService<SysUser> {
|
||||||
*
|
*
|
||||||
* @return 用户对象信息
|
* @return 用户对象信息
|
||||||
*/
|
*/
|
||||||
public SysUser selectUserByUserName (String userName);
|
public SysUser selectUserByUserName (Firm firm);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过用户ID查询用户
|
* 通过用户ID查询用户
|
||||||
|
|
|
@ -8,6 +8,8 @@ import com.muyu.common.core.utils.StringUtils;
|
||||||
import com.muyu.common.core.utils.bean.BeanValidators;
|
import com.muyu.common.core.utils.bean.BeanValidators;
|
||||||
import com.muyu.common.datascope.annotation.DataScope;
|
import com.muyu.common.datascope.annotation.DataScope;
|
||||||
import com.muyu.common.security.utils.SecurityUtils;
|
import com.muyu.common.security.utils.SecurityUtils;
|
||||||
|
import com.muyu.common.system.domain.Firm;
|
||||||
|
import com.muyu.common.system.domain.SysDept;
|
||||||
import com.muyu.common.system.domain.SysRole;
|
import com.muyu.common.system.domain.SysRole;
|
||||||
import com.muyu.common.system.domain.SysUser;
|
import com.muyu.common.system.domain.SysUser;
|
||||||
import com.muyu.system.domain.SysPost;
|
import com.muyu.system.domain.SysPost;
|
||||||
|
@ -99,14 +101,18 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
* @return 用户对象信息
|
* @return 用户对象信息
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SysUser selectUserByUserName (String userName) {
|
public SysUser selectUserByUserName (Firm firm) {
|
||||||
|
String databaseName = firm.getDatabaseName();
|
||||||
|
String userName = firm.getUserName();
|
||||||
|
|
||||||
|
|
||||||
String user="root";
|
String user="root";
|
||||||
String password="Lw030106";
|
String password="Lw030106";
|
||||||
SysUser sysUser=new SysUser();
|
SysUser sysUser=new SysUser();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
|
DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
|
||||||
Connection connection = DriverManager.getConnection("jdbc:mysql://47.101.53.251:3306/datasource?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=false", user, password);
|
Connection connection = DriverManager.getConnection("jdbc:mysql://47.101.53.251:3306/"+databaseName+"?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&useSSL=false", user, password);
|
||||||
String sql="select u.user_id,\n" +
|
String sql="select u.user_id,\n" +
|
||||||
" u.dept_id,\n" +
|
" u.dept_id,\n" +
|
||||||
" u.user_name,\n" +
|
" u.user_name,\n" +
|
||||||
|
@ -136,12 +142,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
" r.role_key,\n" +
|
" r.role_key,\n" +
|
||||||
" r.role_sort,\n" +
|
" r.role_sort,\n" +
|
||||||
" r.data_scope,\n" +
|
" r.data_scope,\n" +
|
||||||
" r.status as role_status\n" +
|
" r.status as role_status " +
|
||||||
" from sys_user u\n" +
|
" from sys_user u\n" +
|
||||||
" left join sys_dept d on u.dept_id = d.dept_id\n" +
|
" left join sys_dept d on u.dept_id = d.dept_id\n" +
|
||||||
" left join sys_user_role ur on u.user_id = ur.user_id\n" +
|
" left join sys_user_role ur on u.user_id = ur.user_id\n" +
|
||||||
" left join sys_role r on r.role_id = ur.role_id" +
|
" left join sys_role r on r.role_id = ur.role_id" +
|
||||||
"where u.del_flag = '0' and u.user_name = '"+userName+"'";
|
" where u.del_flag = '0' and u.user_name = '"+userName+"'";
|
||||||
|
|
||||||
Statement stmt = connection.createStatement();
|
Statement stmt = connection.createStatement();
|
||||||
ResultSet rs = stmt.executeQuery(sql);
|
ResultSet rs = stmt.executeQuery(sql);
|
||||||
|
@ -151,7 +157,43 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||||
sysUser.setDeptId(rs.getLong("dept_id"));
|
sysUser.setDeptId(rs.getLong("dept_id"));
|
||||||
sysUser.setUserName(rs.getString("user_name"));
|
sysUser.setUserName(rs.getString("user_name"));
|
||||||
sysUser.setNickName(rs.getString("nick_name"));
|
sysUser.setNickName(rs.getString("nick_name"));
|
||||||
|
sysUser.setEmail(rs.getString("email"));
|
||||||
|
sysUser.setAvatar(rs.getString("avatar"));
|
||||||
|
sysUser.setPhonenumber(rs.getString("phonenumber"));
|
||||||
|
sysUser.setPassword(rs.getString("password"));
|
||||||
|
sysUser.setSex(rs.getString("sex"));
|
||||||
|
sysUser.setStatus(rs.getString("status"));
|
||||||
|
sysUser.setDatabaseName(rs.getString("database_name"));
|
||||||
|
sysUser.setDelFlag(rs.getString("del_flag"));
|
||||||
|
sysUser.setLoginIp(rs.getString("login_ip"));
|
||||||
|
sysUser.setLoginDate(rs.getDate("login_date"));
|
||||||
|
sysUser.setCreateBy(rs.getString("create_by"));
|
||||||
|
sysUser.setCreateTime(rs.getDate("create_time"));
|
||||||
|
|
||||||
|
|
||||||
|
SysDept sysDept = new SysDept();
|
||||||
|
|
||||||
|
sysDept.setDeptId(rs.getLong("dept_id"));
|
||||||
|
sysDept.setParentId(rs.getLong("parent_id"));
|
||||||
|
sysDept.setAncestors(rs.getString("ancestors"));
|
||||||
|
sysDept.setDeptName(rs.getString("dept_name"));
|
||||||
|
sysDept.setOrderNum(rs.getInt("order_num"));
|
||||||
|
sysDept.setLeader(rs.getString("leader"));
|
||||||
|
sysDept.setStatus(rs.getString("dept_status"));
|
||||||
|
sysUser.setDept(sysDept);
|
||||||
|
|
||||||
|
SysRole sysRole = new SysRole();
|
||||||
|
|
||||||
|
sysRole.setRoleId(rs.getLong("role_id"));
|
||||||
|
sysRole.setRoleName(rs.getString("role_name"));
|
||||||
|
sysRole.setRoleKey(rs.getString("role_key"));
|
||||||
|
sysRole.setRoleSort(rs.getInt("role_sort"));
|
||||||
|
sysRole.setDataScope(rs.getString("data_scope"));
|
||||||
|
sysRole.setStatus(rs.getString("role_status"));
|
||||||
|
|
||||||
|
ArrayList<SysRole> sysRoles = new ArrayList<>();
|
||||||
|
sysRoles.add(sysRole);
|
||||||
|
sysUser.setRoles(sysRoles);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue