package com.ld.igds.basic.controller; import com.bstek.bdf2.core.business.IUser; 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.ld.igds.constant.Constant; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.data.BaseParam; import com.ld.igds.data.PageResponse; import com.ld.igds.sys.data.SysUserData; 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 lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @Desc: 系统管理,用户、权限、角色等 * @author: Andy * @update-time: 2023/3/31 */ @Slf4j @RestController @RequestMapping("basic/sys") public class SysController { @Resource private SysDeptService deptService; @Resource private SysRoleService roleService; @Resource private SysUserService sysUserService; /** * 用户列表 * * @param deptId * @return */ @RequestMapping("/user-list") public ModelAndView userList( @RequestParam(value = "deptId", required = false) String deptId) { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); if (StringUtils.isEmpty(deptId)) { deptId = ContextUtil.subDeptId(user); } //获取所有角色 List roles = roleService.loadRoles(user.getCompanyId()); if (null == roles) roles = new ArrayList<>(); view.addObject("roles", roles); //获取所有的部门 List depts = deptService.getCacheDept(user.getCompanyId()); if (null == depts) depts = new ArrayList<>(); view.addObject("depts", depts); view.setViewName("admin/system/user-list"); return view; } /** * 用户中心 * * @return */ @RequestMapping("/user-center") public ModelAndView userCenter() { ModelAndView view = new ModelAndView(); IUser user = ContextUtil.getLoginUser(); DefaultUser loginUser = sysUserService.loadUser(user.getUsername()); if (null == loginUser) { loginUser = new DefaultUser(); loginUser.setUsername("未登陆"); loginUser.setCname("未登陆"); } else { DefaultDept defaultDept = deptService.loadUserDept(loginUser.getUsername()); if (null != defaultDept) { loginUser.setDeptName(defaultDept.getName()); loginUser.setDeptId(defaultDept.getId()); } Role role = roleService.getRoleByUsername(loginUser.getUsername()); if (null != role) { loginUser.setRoleName(role.getName()); loginUser.setRoleId(role.getId()); } } view.addObject(Constant.MODEL_KEY_LOGIN_USER, loginUser); view.setViewName("admin/system/user-setting"); return view; } /** * 默认获取用户列表 * * @return */ @RequestMapping("/query-user-list") public PageResponse> queryUserList() { BaseParam param = new BaseParam(); param.setCompanyId(ContextUtil.getCompanyId()); List listAll = sysUserService.queryUserList(param); if (null == listAll || listAll.isEmpty()) { return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(), "根据条件获取数据为空"); } DefaultDept defaultDept; Role role; for (SysUserData userData : listAll) { defaultDept = deptService.loadUserDept(userData.getUsername()); if (null != defaultDept) { userData.setDeptName(defaultDept.getName()); userData.setDeptId(defaultDept.getId()); } role = roleService.getRoleByUsername(userData.getUsername()); if (null != role) { userData.setRoleName(role.getName()); userData.setRoleId(role.getId()); } } return new PageResponse<>(RespCodeEnum.CODE_0000, listAll); } /** * 默认获取用户列表 * * @return */ @RequestMapping("/add-user") public PageResponse addUser(@RequestBody SysUserData userData) { log.info("-----------addUser----------------------{}", userData); DefaultUser user = new DefaultUser(); BeanUtils.copyProperties(userData, user); user.setCompanyId(ContextUtil.getCompanyId()); String msg = sysUserService.addUser(user); if (null != msg) { new PageResponse<>(RespCodeEnum.CODE_1111, msg); } // 更新用户的权限信息 if (null != user.getRoleId()) { roleService.updateUserRole(user.getUsername(), user.getRoleId()); } if (null != user.getDeptId()) { deptService.updateUserDept(user.getUsername(), user.getDeptId()); } return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "SUCCESS"); } /** * 调整用户信息 * * @return */ @RequestMapping("/update-user") public PageResponse updateUser(@RequestBody SysUserData userData) { log.info("-----------updateUser----------------------{}", userData); DefaultUser user = sysUserService.loadUser(userData.getUsername()); String msg = null; if (null == user) { msg = "系统不存在当前用户"; new PageResponse<>(RespCodeEnum.CODE_1111, msg); } user.setCname(userData.getCname()); user.setEnabled(userData.isEnabled()); user.setMale(userData.isMale()); user.setMobile(userData.getMobile()); if(null != userData.getDeptId()){ user.setDeptId(userData.getDeptId()); } if(null != userData.getRoleId()){ user.setRoleId(userData.getRoleId()); } msg = sysUserService.updateUser(user); if (null != msg) { new PageResponse<>(RespCodeEnum.CODE_1111, msg); } // 更新用户的权限信息 if (null != user.getRoleId()) { roleService.updateUserRole(user.getUsername(), user.getRoleId()); } if (null != user.getDeptId()) { deptService.updateUserDept(user.getUsername(), user.getDeptId()); } return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "SUCCESS"); } /** * 重置用户密码 * * @return */ @RequestMapping("reset-pwd") public PageResponse resetPwd(@RequestBody SysUserData userData) { log.info("-----------resetPwd----------------------{}", userData); if (null == userData.getCompanyId()) { userData.setCompanyId(ContextUtil.getCompanyId()); } String msg = sysUserService.resetPwd(userData.getCompanyId(), userData.getUsername(), null); return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), msg); } /** * 刷新用户角色配置 * * @return */ @RequestMapping("/flush-role") public PageResponse flushRole() { SecurityUtils.refreshUrlSecurityMetadata(); SecurityUtils.refreshComponentSecurityMetadata(); roleService.updateCacheRoleUrl(ContextUtil.getCompanyId()); roleService.updateCacheRoleUser(ContextUtil.getCompanyId()); return new PageResponse<>(RespCodeEnum.CODE_0000, "SUCCESS"); } /** * 用户更改个人密码 * * @return */ @RequestMapping("/update-pwd") public PageResponse updatePwd(@RequestBody SysUserData userData) { log.info("-----------updatePwd----------------------{}", userData); Map params = new HashMap<>(); params.put("username", userData.getUsername()); params.put("password", userData.getPassword()); params.put("newPassword", userData.getNewPassword()); params.put("confirmPassword", userData.getConfirmPassword()); String msg = sysUserService.updatePwd(params); if (null != msg) { new PageResponse<>(RespCodeEnum.CODE_1111, msg); } return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "SUCCESS"); } }