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 { @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> 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 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 page = new Page<>(pageNo, pageSize); IPage pageList = sysUserVOService.tables(page, queryWrapper); // 批量查询用户的所属部门 List userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); if (userIds.size() > 0) { Map useDepNames = sysUserService.getDepNamesByUserIds(userIds); pageList.getRecords().forEach(item -> item.setOrgCodeTxt(useDepNames.get(item.getId()))); } return Result.ok(pageList); } }