|
|
|
@ -17,8 +17,10 @@ import com.ruoyi.system.api.domain.SysDept;
|
|
|
|
|
import com.ruoyi.system.api.domain.SysRole;
|
|
|
|
|
import com.ruoyi.system.api.domain.SysUser;
|
|
|
|
|
import com.ruoyi.system.api.model.LoginUser;
|
|
|
|
|
import com.ruoyi.system.domain.SysUserDatasource;
|
|
|
|
|
import com.ruoyi.system.service.*;
|
|
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
|
import org.apache.commons.math3.analysis.function.Add;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
@ -62,6 +64,9 @@ public class SysUserController extends BaseController {
|
|
|
|
|
@Autowired
|
|
|
|
|
private RedisService redisService;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private ISysUserDatasourceService sysUserDatasourceService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取用户列表
|
|
|
|
|
*/
|
|
|
|
@ -180,6 +185,9 @@ public class SysUserController extends BaseController {
|
|
|
|
|
ajax.put("posts", postService.selectPostAll());
|
|
|
|
|
if (StringUtils.isNotNull(userId)) {
|
|
|
|
|
SysUser sysUser = userService.selectUserById(userId);
|
|
|
|
|
//获取用户匹配的数据源ID
|
|
|
|
|
String s = GetDataSourceIdByUserId(sysUser);
|
|
|
|
|
sysUser.setDatasourceId(s);
|
|
|
|
|
ajax.put(AjaxResult.DATA_TAG, sysUser);
|
|
|
|
|
ajax.put("postIds", postService.selectPostListByUserId(userId));
|
|
|
|
|
ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
|
|
|
|
@ -204,9 +212,19 @@ public class SysUserController extends BaseController {
|
|
|
|
|
return error("新增用户'" + user.getUserName() + "'失败,用户数据源不可为空");
|
|
|
|
|
}
|
|
|
|
|
System.out.println("用户:"+user.getUserName()+"数据源ID:"+user.getDatasourceId());
|
|
|
|
|
user.setCreateBy(SecurityUtils.getUsername());
|
|
|
|
|
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
|
|
|
|
|
return toAjax(userService.insertUser(user));
|
|
|
|
|
try {
|
|
|
|
|
user.setCreateBy(SecurityUtils.getUsername());
|
|
|
|
|
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
|
|
|
|
|
int i = userService.insertUser(user);
|
|
|
|
|
if(i>0){
|
|
|
|
|
//获取用户ID
|
|
|
|
|
SysUser sysUser = userService.selectUserByUserName(user.getUserName());
|
|
|
|
|
AddDataSourceByUserId(sysUser.getUserId(), user.getDatasourceId());
|
|
|
|
|
}
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
return AjaxResult.error(ex.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -228,6 +246,9 @@ public class SysUserController extends BaseController {
|
|
|
|
|
return error("修改用户'" + user.getUserName() + "'失败,用户数据源不可为空");
|
|
|
|
|
}
|
|
|
|
|
System.out.println("用户:"+user.getUserName()+"数据源ID:"+user.getDatasourceId());
|
|
|
|
|
if(DeleteDataSourceByUserId(user.getUserId())){
|
|
|
|
|
AddDataSourceByUserId(user.getUserId(),user.getDatasourceId());
|
|
|
|
|
}
|
|
|
|
|
user.setUpdateBy(SecurityUtils.getUsername());
|
|
|
|
|
return toAjax(userService.updateUser(user));
|
|
|
|
|
}
|
|
|
|
@ -321,4 +342,75 @@ public class SysUserController extends BaseController {
|
|
|
|
|
CacheConstants.REFRESH_TIME, TimeUnit.MINUTES);
|
|
|
|
|
return success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据用户ID获取数据源ID
|
|
|
|
|
* @param sysUser
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public String GetDataSourceIdByUserId(SysUser sysUser){
|
|
|
|
|
try {
|
|
|
|
|
//获取用户数据源
|
|
|
|
|
SysUserDatasource sysUserDatasource = new SysUserDatasource();
|
|
|
|
|
sysUserDatasource.setUserId(sysUser.getUserId().toString());
|
|
|
|
|
List<SysUserDatasource> sysUserDatasources = sysUserDatasourceService.selectSysUserDatasourceList(sysUserDatasource);
|
|
|
|
|
|
|
|
|
|
Set<String> dataSourceSet = sysUserDatasources.stream()
|
|
|
|
|
.map(SysUserDatasource::getDatasourceId)
|
|
|
|
|
.collect(Collectors.toSet());
|
|
|
|
|
|
|
|
|
|
String dataSourceStr = dataSourceSet.stream()
|
|
|
|
|
.map(String::valueOf)
|
|
|
|
|
.collect(Collectors.joining(","));
|
|
|
|
|
return dataSourceStr;
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
logger.error("根据用户ID获取数据源ID异常:"+ex.getMessage());
|
|
|
|
|
return "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据用户ID删除数据源ID
|
|
|
|
|
* @param userId
|
|
|
|
|
*/
|
|
|
|
|
public boolean DeleteDataSourceByUserId(Long userId){
|
|
|
|
|
boolean result = false;
|
|
|
|
|
try{
|
|
|
|
|
SysUserDatasource sysUserDatasource = new SysUserDatasource();
|
|
|
|
|
sysUserDatasource.setUserId(userId.toString());
|
|
|
|
|
List<SysUserDatasource> sysUserDatasources = sysUserDatasourceService.selectSysUserDatasourceList(sysUserDatasource);
|
|
|
|
|
if(sysUserDatasources!=null){
|
|
|
|
|
Long[] ageArray = sysUserDatasources.stream()
|
|
|
|
|
.map(SysUserDatasource::getId)
|
|
|
|
|
.toArray(Long[]::new);
|
|
|
|
|
int i = sysUserDatasourceService.deleteSysUserDatasourceByIds(ageArray);
|
|
|
|
|
if (i>0){
|
|
|
|
|
result = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
logger.error("用户数据源清除异常:"+ex.getMessage());
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 保存用户数据源ID
|
|
|
|
|
* @param userId
|
|
|
|
|
* @param dataSourceIds
|
|
|
|
|
*/
|
|
|
|
|
public void AddDataSourceByUserId(Long userId,String dataSourceIds){
|
|
|
|
|
try{
|
|
|
|
|
|
|
|
|
|
String[] split = dataSourceIds.split(",");
|
|
|
|
|
for (String dataSourceId : split) {
|
|
|
|
|
SysUserDatasource sysUserDatasource = new SysUserDatasource();
|
|
|
|
|
sysUserDatasource.setDatasourceId(dataSourceId);
|
|
|
|
|
sysUserDatasource.setUserId(userId.toString());
|
|
|
|
|
int i = sysUserDatasourceService.insertSysUserDatasource(sysUserDatasource);
|
|
|
|
|
}
|
|
|
|
|
}catch (Exception ex){
|
|
|
|
|
logger.error("保存用户数据源异常:"+ex.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|