添加用户管理相关功能

release_1.0.0
xueqingkun 8 months ago
parent 24ee3299db
commit 0e4af14729

@ -1,33 +1,27 @@
package com.supervision.knowsub.controller.system;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.supervision.knowsub.domain.UserInfo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.exception.BusinessException;
import com.supervision.knowsub.model.SystemUser;
import com.supervision.knowsub.service.SystemUserService;
import com.supervision.knowsub.util.TokenUtil;
import com.supervision.knowsub.util.UserUtil;
import com.supervision.knowsub.model.SystemRole;
import com.supervision.knowsub.service.UserManageService;
import com.supervision.knowsub.vo.user.LoginReqVO;
import com.supervision.knowsub.vo.user.LoginResVO;
import com.supervision.knowsub.vo.user.UserInfoResVo;
import com.supervision.knowsub.vo.user.UserInfoReqVo;
import com.supervision.knowsub.dto.user.UserInfoDTO;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.Optional;
@Tag(name = "用户管理")
@RestController
@RequestMapping("user")
@RequiredArgsConstructor
public class UserController {
private final SystemUserService systemUserService;
private final UserManageService userManageService;
@Operation(summary = "登录")
@PostMapping("login")
@ -35,38 +29,52 @@ public class UserController {
if (!StrUtil.isAllNotBlank(reqVO.getUserAccount(), reqVO.getPassword())) {
throw new BusinessException("用户名不能为空");
}
Optional<SystemUser> user = systemUserService.lambdaQuery().eq(SystemUser::getAccount, reqVO.getUserAccount()).last("limit 1").oneOpt();
if (user.isEmpty() || !UserUtil.checkUserPassword(reqVO.getPassword(), user.get().getUserPd())) {
throw new BusinessException("用户名或密码有误!");
}
UserInfo userInfoToken = BeanUtil.copyProperties(user.get(), UserInfo.class);
// 更新用户最近的登录时间
systemUserService.lambdaUpdate().set(SystemUser::getRecentLoginTime, LocalDateTime.now()).eq(SystemUser::getId, user.get().getId()).update();
String token = TokenUtil.creatToken(JSONUtil.toJsonStr(userInfoToken));
LoginResVO loginResVO = BeanUtil.toBean(user.get(), LoginResVO.class);
loginResVO.setToken(token);
loginResVO.setUsername(user.get().getUsername());
loginResVO.setRoleId(user.get().getRoleId());
return loginResVO;
return userManageService.login(reqVO);
}
@Operation(summary = "查看账号信息")
@GetMapping("getUserAccountInfo")
public UserInfoResVo getUserAccountInfo() {
UserInfo user = UserUtil.getUser();
SystemUser systemUser = systemUserService.getById(user.getId());
if (ObjectUtil.isEmpty(systemUser)){
throw new BusinessException("用户信息不存在");
}
return BeanUtil.toBean(systemUser, UserInfoResVo.class);
public UserInfoDTO getUserAccountInfo() {
return userManageService.getUserAccountInfo();
}
@Operation(summary = "新增用户信息")
@PostMapping("/saveUserInfo")
public String saveUserInfo(@RequestBody UserInfoReqVo userInfoReqVo) {
return userManageService.saveUserInfo(userInfoReqVo);
}
@Operation(summary = "修改用户信息")
@PostMapping("/update")
public void updateRole(@RequestBody UserInfoReqVo userInfoReqVo) {
userManageService.updateUserInfo(userInfoReqVo);
}
@Operation(summary = "删除用户信息")
@DeleteMapping("/delete")
public Boolean deleteRole(@Parameter(name = "id") @RequestParam(name="id") String id) {
return userManageService.deleteUser(id);
}
@Operation(summary = "查看用户信息列表")
@GetMapping("/list")
public IPage<UserInfoDTO> list(@Parameter(name = "userName",description = "用户名") @RequestParam(required = false) String userName,
@Parameter(name = "deptId",description = "部门id") @RequestParam(required = false) String deptId,
@Parameter(name = "roleId",description = "角色id") @RequestParam(required = false) String roleId,
@Parameter(name = "pageNum",description = "页码") @RequestParam(defaultValue = "1") Integer pageNum,
@Parameter(name = "pageSize",description = "每页大小") @RequestParam(defaultValue = "10") Integer pageSize) {
return userManageService.list(userName, deptId, roleId, pageNum, pageSize);
}
@Operation(summary = "重置用户密码")
@GetMapping("/resetPW")
public Boolean resetPW(@Parameter(name = "id") @RequestParam(name="id") String id) {
return userManageService.resetPW(id);
}
}

@ -1,14 +1,33 @@
package com.supervision.knowsub.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.model.SystemRole;
import com.supervision.knowsub.model.SystemUser;
import com.supervision.knowsub.vo.user.LoginReqVO;
import com.supervision.knowsub.vo.user.LoginResVO;
import com.supervision.knowsub.vo.user.UserInfoReqVo;
import com.supervision.knowsub.dto.user.UserInfoDTO;
import java.util.List;
public interface UserManageService {
LoginResVO login(LoginReqVO reqVO);
UserInfoDTO getUserAccountInfo();
List<SystemUser> listUserByDeptId(String deptId,Integer status);
Long countUserByDeptId(String deptId,Integer status);
String saveUserInfo(UserInfoReqVo userInfoReqVo);
void updateUserInfo(UserInfoReqVo userInfoReqVo);
Boolean deleteUser(String id);
IPage<UserInfoDTO> list(String userName, String deptId, String roleId, Integer pageNum, Integer pageSize);
Boolean resetPW(String id);
}

@ -0,0 +1,19 @@
package com.supervision.knowsub.service;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import com.supervision.knowsub.model.SystemUserRoleRelation;
import java.util.List;
public interface UserRoleRelationManageService {
List<SystemUserRoleRelation> saveUserRoleRelation(String userId, List<String> roleIdList);
List<SystemUserRoleRelation> updateUserRoleRelation(String userId, List<String> roleIdList);
List<UserRoleDTO> listUserRole(String userId, String roleId);
List<UserRoleDTO> listUserRoleByUserIds(List<String> userIds);
void deleteUserRoleRelation(String userId);
}

@ -1,20 +1,84 @@
package com.supervision.knowsub.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.domain.UserInfo;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import com.supervision.knowsub.dto.user.UserPageQuery;
import com.supervision.knowsub.exception.BusinessException;
import com.supervision.knowsub.model.SystemRole;
import com.supervision.knowsub.model.SystemUser;
import com.supervision.knowsub.service.SystemRoleService;
import com.supervision.knowsub.service.UserManageService;
import com.supervision.knowsub.service.UserRoleRelationManageService;
import com.supervision.knowsub.util.TokenUtil;
import com.supervision.knowsub.util.UserUtil;
import com.supervision.knowsub.vo.user.LoginReqVO;
import com.supervision.knowsub.vo.user.LoginResVO;
import com.supervision.knowsub.vo.user.UserInfoReqVo;
import com.supervision.knowsub.dto.user.UserInfoDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Service
@RequiredArgsConstructor
public class UserManageServiceImpl implements UserManageService {
@Value("${user.default.password}")
private String defaultPassword;
private final SystemUserServiceImpl systemUserService;
private final UserRoleRelationManageService userRoleRelationManageService;
private final SystemRoleService systemRoleService;
@Override
@Transactional(rollbackFor = Exception.class)
public LoginResVO login(LoginReqVO reqVO) {
Optional<SystemUser> user = systemUserService.lambdaQuery().eq(SystemUser::getAccount, reqVO.getUserAccount()).last("limit 1").oneOpt();
if (user.isEmpty() || !UserUtil.checkUserPassword(reqVO.getPassword(), user.get().getUserPd())) {
throw new BusinessException("用户名或密码有误!");
}
UserInfo userInfoToken = BeanUtil.copyProperties(user.get(), UserInfo.class);
// 更新用户最近的登录时间
systemUserService.lambdaUpdate().set(SystemUser::getRecentLoginTime, LocalDateTime.now()).eq(SystemUser::getId, user.get().getId()).update();
String token = TokenUtil.creatToken(JSONUtil.toJsonStr(userInfoToken));
LoginResVO loginResVO = BeanUtil.toBean(user.get(), LoginResVO.class);
loginResVO.setToken(token);
loginResVO.setUsername(user.get().getUsername());
List<UserRoleDTO> userRoleDTOS = userRoleRelationManageService.listUserRole(user.get().getId(),null);
loginResVO.setUserRoleDTOList(userRoleDTOS);
return loginResVO;
}
@Override
public UserInfoDTO getUserAccountInfo() {
UserInfo user = UserUtil.getUser();
SystemUser systemUser = systemUserService.getById(user.getId());
if (ObjectUtil.isEmpty(systemUser)){
throw new BusinessException("用户信息不存在");
}
return BeanUtil.toBean(systemUser, UserInfoDTO.class);
}
@Override
public List<SystemUser> listUserByDeptId(String deptId,Integer status) {
Assert.notEmpty(deptId,"部门id不能为空");
@ -28,4 +92,93 @@ public class UserManageServiceImpl implements UserManageService {
return systemUserService.lambdaQuery().eq(SystemUser::getDeptId,deptId)
.eq(ObjUtil.isNull(status),SystemUser::getStatus,status).count();
}
@Override
@Transactional(rollbackFor = Exception.class)
public String saveUserInfo(UserInfoReqVo userInfoReqVo) {
Assert.notEmpty(userInfoReqVo.getAccount(), "用户名不能为空");
Assert.notEmpty(userInfoReqVo.getUsername(), "姓名不能为空");
Assert.notEmpty(userInfoReqVo.getDeptId(), "部门不能为空");
Assert.notEmpty(userInfoReqVo.getRoleIds(), "角色不能为空");
Long count = systemUserService.lambdaQuery().eq(SystemUser::getAccount, userInfoReqVo.getAccount()).count();
Assert.isTrue(count == 0, "用户名已存在");
SystemUser systemUser = BeanUtil.toBean(userInfoReqVo, SystemUser.class);
// 设置默认密码
systemUser.setUserPd(UserUtil.signPassword(defaultPassword));
systemUser.setStatus(0);
systemUserService.save(systemUser);
userRoleRelationManageService.saveUserRoleRelation(systemUser.getId(), userInfoReqVo.getRoleIds());
return systemUser.getId();
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateUserInfo(UserInfoReqVo userInfoReqVo) {
Assert.notEmpty(userInfoReqVo.getId(), "用户id不能为空");
Assert.notEmpty(userInfoReqVo.getAccount(), "用户名不能为空");
Assert.notEmpty(userInfoReqVo.getUsername(), "姓名不能为空");
Assert.notEmpty(userInfoReqVo.getDeptId(), "部门不能为空");
Assert.notEmpty(userInfoReqVo.getRoleIds(), "角色不能为空");
systemUserService.lambdaUpdate().set(SystemUser::getAccount, userInfoReqVo.getAccount())
.set(SystemUser::getUsername, userInfoReqVo.getUsername())
.set(SystemUser::getDeptId, userInfoReqVo.getDeptId())
.set(SystemUser::getRemark, userInfoReqVo.getRemark())
.eq(SystemUser::getId, userInfoReqVo.getId())
.update();
userRoleRelationManageService.updateUserRoleRelation(userInfoReqVo.getId(), userInfoReqVo.getRoleIds());
}
@Override
public Boolean deleteUser(String id) {
Assert.notEmpty(id, "用户id不能为空");
SystemUser systemUser = systemUserService.getById(id);
Assert.notNull(systemUser, "用户不存在");
Assert.isTrue(systemUser.getStatus() == 0, "该用户已启用,不能删除");
systemUserService.removeById(id);
userRoleRelationManageService.deleteUserRoleRelation(id);
return true;
}
@Override
public IPage<UserInfoDTO> list(String userName, String deptId, String roleId, Integer pageNum, Integer pageSize) {
List<UserRoleDTO> userRoleDTOS = new ArrayList<>();
if (StrUtil.isNotEmpty(roleId)){
userRoleDTOS = userRoleRelationManageService.listUserRole(null, roleId);
}
UserPageQuery userPageQuery = UserPageQuery.builder().userName(userName).deptId(deptId)
.excludeUserIdList(userRoleDTOS.stream().map(UserRoleDTO::getUserId).toList()).build();
IPage<UserInfoDTO> userInfoPage = systemUserService.pageList(userPageQuery, pageNum, pageSize);
if (CollUtil.isEmpty(userInfoPage.getRecords())){
return userInfoPage;
}
List<SystemRole> systemRoleList = systemRoleService.lambdaQuery()
.in(SystemRole::getId, userRoleDTOS.stream().map(UserRoleDTO::getRoleId).toList()).list();
if (CollUtil.isNotEmpty(systemRoleList)){
return userInfoPage;
}
// userRoleRelationManageService.listUserRole(null, null)
// Map<String, String> roleIdMapName = systemRoleList.stream().collect(Collectors.toMap(SystemRole::getId, SystemRole::getRoleName));
// userInfoPage.convert(userInfoDTO -> {
// userInfoDTO.setUserRoleList();
// })
return systemUserService.pageList(userPageQuery, pageNum, pageSize);
}
@Override
public Boolean resetPW(String id) {
Assert.notEmpty(id, "用户id不能为空");
return systemUserService.lambdaUpdate().set(SystemUser::getUserPd, UserUtil.signPassword(defaultPassword))
.eq(SystemUser::getId, id).update();
}
}

@ -0,0 +1,77 @@
package com.supervision.knowsub.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import com.supervision.knowsub.model.SystemUserRoleRelation;
import com.supervision.knowsub.service.SystemUserRoleRelationService;
import com.supervision.knowsub.service.UserRoleRelationManageService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class UserRoleRelationManageServiceImpl implements UserRoleRelationManageService {
private final SystemUserRoleRelationService userRoleRelationService;
@Override
@Transactional(rollbackFor = Exception.class)
public List<SystemUserRoleRelation> saveUserRoleRelation(String userId, List<String> roleIdList) {
Assert.notEmpty(userId, "用户id不能为空");
if (CollUtil.isEmpty(roleIdList)){
log.info("saveUserRoleRelation:userId:{},roleList is empty",userId);
return CollUtil.newArrayList();
}
List<SystemUserRoleRelation> userRoleList = roleIdList.stream().map(roleId -> {
SystemUserRoleRelation userRole = new SystemUserRoleRelation();
userRole.setRoleId(roleId);
userRole.setUserId(userId);
return userRole;
}).toList();
userRoleRelationService.saveBatch(userRoleList);
return userRoleList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<SystemUserRoleRelation> updateUserRoleRelation(String userId, List<String> roleIdList) {
Assert.notEmpty(userId, "用户id不能为空");
userRoleRelationService.lambdaUpdate().eq(SystemUserRoleRelation::getUserId,userId).remove();
if (CollUtil.isEmpty(roleIdList)){
log.info("updateUserRoleRelation:userId:{},roleList is empty",userId);
return CollUtil.newArrayList();
}
return saveUserRoleRelation(userId,roleIdList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public List<UserRoleDTO> listUserRole(String userId, String roleId) {
return userRoleRelationService.listUserRole(userId,roleId);
}
@Override
public List<UserRoleDTO> listUserRoleByUserIds(List<String> userIds) {
if (CollUtil.isEmpty(userIds)){
return CollUtil.newArrayList();
}
return userRoleRelationService.listUserRoleByUserIds(userIds);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteUserRoleRelation(String userId) {
userRoleRelationService.lambdaUpdate().eq(SystemUserRoleRelation::getUserId,userId).remove();
}
}

@ -71,4 +71,8 @@ springdoc:
knife4j:
enable: true
setting:
language: zh_cn
language: zh_cn
user:
# 默认密码
default:
password: 123456

@ -50,7 +50,7 @@ public class WebConfig implements WebMvcConfigurer {
paths.add("/medicalRecManage/downloadMedicalAnswerTemplate");
paths.add("/qaKnowledge/**");
// 开发环境,放开不校验token.每次修改这里需要重启(热部署不行)
// paths.add("/**");
//paths.add("/**");
return paths;
}

@ -27,6 +27,9 @@ public class UserUtil {
token = (String) request.getAttribute("token");
}
if (ObjectUtil.isEmpty(token)) {
throw new BusinessException("未获取到用户token信息");
}
JWT jwt = JWTUtil.parseToken(token);
JSONObject claimsJson = jwt.getPayload().getClaimsJson();
// String userStr = ThreadCache.USER.get();
@ -38,8 +41,23 @@ public class UserUtil {
}
/**
*
* @param password
* @param userPd
* @return
*/
public static boolean checkUserPassword(String password, String userPd) {
return SM2Util.verify(password, userPd);
}
/**
*
* @param password
* @return
*/
public static String signPassword(String password){
return SM2Util.sign(password);
}
}

@ -0,0 +1,13 @@
package com.supervision.knowsub.dto.role;
import lombok.Data;
@Data
public class UserRoleDTO {
private String userId;
private String roleId;
private String roleName;
}

@ -1,11 +1,14 @@
package com.supervision.knowsub.vo.user;
package com.supervision.knowsub.dto.user;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class UserInfoResVo {
public class UserInfoDTO {
@Schema(description = "用户id")
private String id;
@ -17,11 +20,17 @@ public class UserInfoResVo {
private String username;
@Schema(description = "用户角色编码0管理员 1普通用户")
private String roleId;
private List<UserRoleDTO> userRoleList;
@Schema(description = "人员所属部门ID")
private String deptId;
@Schema(description = "人员所属部门名称")
private String deptName;
@Schema(description = "账号状态 0正常 1停用")
private Integer status;
@Schema(description = "备注")
private String remark;

@ -0,0 +1,26 @@
package com.supervision.knowsub.dto.user;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;
import java.util.List;
@Data
@Builder
public class UserPageQuery {
@Schema(description = "用户名")
private String userName;
@Schema(description = "部门ID")
private String deptId;
@Schema(description = "排除的用户ID列表")
private List<String> excludeUserIdList;
@Tolerate
public UserPageQuery() {
}
}

@ -1,7 +1,12 @@
package com.supervision.knowsub.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.knowsub.dto.user.UserInfoDTO;
import com.supervision.knowsub.dto.user.UserPageQuery;
import com.supervision.knowsub.model.SystemUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @author Administrator
@ -11,6 +16,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface SystemUserMapper extends BaseMapper<SystemUser> {
IPage<UserInfoDTO> pageList(@Param("userPageQuery") UserPageQuery userPageQuery, @Param("page") Page<UserInfoDTO> page);
}

@ -0,0 +1,23 @@
package com.supervision.knowsub.mapper;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import com.supervision.knowsub.model.SystemUserRoleRelation;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Administrator
* @description ks_system_user_role_relation()Mapper
* @createDate 2024-06-28 10:41:20
* @Entity com.supervision.knowsub.model.SystemUserRoleRelation
*/
public interface SystemUserRoleRelationMapper extends BaseMapper<SystemUserRoleRelation> {
List<UserRoleDTO> listUserRole(@Param("userId") String userId, @Param("roleId") String roleId);
}

@ -22,9 +22,9 @@ public class SystemUser implements Serializable {
private String id;
/**
* ID
* ID
*/
private String roleId;
private String headPicId;
/**
*

@ -1,8 +1,11 @@
package com.supervision.knowsub.service;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import com.supervision.knowsub.model.SystemUserRoleRelation;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author Administrator
* @description ks_system_user_role_relation()Service
@ -10,4 +13,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SystemUserRoleRelationService extends IService<SystemUserRoleRelation> {
List<UserRoleDTO> listUserRole(String userId, String roleId);
List<UserRoleDTO> listUserRoleByUserIds(List<String> userIds);
}

@ -1,8 +1,13 @@
package com.supervision.knowsub.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.supervision.knowsub.dto.user.UserInfoDTO;
import com.supervision.knowsub.dto.user.UserPageQuery;
import com.supervision.knowsub.model.SystemUser;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author Administrator
* @description ks_system_user()Service
@ -10,4 +15,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface SystemUserService extends IService<SystemUser> {
IPage<UserInfoDTO> pageList(UserPageQuery userPageQuery, Integer pageNum, Integer pageSize);
UserInfoDTO getUserInfoById(String id);
}

@ -1,11 +1,14 @@
package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import com.supervision.knowsub.model.SystemUserRoleRelation;
import com.supervision.knowsub.service.SystemUserRoleRelationService;
import com.supervision.knowsub.mapper.SystemUserRoleRelationMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author Administrator
* @description ks_system_user_role_relation()Service
@ -15,6 +18,15 @@ import org.springframework.stereotype.Service;
public class SystemUserRoleRelationServiceImpl extends ServiceImpl<SystemUserRoleRelationMapper, SystemUserRoleRelation>
implements SystemUserRoleRelationService{
@Override
public List<UserRoleDTO> listUserRole(String userId, String roleId) {
return super.getBaseMapper().listUserRole(userId, roleId);
}
@Override
public List<UserRoleDTO> listUserRoleByUserIds(List<String> userIds) {
return null;
}
}

@ -1,6 +1,10 @@
package com.supervision.knowsub.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.supervision.knowsub.dto.user.UserInfoDTO;
import com.supervision.knowsub.dto.user.UserPageQuery;
import com.supervision.knowsub.model.SystemUser;
import com.supervision.knowsub.service.SystemUserService;
import com.supervision.knowsub.mapper.SystemUserMapper;
@ -15,6 +19,16 @@ import org.springframework.stereotype.Service;
public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemUser>
implements SystemUserService{
@Override
public IPage<UserInfoDTO> pageList(UserPageQuery userPageQuery, Integer pageNum, Integer pageSize) {
return super.getBaseMapper().pageList(userPageQuery,new Page<>(pageNum,pageSize));
}
@Override
public UserInfoDTO getUserInfoById(String id) {
return null;
}
}

@ -1,9 +1,12 @@
package com.supervision.knowsub.vo.user;
import com.supervision.knowsub.dto.role.UserRoleDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class LoginResVO {
@ -17,8 +20,8 @@ public class LoginResVO {
@Schema(description = "用户名称")
private String username;
@Schema(description = "用户角色编码0管理员 1普通用户(学生) 2运营人员(配置)")
private String roleId;
@Schema(description = "用户角色信息")
private List<UserRoleDTO> userRoleDTOList;
@Schema(description = "token")
private String token;

@ -0,0 +1,31 @@
package com.supervision.knowsub.vo.user;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class UserInfoReqVo {
@Schema(description = "id")
private String id;
@Schema(description = "头像ID")
private String headPicId;
@Schema(description = "用户名")
private String account;
@Schema(description = "姓名")
private String username;
@Schema(description = "部门ID")
private String deptId;
@Schema(description = "角色ID列表")
private List<String> roleIds;
@Schema(description = "备注")
private String remark;
}

@ -6,7 +6,7 @@
<resultMap id="BaseResultMap" type="com.supervision.knowsub.model.SystemUser">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="roleId" column="role_id" jdbcType="VARCHAR"/>
<result property="headPicId" column="head_pic_id" jdbcType="VARCHAR"/>
<result property="username" column="username" jdbcType="VARCHAR"/>
<result property="account" column="account" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="INTEGER"/>
@ -21,9 +21,34 @@
</resultMap>
<sql id="Base_Column_List">
id,role_id,username,
id,head_pic_id,username,
account,user_pd,dept_id,remark,recent_login_time,
create_user_id,create_time,
update_user_id,update_time
</sql>
<select id="pageList" resultType="com.supervision.knowsub.dto.user.UserInfoDTO">
select u.id as id,
u.head_pic_id as headPicId,
u.username as username,
u.account as account,
u.status as status,
u.dept_id as deptId,
d.dept_name as deptName,
u.remark as remark
from ks_system_user u
left join ks_system_dept d on u.dept_id = d.id
where 1=1
<if test="userPageQuery.userName != null and userPageQuery.userName != ''">
and u.username like concat('%',#{userPageQuery.userName},'%')
</if>
<if test="userPageQuery.deptId != null and userPageQuery.deptId != ''">
and u.dept_id = #{userPageQuery.deptId}
</if>
<if test="userPageQuery.excludeUserIdList != null and userPageQuery.excludeUserIdList.size() > 0">
and u.id in
<foreach collection="userPageQuery.excludeUserIdList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</select>
</mapper>

@ -25,6 +25,12 @@
ur.user_id as userId
from ks_system_role r
left join ks_system_user_role_relation ur on r.id = ur.role_id
where ur.user_id = #{userId}
where 1=1
<if test="roleId != null and roleId != ''">
and r.id = #{roleId}
</if>
<if test="userId != null and userId != ''">
and ur.user_id = #{userId}
</if>
</select>
</mapper>

Loading…
Cancel
Save