package com.ydtech.modules.admin.controller; import com.ydtech.constants.SysConstants; import com.ydtech.core.page.BaseController; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageRequest; import com.ydtech.core.page.PageResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.admin.model.SysUser; import com.ydtech.modules.admin.model.SysUserRole; import com.ydtech.modules.admin.service.SysUserRoleService; import com.ydtech.modules.admin.service.SysUserService; import com.ydtech.modules.admin.vo.SysUserVO; import com.ydtech.security.utils.PasswordUtils; import org.apache.commons.codec.language.bm.Lang; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 用户控制器 * * @author Yasepix * @date Oct 29, 2018 */ @RestController @RequestMapping("user") public class SysUserController extends BaseController { @Autowired private SysUserService sysUserService; @Autowired private SysUserRoleService sysUserRoleService; // @PreAuthorize("hasAuthority('sys:user:add') AND hasAuthority('sys:user:edit')") // @PostMapping(value="/save") // public HttpResult save(@RequestBody Map models) { // SysUser user = null; // try { // user = JsonXMLUtils.map2obj(models,SysUser.class); // EsmUserInternal esmUserInternal = JsonXMLUtils.map2obj(models,EsmUserInternal.class); // if(esmUserInternal.getId() != null){ // esmUserInternalDaoxx.updateSelective(esmUserInternal); // }else { // esmUserInternalDaoxx.insertSelective(esmUserInternal); // } // } catch (Exception e) { // e.printStackTrace(); // } ////   Address address=JsonXMLUtils.map2obj((Map)models.get("address"),Address.class); // return HttpResult.ok(sysUserService.save(user)); //} // @PreAuthorize("hasAuthority('sys:user:add') AND hasAuthority('sys:user:edit')") // @PostMapping(value="/save") // public HttpResult save(@RequestBody SysUser record) { // SysUser user = sysUserService.findById(record.getId()); // if(user != null) { // if(SysConstants.ADMIN.equalsIgnoreCase(user.getName())) { // return HttpResult.error("超级管理员不允许修改!"); // } // } // if(record.getPassword() != null) { // String salt = PasswordUtils.getSalt(); // if(user == null) { // // 新增用户 // if(sysUserService.findByName(record.getName()) != null) { // return HttpResult.error("用户名已存在!"); // } // String password = PasswordUtils.encode(record.getPassword(), salt); // record.setSalt(salt); // record.setPassword(password); // } else { // // 修改用户, 且修改了密码 // if(!record.getPassword().equals(user.getPassword())) { // String password = PasswordUtils.encode(record.getPassword(), salt); // record.setSalt(salt); // record.setPassword(password); // } // } // } // return HttpResult.ok(sysUserService.save(record)); // } @PreAuthorize("hasAuthority('sys:user:delete')") @PostMapping(value = "/deleteFlag") public HttpResult deleteFlag(@RequestBody List records) { for (SysUser record : records) { SysUser sysUser = sysUserService.selectByPk(record.getId()); if (sysUser != null && SysConstants.ADMIN.equalsIgnoreCase(sysUser.getName())) { return HttpResult.error("超级管理员不允许删除!"); } } return HttpResult.ok(sysUserService.deleteFlag(records)); } // @PreAuthorize("hasAuthority('sys:user:view')") @GetMapping(value = "/findByName") public HttpResult findByUserName(@RequestParam String name) { return HttpResult.ok(sysUserService.selectById(name)); } // @PreAuthorize("hasAuthority('sys:user:view')") @GetMapping(value = "/findPermissions") public HttpResult findPermissions(@RequestParam String name) { SysUser sysUser = new SysUser(); sysUser.setId(name); return HttpResult.ok(sysUserService.findPermissions(sysUser)); } @PreAuthorize("hasAuthority('sys:user:view')") @GetMapping(value = "/findUserRoles") public HttpResult findUserRoles(@RequestParam Long userId) { return HttpResult.ok(sysUserService.findUserRoles(userId)); } /** * 用户角色分页查询 * * @param pageRequest * @return */ @PostMapping(value = "/queryPage") public HttpResult queryPage(@RequestBody PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); String deptid = pageRequest.getColumnFilterValue(pageRequest, "deptid"); String name = pageRequest.getColumnFilterValue(pageRequest, "name"); String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept"); String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile"); StringBuffer whereStr = new StringBuffer(" where 1=1"); ArrayList array = new ArrayList(); if (!StringUtils.isEmpty(deptid) && !StringUtils.isEmpty(containsSubDept) && "1".equals(containsSubDept)) { whereStr.append(" and dept_id like ?"); array.add(deptid + "%"); } else if (!StringUtils.isEmpty(deptid)) { whereStr.append(" and dept_id = ?"); array.add(deptid); } if (!StringUtils.isEmpty(name)) { whereStr.append(" and name = ?"); array.add(name); } if (!StringUtils.isEmpty(mobile)) { whereStr.append(" and mobile = ?"); array.add(mobile); } PageResult pageResult = sysUserRoleService.queryPaging(pageNum, pageSize, whereStr.toString(), array.toArray()); return HttpResult.ok(pageResult); } /** * 配置用户角色 * * @param userId * @param roleId * @return */ @PostMapping(value = "/saveUserRole") public HttpResult saveUserRole(@RequestParam String userId, @RequestParam String roleId) { SysUserRole userRole = new SysUserRole(); List list = sysUserRoleService.selectList(" where user_id=?", new Object[]{userId}); if (list.size() > 0) { userRole = list.get(0); userRole.setRoleId(Long.parseLong(roleId)); userRole.setLastUpdateBy(getUserName()); userRole.setLastUpdateTime(new Date()); sysUserRoleService.updateSelective(userRole); } else { userRole.setUserId(userId); userRole.setRoleId(Long.parseLong(roleId)); userRole.setCreateBy(getUserName()); userRole.setCreateTime(new Date()); sysUserRoleService.insertSelective(userRole); } return HttpResult.ok(); } @PreAuthorize("hasAuthority('sys:user:view')") @PostMapping(value = "/findPage") public HttpResult findPage(@RequestBody PageRequest pageRequest) { //return HttpResult.ok(sysUserService.findPage(pageRequest)); int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); String name = pageRequest.getColumnFilterValue(pageRequest, "name"); // String email = pageRequest.getColumnFilterValue(pageRequest, "email"); //需要处理传入的部门 PageResult pageResult = sysUserService.selectPagingCustom(pageNum, pageSize, name, ""); sysUserService.findSysUseresmUserInternalVORoles(pageResult); return HttpResult.ok(pageResult); } /** * 密码修改 * * @param id * @param password * @return */ @PostMapping(value = "/updatePwd") public HttpResult updatePwd(@RequestParam String id, @RequestParam String password) { if (StringUtils.isEmpty(id) || StringUtils.isEmpty(password)) { return HttpResult.error("ID和密码不能为空"); } SysUser sysUser = sysUserService.selectByPk(id); if (sysUser == null) { return HttpResult.error("ID不存在"); } //密码加密 String salt = PasswordUtils.getSalt(); String pwd = PasswordUtils.encode(password, sysUser.getSalt()); sysUser.setPassword(pwd); sysUserService.updateSelective(sysUser); return HttpResult.ok("修改成功"); } /** * 手机号更新 * * @param id * @param mobile * @return */ @PostMapping(value = "/updateMobile") public HttpResult updateMobile(@RequestParam String id, @RequestParam String mobile) { if (StringUtils.isEmpty(id) || StringUtils.isEmpty(mobile)) { return HttpResult.error("ID和手机号不能为空"); } SysUser sysUser = sysUserService.selectByPk(id); if (sysUser == null) { return HttpResult.error("ID不存在"); } List users = sysUserService.selectList(" where id != ? and mobile=?", new Object[]{id, mobile}); if (users != null && users.size() > 0) { return HttpResult.error("手机号已存在"); } sysUser.setMobile(mobile); sysUserService.updateSelective(sysUser); return HttpResult.ok("修改成功"); } /** * 根据工号查询推荐人信息 * * @param id * @return */ @GetMapping(value = "/findById") public HttpResult findByUserId(@RequestParam String id) { SysUserVO sysUserVO = sysUserService.selectById(id); if (sysUserVO != null) { return HttpResult.ok(sysUserVO); } throw new SystemException("没有推荐人"); } /** * 根据部门ID查询该部门的团队长信息 * * @param deptId * @return */ @GetMapping(value = "/selectByDeptId") public HttpResult selectByDeptId(String deptId) { return HttpResult.ok(sysUserService.selectByDeptId(deptId)); } }