package com.tievd.jyz.controller;
|
|
import cn.hutool.json.JSONUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.fasterxml.jackson.databind.JsonNode;
|
import com.tievd.cube.commons.annotations.AutoLog;
|
import com.tievd.cube.commons.annotations.DictApi;
|
import com.tievd.cube.commons.annotations.DictMethod;
|
import com.tievd.cube.commons.base.CubeController;
|
import com.tievd.cube.commons.base.Result;
|
import com.tievd.cube.modules.system.entity.SysUser;
|
import com.tievd.cube.modules.system.service.ISysUserService;
|
import com.tievd.jyz.constants.SystemConstant;
|
import com.tievd.jyz.entity.vo.SysUserVO;
|
import com.tievd.jyz.service.ISysUserVOService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author yang'zhi'shui
|
*/
|
@Slf4j
|
@DictApi
|
@RestController
|
@RequestMapping("/jyz/custom/sys/user")
|
public class SysUserVOController extends CubeController<SysUserVO, ISysUserVOService> {
|
|
@Autowired
|
private ISysUserVOService sysUserVOService;
|
|
@Autowired
|
private ISysUserService sysUserService;
|
|
/**
|
* 新增用户
|
*
|
* @param params 新增参数
|
*/
|
@AutoLog("用户管理-新增用户")
|
@PostMapping("/add")
|
public Result<?> add(@RequestBody JsonNode params) {
|
JsonNode roles = params.get("selectedroles");
|
JsonNode departs = params.get("selecteddeparts");
|
String selectedRoles = roles != null ? roles.asText() : null;
|
String selectedDeparts = departs != null ? departs.asText() : null;
|
SysUser user = JSONUtil.toBean(params.toString(), SysUser.class);
|
user.setPassword(SystemConstant.DEFAULT_PASSWORD);
|
user.setDepartIds(selectedDeparts);
|
sysUserService.add(user, selectedRoles, selectedDeparts);
|
return Result.ok();
|
}
|
|
@DictMethod
|
@GetMapping("/tables")
|
public Result<IPage<SysUserVO>> queryPageList(SysUser user
|
, @RequestParam(defaultValue = "1") Integer pageNo
|
, @RequestParam(defaultValue = "10") Integer pageSize
|
, @RequestParam(required = false) String searchKey
|
, @RequestParam(required = false) String roleId
|
, @RequestParam(required = false) String orgCode) {
|
QueryWrapper<SysUserVO> queryWrapper = new QueryWrapper<>();
|
queryWrapper.ne("su.realname", "_reserve_user_external");
|
queryWrapper.eq("su.del_flag", 0);
|
if (StringUtils.isNotBlank(orgCode)){
|
queryWrapper.like("su.org_code",orgCode);
|
}
|
if (StringUtils.isNotBlank(searchKey)){
|
queryWrapper.like("su.username",searchKey);
|
}
|
if (StringUtils.isNotBlank(roleId)){
|
queryWrapper.eq("sur.role_id",roleId);
|
}
|
Page<SysUserVO> page = new Page<>(pageNo, pageSize);
|
IPage<SysUserVO> pageList = sysUserVOService.tables(page, queryWrapper);
|
// 批量查询用户的所属部门
|
List<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
|
if (userIds.size() > 0) {
|
Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
|
pageList.getRecords().forEach(item -> item.setOrgCodeTxt(useDepNames.get(item.getId())));
|
}
|
return Result.ok(pageList);
|
}
|
|
}
|