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<SysUser> getSysUserByPhonenumber(@PathVariable("phonenumber") String phonenumber) {
|
SysUser one = userService.getOne(new QueryWrapper<SysUser>()
|
.eq("phonenumber", phonenumber).eq("del_flag", 0));
|
return R.ok(one);
|
}
|
@PostMapping("/updatePassword1")
|
@ApiOperation("账号管理--账号详情")
|
public R<SysUser> updatePassword1(@RequestBody SysUser sysUser) {
|
userService.updateUser(sysUser);
|
return R.ok(sysUser);
|
}
|
/**
|
* 获取当前用户信息
|
*/
|
@InnerAuth
|
@GetMapping("/info/{username}")
|
public R<LoginUser> info(@PathVariable("username") String username) {
|
SysUser sysUser = userService.selectUserByUserName(username);
|
if (StringUtils.isNull(sysUser)) {
|
return R.fail("用户名或密码错误");
|
}
|
// 角色集合
|
Set<String> roles = permissionService.getRolePermission(sysUser);
|
// 权限集合
|
Set<String> 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<PageInfo<SysUserVO>> list(String phonenumber, String userName, Long deptId, int pageNumber, int pageSize) {
|
PageInfo<SysUser> pageInfo = new PageInfo<>(pageNumber, pageSize);
|
PageInfo<SysUser> page = userService.getList(pageInfo, phonenumber,userName,deptId);
|
PageInfo<SysUserVO> res = new PageInfo<>(pageNumber, pageSize);
|
List<SysUserVO> 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<SysUser>()
|
.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<SysUser> list = userService.list(new QueryWrapper<SysUser>()
|
.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<SysUser> companyUserInfo(@RequestParam Long userId) {
|
SysUser sysUser = userService.selectUserById(userId);
|
SysUserRole one = userRoleService.getOne(new LambdaQueryWrapper<SysUserRole>().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<SysUser> list = userService.list(new QueryWrapper<SysUser>()
|
.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<SysUserRole>().eq(SysUserRole::getUserId,dto.getUserId() ));
|
one.setRoleId(dto.getRoleId());
|
//更新新的role
|
userRoleService.updateSysUserRole(one);
|
return AjaxResult.success();
|
}
|
}
|