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 page, Map param) throws Exception { sysUserService.pageUser(page, param); Collection 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 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()); } }