package com.ruoyi.system.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.vo.SysUserVO; import com.ruoyi.system.domain.SysUserRole; import com.ruoyi.system.domain.dto.AddCompanyUserDto; import com.ruoyi.system.service.ISysPermissionService; import com.ruoyi.system.service.ISysUserRoleService; import com.ruoyi.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Set; /** * 用户信息 * * @author ruoyi */ @RestController @RequestMapping("/user") @Api(tags = "账号管理") public class SysUserController extends BaseController { @Autowired private ISysUserService userService; @Autowired private ISysUserRoleService userRoleService; @Autowired private ISysPermissionService permissionService; /** * 删除用户 */ @PostMapping("/getSysUserByPhonenumber/{phonenumber}") @ApiOperation("根据手机号获取账号") public R getSysUserByPhonenumber(@PathVariable("phonenumber") String phonenumber) { SysUser one = userService.getOne(new QueryWrapper() .eq("phonenumber", phonenumber).eq("del_flag", 0)); return R.ok(one); } @PostMapping("/updatePassword1") @ApiOperation("账号管理--账号详情") public R updatePassword1(@RequestBody SysUser sysUser) { userService.updateUser(sysUser); return R.ok(sysUser); } /** * 获取当前用户信息 */ @InnerAuth @GetMapping("/info/{username}") public R info(@PathVariable("username") String username) { SysUser sysUser = userService.selectUserByUserName(username); if (StringUtils.isNull(sysUser)) { return R.fail("用户名或密码错误"); } // 角色集合 Set roles = permissionService.getRolePermission(sysUser); // 权限集合 Set permissions = permissionService.getMenuPermission(sysUser); LoginUser sysUserVo = new LoginUser(); sysUserVo.setSysUser(sysUser); sysUserVo.setRoles(roles); sysUserVo.setPermissions(permissions); return R.ok(sysUserVo); } /** * 获取用户列表 */ @GetMapping("/list") @ApiOperation("管理员列表") public AjaxResult> list(String phonenumber, String userName, Long deptId, int pageNumber, int pageSize) { PageInfo pageInfo = new PageInfo<>(pageNumber, pageSize); PageInfo page = userService.getList(pageInfo, phonenumber,userName,deptId); PageInfo res = new PageInfo<>(pageNumber, pageSize); List sysUserVOS = new ArrayList<>(); for (SysUser record : page.getRecords()) { SysUserVO sysUserVO = new SysUserVO(); sysUserVO.setUserId(record.getUserId()); sysUserVO.setNickName(record.getNickName()); sysUserVO.setPhonenumber(record.getPhonenumber()); sysUserVO.setDeptName(record.getDeptName()); sysUserVO.setRoleId(record.getRoleId()); sysUserVO.setDeptId(record.getDeptId()); sysUserVO.setRoleName(record.getRoleName()); sysUserVOS.add(sysUserVO); } res.setRecords(sysUserVOS); res.setTotal(sysUserVOS.size()); return AjaxResult.success(res); } @PostMapping("/updatePassword") @ApiOperation("修改密码") public AjaxResult logout(String phonenumber,String code,String password) { SysUser one = userService.getOne(new LambdaQueryWrapper() .eq(SysUser::getPhonenumber, phonenumber) .ne(SysUser::getDelFlag,2)); if (one == null){ return AjaxResult.error("账号不存在"); }else{ one.setPassword(SecurityUtils.encryptPassword(password)); } one.setUpdateTime(new Date()); userService.updateUser(one); return AjaxResult.success(); } /** * 删除用户 */ @Log(title = "用户管理", businessType = BusinessType.DELETE) @DeleteMapping("/{userId}") @ApiOperation("账号管理--删除账号") public AjaxResult remove(@PathVariable("userId") Long userId) { userService.deleteUserById(userId); return AjaxResult.success("删除成功"); } @Log(title = "账号管理", businessType = BusinessType.INSERT) @PostMapping("/addUser") @ApiOperation("账号管理--添加账号") @Transactional(propagation = Propagation.REQUIRES_NEW) public AjaxResult addCompanyUser(@Validated @RequestBody AddCompanyUserDto dto) { SysUser user = new SysUser(); user.setDeptId(dto.getDeptId()); List list = userService.list(new QueryWrapper() .eq("del_flag", 0) .eq("phonenumber", dto.getPhonenumber())); if (!list.isEmpty()){ return error("手机号已存在,请重新输入"); } user.setPhonenumber(dto.getPhonenumber()); user.setNickName(dto.getNickName()); user.setCreateBy(SecurityUtils.getUsername()); user.setPassword(SecurityUtils.encryptPassword("a123456")); user.setRoleType(1); user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ user.setNickName(user.getPhonenumber()); } int i = userService.insertUser(user); if (i > 0) { // 添加role SysUserRole sysUserRole = new SysUserRole(); sysUserRole.setRoleId(dto.getRoleId()); sysUserRole.setUserId(user.getUserId()); userRoleService.insertSysUserRole(sysUserRole); } return AjaxResult.success(); } @Log(title = "账号管理", businessType = BusinessType.INSERT) @PostMapping("/userInfo") @ApiOperation("账号管理--账号详情") @Transactional(propagation = Propagation.REQUIRES_NEW) public AjaxResult companyUserInfo(@RequestParam Long userId) { SysUser sysUser = userService.selectUserById(userId); SysUserRole one = userRoleService.getOne(new LambdaQueryWrapper().eq(SysUserRole::getUserId,userId )); sysUser.setRoleId(one.getRoleId()); return AjaxResult.success(sysUser); } @Log(title = "账号管理", businessType = BusinessType.INSERT) @PostMapping("/updateUser") @ApiOperation("账号管理--修改账号") @Transactional(propagation = Propagation.REQUIRES_NEW) public AjaxResult updateCompanyUser(@Validated @RequestBody AddCompanyUserDto dto) { String nickName = dto.getNickName(); String phonenumber = dto.getPhonenumber(); Long deptId = dto.getDeptId(); SysUser user = new SysUser(); user.setNickName(nickName); user.setDeptId(deptId); user.setPhonenumber(phonenumber); user.setUserId(dto.getUserId()); List list = userService.list(new QueryWrapper() .eq("del_flag", 0) .ne("user_id",dto.getUserId()) .eq("phonenumber", dto.getPhonenumber())); if (!list.isEmpty()){ return error("手机号已存在,请重新输入"); } user.setUserName(user.getPhonenumber()); if(!org.springframework.util.StringUtils.hasLength(user.getNickName())){ user.setNickName(user.getPhonenumber()); } // user.setPassword(SecurityUtils.encryptPassword("a123456")); user.setRoleType(1); user.setUpdateBy(SecurityUtils.getUsername()); user.setUpdateTime(new Date()); int i = userService.updateUser(user); // 原来的role SysUserRole one = userRoleService.getOne(new LambdaQueryWrapper().eq(SysUserRole::getUserId,dto.getUserId() )); one.setRoleId(dto.getRoleId()); //更新新的role userRoleService.updateSysUserRole(one); return AjaxResult.success(); } }