package com.ld.igds.sys;
|
|
import com.bstek.bdf2.core.model.DefaultDept;
|
import com.bstek.bdf2.core.model.DefaultUser;
|
import com.bstek.bdf2.core.model.Role;
|
import com.bstek.bdf2.core.security.SecurityUtils;
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.bstek.dorado.annotation.DataResolver;
|
import com.bstek.dorado.annotation.Expose;
|
import com.bstek.dorado.data.provider.Page;
|
import com.ld.igds.sys.service.SysDeptService;
|
import com.ld.igds.sys.service.SysRoleService;
|
import com.ld.igds.sys.service.SysUserService;
|
import com.ld.igds.util.ContextUtil;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Collection;
|
import java.util.Map;
|
|
/**
|
* 用户相关管理
|
*
|
* @author: andy.jia
|
* @description:
|
* @version:
|
* @data:2020年7月16日
|
*/
|
@Component("core.userPR")
|
public class UserPR {
|
|
@Autowired
|
private SysUserService sysUserService;
|
@Autowired
|
private SysDeptService deptService;
|
@Autowired
|
private SysRoleService roleService;
|
|
/**
|
* core.userPR#pageUser
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageUser(Page<DefaultUser> page, Map<String, Object> param)
|
throws Exception {
|
|
sysUserService.pageUser(page, param);
|
|
Collection<DefaultUser> users = page.getEntities();
|
if (null == users || users.isEmpty())
|
return;
|
|
DefaultDept defaultDept;
|
Role role;
|
for (DefaultUser user : users) {
|
defaultDept = deptService.loadUserDept(user.getUsername());
|
if (null != defaultDept) {
|
user.setDeptName(defaultDept.getName());
|
user.setDeptId(defaultDept.getId());
|
}
|
role = roleService.getRoleByUsername(user.getUsername());
|
if (null != role) {
|
user.setRoleName(role.getName());
|
user.setRoleId(role.getId());
|
}
|
}
|
page.setEntities(users);
|
}
|
|
/**
|
* userPR#curUser 个人中心获取当前登陆人信息
|
*
|
* @return
|
*/
|
@DataProvider
|
public DefaultUser curUser() {
|
String username = ContextUtil.getLoginUserName();
|
return sysUserService.loadUser(username);
|
}
|
|
/**
|
* core.userPR#updateUser
|
*
|
* @param user
|
* @return
|
*/
|
@DataResolver
|
public String updateUser(DefaultUser user) {
|
String msg;
|
//表示新增
|
if (null == user.getCompanyId()) {
|
// 新增用户
|
user.setCompanyId(ContextUtil.getCompanyId());
|
msg = sysUserService.addUser(user);
|
} else {
|
msg = sysUserService.updateUser(user);
|
}
|
|
if (null != msg) return msg;
|
|
// 更新用户的权限信息
|
if (null != user.getRoleId()) {
|
roleService.updateUserRole(user.getUsername(), user.getRoleId());
|
}
|
|
if (null != user.getDeptId()) {
|
deptService.updateUserDept(user.getUsername(), user.getDeptId());
|
}
|
|
return msg;
|
}
|
|
/**
|
* userPR#resetPwd
|
*
|
* @param user
|
* @return
|
*/
|
@Expose
|
public String resetPwd(DefaultUser user) {
|
return sysUserService.resetPwd(user.getCompanyId(), user.getUsername(),
|
null);
|
}
|
|
/**
|
* 修改用户密码,返回正常和异常的提示信息
|
*
|
* @param param
|
* @return
|
*/
|
@Expose
|
public String updatePwd(Map<String, Object> param) {
|
return sysUserService.updatePwd(param);
|
}
|
|
/**
|
* 获取用户基本信息
|
*
|
* @param username
|
* @return
|
*/
|
public DefaultUser loadUser(String username) {
|
DefaultUser user = sysUserService.loadUser(username);
|
if (null != user) {
|
DefaultDept defaultDept = deptService.loadUserDept(user
|
.getUsername());
|
if (null != defaultDept) {
|
user.setDeptName(defaultDept.getName());
|
user.setDeptId(defaultDept.getId());
|
}
|
Role role = roleService.getRoleByUsername(user.getUsername());
|
if (null != role) {
|
user.setRoleName(role.getName());
|
user.setRoleId(role.getId());
|
}
|
}
|
return user;
|
}
|
|
|
/**
|
* core.userPR#refreshAllSecurityMetadata
|
* 刷新用户权限分配
|
* 2022年8月18日 17:15:36 自定义调整,将用户权限放在缓存直接过滤,
|
*/
|
@Expose
|
public void refreshAllSecurityMetadata() {
|
SecurityUtils.refreshUrlSecurityMetadata();
|
SecurityUtils.refreshComponentSecurityMetadata();
|
|
roleService.updateCacheRoleUrl(ContextUtil.getCompanyId());
|
|
roleService.updateCacheRoleUser(ContextUtil.getCompanyId());
|
}
|
|
}
|