移除岗位模块
This commit is contained in:
parent
8a00d31fe9
commit
167a7f411b
@ -1,115 +0,0 @@
|
|||||||
package org.dromara.system.controller.system;
|
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.dromara.common.core.constant.UserConstants;
|
|
||||||
import org.dromara.common.core.domain.R;
|
|
||||||
import org.dromara.common.excel.utils.ExcelUtil;
|
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
||||||
import org.dromara.common.web.core.BaseController;
|
|
||||||
import org.dromara.system.domain.bo.SysPostBo;
|
|
||||||
import org.dromara.system.domain.vo.SysPostVo;
|
|
||||||
import org.dromara.system.service.ISysPostService;
|
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位信息操作处理
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
@Validated
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@RestController
|
|
||||||
@RequestMapping("/system/post")
|
|
||||||
public class SysPostController extends BaseController {
|
|
||||||
|
|
||||||
private final ISysPostService postService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取岗位列表
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("system:post:list")
|
|
||||||
@GetMapping("/list")
|
|
||||||
public TableDataInfo<SysPostVo> list(SysPostBo post, PageQuery pageQuery) {
|
|
||||||
return postService.selectPagePostList(post, pageQuery);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 导出岗位列表
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("system:post:export")
|
|
||||||
@PostMapping("/export")
|
|
||||||
public void export(SysPostBo post, HttpServletResponse response) {
|
|
||||||
List<SysPostVo> list = postService.selectPostList(post);
|
|
||||||
ExcelUtil.exportExcel(list, "岗位数据", SysPostVo.class, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据岗位编号获取详细信息
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("system:post:query")
|
|
||||||
@GetMapping(value = "/{postId}")
|
|
||||||
public R<SysPostVo> getInfo(@PathVariable Long postId) {
|
|
||||||
return R.ok(postService.selectPostById(postId));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增岗位
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("system:post:add")
|
|
||||||
@PostMapping
|
|
||||||
public R<Void> add(@Validated @RequestBody SysPostBo post) {
|
|
||||||
if (!postService.checkPostNameUnique(post)) {
|
|
||||||
return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
|
|
||||||
} else if (!postService.checkPostCodeUnique(post)) {
|
|
||||||
return R.fail("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
|
|
||||||
}
|
|
||||||
return toAjax(postService.insertPost(post));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改岗位
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("system:post:edit")
|
|
||||||
@PutMapping
|
|
||||||
public R<Void> edit(@Validated @RequestBody SysPostBo post) {
|
|
||||||
if (!postService.checkPostNameUnique(post)) {
|
|
||||||
return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
|
|
||||||
} else if (!postService.checkPostCodeUnique(post)) {
|
|
||||||
return R.fail("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
|
|
||||||
} else if (UserConstants.POST_DISABLE.equals(post.getStatus())
|
|
||||||
&& postService.countUserPostById(post.getPostId()) > 0) {
|
|
||||||
return R.fail("该岗位下存在已分配用户,不能禁用!");
|
|
||||||
}
|
|
||||||
return toAjax(postService.updatePost(post));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除岗位
|
|
||||||
*
|
|
||||||
* @param postIds 岗位ID串
|
|
||||||
*/
|
|
||||||
@SaCheckPermission("system:post:remove")
|
|
||||||
@DeleteMapping("/{postIds}")
|
|
||||||
public R<Void> remove(@PathVariable Long[] postIds) {
|
|
||||||
return toAjax(postService.deletePostByIds(postIds));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取岗位选择框列表
|
|
||||||
*/
|
|
||||||
@GetMapping("/optionselect")
|
|
||||||
public R<List<SysPostVo>> optionselect() {
|
|
||||||
SysPostBo postBo = new SysPostBo();
|
|
||||||
postBo.setStatus(UserConstants.POST_NORMAL);
|
|
||||||
List<SysPostVo> posts = postService.selectPostList(postBo);
|
|
||||||
return R.ok(posts);
|
|
||||||
}
|
|
||||||
}
|
|
@ -39,7 +39,6 @@ public class SysProfileController extends BaseController {
|
|||||||
ProfileVo profileVo = new ProfileVo();
|
ProfileVo profileVo = new ProfileVo();
|
||||||
profileVo.setUser(user);
|
profileVo.setUser(user);
|
||||||
profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName()));
|
profileVo.setRoleGroup(userService.selectUserRoleGroup(user.getUserName()));
|
||||||
profileVo.setPostGroup(userService.selectUserPostGroup(user.getUserName()));
|
|
||||||
return R.ok(profileVo);
|
return R.ok(profileVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,13 +22,11 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.system.domain.bo.SysDeptBo;
|
import org.dromara.system.domain.bo.SysDeptBo;
|
||||||
import org.dromara.system.domain.bo.SysPostBo;
|
|
||||||
import org.dromara.system.domain.bo.SysRoleBo;
|
import org.dromara.system.domain.bo.SysRoleBo;
|
||||||
import org.dromara.system.domain.bo.SysUserBo;
|
import org.dromara.system.domain.bo.SysUserBo;
|
||||||
import org.dromara.system.domain.vo.*;
|
import org.dromara.system.domain.vo.*;
|
||||||
import org.dromara.system.listener.SysUserImportListener;
|
import org.dromara.system.listener.SysUserImportListener;
|
||||||
import org.dromara.system.service.ISysDeptService;
|
import org.dromara.system.service.ISysDeptService;
|
||||||
import org.dromara.system.service.ISysPostService;
|
|
||||||
import org.dromara.system.service.ISysRoleService;
|
import org.dromara.system.service.ISysRoleService;
|
||||||
import org.dromara.system.service.ISysUserService;
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
@ -52,7 +50,6 @@ public class SysUserController extends BaseController {
|
|||||||
|
|
||||||
private final ISysUserService userService;
|
private final ISysUserService userService;
|
||||||
private final ISysRoleService roleService;
|
private final ISysRoleService roleService;
|
||||||
private final ISysPostService postService;
|
|
||||||
private final ISysDeptService deptService;
|
private final ISysDeptService deptService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -127,16 +124,12 @@ public class SysUserController extends BaseController {
|
|||||||
SysUserInfoVo userInfoVo = new SysUserInfoVo();
|
SysUserInfoVo userInfoVo = new SysUserInfoVo();
|
||||||
SysRoleBo roleBo = new SysRoleBo();
|
SysRoleBo roleBo = new SysRoleBo();
|
||||||
roleBo.setStatus(UserConstants.ROLE_NORMAL);
|
roleBo.setStatus(UserConstants.ROLE_NORMAL);
|
||||||
SysPostBo postBo = new SysPostBo();
|
|
||||||
postBo.setStatus(UserConstants.POST_NORMAL);
|
|
||||||
List<SysRoleVo> roles = roleService.selectRoleList(roleBo);
|
List<SysRoleVo> roles = roleService.selectRoleList(roleBo);
|
||||||
userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin()));
|
userInfoVo.setRoles(LoginHelper.isSuperAdmin(userId) ? roles : StreamUtils.filter(roles, r -> !r.isSuperAdmin()));
|
||||||
userInfoVo.setPosts(postService.selectPostList(postBo));
|
|
||||||
if (ObjectUtil.isNotNull(userId)) {
|
if (ObjectUtil.isNotNull(userId)) {
|
||||||
SysUserVo sysUser = userService.selectUserById(userId);
|
SysUserVo sysUser = userService.selectUserById(userId);
|
||||||
userInfoVo.setUser(sysUser);
|
userInfoVo.setUser(sysUser);
|
||||||
userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRoleVo::getRoleId));
|
userInfoVo.setRoleIds(StreamUtils.toList(sysUser.getRoles(), SysRoleVo::getRoleId));
|
||||||
userInfoVo.setPostIds(postService.selectPostListByUserId(userId));
|
|
||||||
}
|
}
|
||||||
return R.ok(userInfoVo);
|
return R.ok(userInfoVo);
|
||||||
}
|
}
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
package org.dromara.system.domain;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位表 sys_post
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@TableName("sys_post")
|
|
||||||
public class SysPost extends BaseEntity {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位序号
|
|
||||||
*/
|
|
||||||
@TableId(value = "post_id")
|
|
||||||
private Long postId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位编码
|
|
||||||
*/
|
|
||||||
private String postCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位名称
|
|
||||||
*/
|
|
||||||
private String postName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位排序
|
|
||||||
*/
|
|
||||||
private Integer postSort;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 状态(0正常 1停用)
|
|
||||||
*/
|
|
||||||
private String status;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package org.dromara.system.domain;
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户和岗位关联 sys_user_post
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@TableName("sys_user_post")
|
|
||||||
public class SysUserPost {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户ID
|
|
||||||
*/
|
|
||||||
@TableId(type = IdType.INPUT)
|
|
||||||
private Long userId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位ID
|
|
||||||
*/
|
|
||||||
private Long postId;
|
|
||||||
|
|
||||||
}
|
|
@ -1,59 +0,0 @@
|
|||||||
package org.dromara.system.domain.bo;
|
|
||||||
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import jakarta.validation.constraints.Size;
|
|
||||||
import lombok.Data;
|
|
||||||
import lombok.EqualsAndHashCode;
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|
||||||
import org.dromara.system.domain.SysPost;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位信息业务对象 sys_post
|
|
||||||
*
|
|
||||||
* @author Michelle.Chung
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Data
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@AutoMapper(target = SysPost.class, reverseConvertGenerate = false)
|
|
||||||
public class SysPostBo extends BaseEntity {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位ID
|
|
||||||
*/
|
|
||||||
private Long postId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位编码
|
|
||||||
*/
|
|
||||||
@NotBlank(message = "岗位编码不能为空")
|
|
||||||
@Size(min = 0, max = 64, message = "岗位编码长度不能超过{max}个字符")
|
|
||||||
private String postCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位名称
|
|
||||||
*/
|
|
||||||
@NotBlank(message = "岗位名称不能为空")
|
|
||||||
@Size(min = 0, max = 50, message = "岗位名称长度不能超过{max}个字符")
|
|
||||||
private String postName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 显示顺序
|
|
||||||
*/
|
|
||||||
@NotNull(message = "显示顺序不能为空")
|
|
||||||
private Integer postSort;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 状态(0正常 1停用)
|
|
||||||
*/
|
|
||||||
private String status;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -19,11 +19,4 @@ public class ProfileVo {
|
|||||||
* 用户所属角色组
|
* 用户所属角色组
|
||||||
*/
|
*/
|
||||||
private String roleGroup;
|
private String roleGroup;
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户所属岗位组
|
|
||||||
*/
|
|
||||||
private String postGroup;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
package org.dromara.system.domain.vo;
|
|
||||||
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
|
||||||
import org.dromara.system.domain.SysPost;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
|
||||||
import java.io.Serializable;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位信息视图对象 sys_post
|
|
||||||
*
|
|
||||||
* @author Michelle.Chung
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
@ExcelIgnoreUnannotated
|
|
||||||
@AutoMapper(target = SysPost.class)
|
|
||||||
public class SysPostVo implements Serializable {
|
|
||||||
|
|
||||||
@Serial
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位ID
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "岗位序号")
|
|
||||||
private Long postId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位编码
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "岗位编码")
|
|
||||||
private String postCode;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位名称
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "岗位名称")
|
|
||||||
private String postName;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 显示顺序
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "岗位排序")
|
|
||||||
private Integer postSort;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 状态(0正常 1停用)
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
|
|
||||||
@ExcelDictFormat(dictType = "sys_normal_disable")
|
|
||||||
private String status;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 备注
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "备注")
|
|
||||||
private String remark;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 创建时间
|
|
||||||
*/
|
|
||||||
@ExcelProperty(value = "创建时间")
|
|
||||||
private Date createTime;
|
|
||||||
|
|
||||||
}
|
|
@ -26,15 +26,4 @@ public class SysUserInfoVo {
|
|||||||
* 角色列表
|
* 角色列表
|
||||||
*/
|
*/
|
||||||
private List<SysRoleVo> roles;
|
private List<SysRoleVo> roles;
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位ID列表
|
|
||||||
*/
|
|
||||||
private List<Long> postIds;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位列表
|
|
||||||
*/
|
|
||||||
private List<SysPostVo> posts;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
package org.dromara.system.mapper;
|
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
import org.dromara.system.domain.SysPost;
|
|
||||||
import org.dromara.system.domain.vo.SysPostVo;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位信息 数据层
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
public interface SysPostMapper extends BaseMapperPlus<SysPost, SysPostVo> {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户ID获取岗位选择框列表
|
|
||||||
*
|
|
||||||
* @param userId 用户ID
|
|
||||||
* @return 选中岗位ID列表
|
|
||||||
*/
|
|
||||||
List<Long> selectPostListByUserId(Long userId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询用户所属岗位组
|
|
||||||
*
|
|
||||||
* @param userName 用户名
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
List<SysPostVo> selectPostsByUserName(String userName);
|
|
||||||
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
package org.dromara.system.mapper;
|
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|
||||||
import org.dromara.system.domain.SysUserPost;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用户与岗位关联表 数据层
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
public interface SysUserPostMapper extends BaseMapperPlus<SysUserPost, SysUserPost> {
|
|
||||||
|
|
||||||
}
|
|
@ -1,106 +0,0 @@
|
|||||||
package org.dromara.system.service;
|
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
||||||
import org.dromara.system.domain.bo.SysPostBo;
|
|
||||||
import org.dromara.system.domain.vo.SysPostVo;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位信息 服务层
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
public interface ISysPostService {
|
|
||||||
|
|
||||||
|
|
||||||
TableDataInfo<SysPostVo> selectPagePostList(SysPostBo post, PageQuery pageQuery);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询岗位信息集合
|
|
||||||
*
|
|
||||||
* @param post 岗位信息
|
|
||||||
* @return 岗位列表
|
|
||||||
*/
|
|
||||||
List<SysPostVo> selectPostList(SysPostBo post);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询所有岗位
|
|
||||||
*
|
|
||||||
* @return 岗位列表
|
|
||||||
*/
|
|
||||||
List<SysPostVo> selectPostAll();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过岗位ID查询岗位信息
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
* @return 角色对象信息
|
|
||||||
*/
|
|
||||||
SysPostVo selectPostById(Long postId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户ID获取岗位选择框列表
|
|
||||||
*
|
|
||||||
* @param userId 用户ID
|
|
||||||
* @return 选中岗位ID列表
|
|
||||||
*/
|
|
||||||
List<Long> selectPostListByUserId(Long userId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验岗位名称
|
|
||||||
*
|
|
||||||
* @param post 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
boolean checkPostNameUnique(SysPostBo post);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验岗位编码
|
|
||||||
*
|
|
||||||
* @param post 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
boolean checkPostCodeUnique(SysPostBo post);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过岗位ID查询岗位使用数量
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
long countUserPostById(Long postId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除岗位信息
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
int deletePostById(Long postId);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除岗位信息
|
|
||||||
*
|
|
||||||
* @param postIds 需要删除的岗位ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
int deletePostByIds(Long[] postIds);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增保存岗位信息
|
|
||||||
*
|
|
||||||
* @param bo 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
int insertPost(SysPostBo bo);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改保存岗位信息
|
|
||||||
*
|
|
||||||
* @param bo 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
int updatePost(SysPostBo bo);
|
|
||||||
}
|
|
@ -73,14 +73,6 @@ public interface ISysUserService {
|
|||||||
*/
|
*/
|
||||||
String selectUserRoleGroup(String userName);
|
String selectUserRoleGroup(String userName);
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户ID查询用户所属岗位组
|
|
||||||
*
|
|
||||||
* @param userName 用户名
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
String selectUserPostGroup(String userName);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验用户名称是否唯一
|
* 校验用户名称是否唯一
|
||||||
*
|
*
|
||||||
|
@ -1,188 +0,0 @@
|
|||||||
package org.dromara.system.service.impl;
|
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
||||||
import org.dromara.system.domain.SysPost;
|
|
||||||
import org.dromara.system.domain.SysUserPost;
|
|
||||||
import org.dromara.system.domain.bo.SysPostBo;
|
|
||||||
import org.dromara.system.domain.vo.SysPostVo;
|
|
||||||
import org.dromara.system.mapper.SysPostMapper;
|
|
||||||
import org.dromara.system.mapper.SysUserPostMapper;
|
|
||||||
import org.dromara.system.service.ISysPostService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 岗位信息 服务层处理
|
|
||||||
*
|
|
||||||
* @author Lion Li
|
|
||||||
*/
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@Service
|
|
||||||
public class SysPostServiceImpl implements ISysPostService {
|
|
||||||
|
|
||||||
private final SysPostMapper baseMapper;
|
|
||||||
private final SysUserPostMapper userPostMapper;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TableDataInfo<SysPostVo> selectPagePostList(SysPostBo post, PageQuery pageQuery) {
|
|
||||||
LambdaQueryWrapper<SysPost> lqw = buildQueryWrapper(post);
|
|
||||||
Page<SysPostVo> page = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
|
||||||
return TableDataInfo.build(page);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询岗位信息集合
|
|
||||||
*
|
|
||||||
* @param post 岗位信息
|
|
||||||
* @return 岗位信息集合
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysPostVo> selectPostList(SysPostBo post) {
|
|
||||||
LambdaQueryWrapper<SysPost> lqw = buildQueryWrapper(post);
|
|
||||||
return baseMapper.selectVoList(lqw);
|
|
||||||
}
|
|
||||||
|
|
||||||
private LambdaQueryWrapper<SysPost> buildQueryWrapper(SysPostBo bo) {
|
|
||||||
LambdaQueryWrapper<SysPost> lqw = Wrappers.lambdaQuery();
|
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getPostCode()), SysPost::getPostCode, bo.getPostCode());
|
|
||||||
lqw.like(StringUtils.isNotBlank(bo.getPostName()), SysPost::getPostName, bo.getPostName());
|
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getStatus()), SysPost::getStatus, bo.getStatus());
|
|
||||||
lqw.orderByAsc(SysPost::getPostSort);
|
|
||||||
return lqw;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询所有岗位
|
|
||||||
*
|
|
||||||
* @return 岗位列表
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<SysPostVo> selectPostAll() {
|
|
||||||
return baseMapper.selectVoList(new QueryWrapper<>());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过岗位ID查询岗位信息
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
* @return 角色对象信息
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public SysPostVo selectPostById(Long postId) {
|
|
||||||
return baseMapper.selectVoById(postId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 根据用户ID获取岗位选择框列表
|
|
||||||
*
|
|
||||||
* @param userId 用户ID
|
|
||||||
* @return 选中岗位ID列表
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public List<Long> selectPostListByUserId(Long userId) {
|
|
||||||
return baseMapper.selectPostListByUserId(userId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验岗位名称是否唯一
|
|
||||||
*
|
|
||||||
* @param post 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean checkPostNameUnique(SysPostBo post) {
|
|
||||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysPost>()
|
|
||||||
.eq(SysPost::getPostName, post.getPostName())
|
|
||||||
.ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
|
|
||||||
return !exist;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 校验岗位编码是否唯一
|
|
||||||
*
|
|
||||||
* @param post 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean checkPostCodeUnique(SysPostBo post) {
|
|
||||||
boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysPost>()
|
|
||||||
.eq(SysPost::getPostCode, post.getPostCode())
|
|
||||||
.ne(ObjectUtil.isNotNull(post.getPostId()), SysPost::getPostId, post.getPostId()));
|
|
||||||
return !exist;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过岗位ID查询岗位使用数量
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public long countUserPostById(Long postId) {
|
|
||||||
return userPostMapper.selectCount(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getPostId, postId));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 删除岗位信息
|
|
||||||
*
|
|
||||||
* @param postId 岗位ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int deletePostById(Long postId) {
|
|
||||||
return baseMapper.deleteById(postId);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 批量删除岗位信息
|
|
||||||
*
|
|
||||||
* @param postIds 需要删除的岗位ID
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int deletePostByIds(Long[] postIds) {
|
|
||||||
for (Long postId : postIds) {
|
|
||||||
SysPost post = baseMapper.selectById(postId);
|
|
||||||
if (countUserPostById(postId) > 0) {
|
|
||||||
throw new ServiceException(String.format("%1$s已分配,不能删除!", post.getPostName()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return baseMapper.deleteBatchIds(Arrays.asList(postIds));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增保存岗位信息
|
|
||||||
*
|
|
||||||
* @param bo 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int insertPost(SysPostBo bo) {
|
|
||||||
SysPost post = MapstructUtils.convert(bo, SysPost.class);
|
|
||||||
return baseMapper.insert(post);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改保存岗位信息
|
|
||||||
*
|
|
||||||
* @param bo 岗位信息
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public int updatePost(SysPostBo bo) {
|
|
||||||
SysPost post = MapstructUtils.convert(bo, SysPost.class);
|
|
||||||
return baseMapper.updateById(post);
|
|
||||||
}
|
|
||||||
}
|
|
@ -24,13 +24,14 @@ import org.dromara.common.mybatis.helper.DataBaseHelper;
|
|||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.system.domain.SysDept;
|
import org.dromara.system.domain.SysDept;
|
||||||
import org.dromara.system.domain.SysUser;
|
import org.dromara.system.domain.SysUser;
|
||||||
import org.dromara.system.domain.SysUserPost;
|
|
||||||
import org.dromara.system.domain.SysUserRole;
|
import org.dromara.system.domain.SysUserRole;
|
||||||
import org.dromara.system.domain.bo.SysUserBo;
|
import org.dromara.system.domain.bo.SysUserBo;
|
||||||
import org.dromara.system.domain.vo.SysPostVo;
|
|
||||||
import org.dromara.system.domain.vo.SysRoleVo;
|
import org.dromara.system.domain.vo.SysRoleVo;
|
||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
import org.dromara.system.mapper.*;
|
import org.dromara.system.mapper.SysDeptMapper;
|
||||||
|
import org.dromara.system.mapper.SysRoleMapper;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.system.mapper.SysUserRoleMapper;
|
||||||
import org.dromara.system.service.ISysUserService;
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -52,9 +53,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
private final SysUserMapper baseMapper;
|
private final SysUserMapper baseMapper;
|
||||||
private final SysDeptMapper deptMapper;
|
private final SysDeptMapper deptMapper;
|
||||||
private final SysRoleMapper roleMapper;
|
private final SysRoleMapper roleMapper;
|
||||||
private final SysPostMapper postMapper;
|
|
||||||
private final SysUserRoleMapper userRoleMapper;
|
private final SysUserRoleMapper userRoleMapper;
|
||||||
private final SysUserPostMapper userPostMapper;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
|
public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
|
||||||
@ -181,21 +180,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
return StreamUtils.join(list, SysRoleVo::getRoleName);
|
return StreamUtils.join(list, SysRoleVo::getRoleName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 查询用户所属岗位组
|
|
||||||
*
|
|
||||||
* @param userName 用户名
|
|
||||||
* @return 结果
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public String selectUserPostGroup(String userName) {
|
|
||||||
List<SysPostVo> list = postMapper.selectPostsByUserName(userName);
|
|
||||||
if (CollUtil.isEmpty(list)) {
|
|
||||||
return StringUtils.EMPTY;
|
|
||||||
}
|
|
||||||
return StreamUtils.join(list, SysPostVo::getPostName);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验用户名称是否唯一
|
* 校验用户名称是否唯一
|
||||||
*
|
*
|
||||||
@ -279,8 +263,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
// 新增用户信息
|
// 新增用户信息
|
||||||
int rows = baseMapper.insert(sysUser);
|
int rows = baseMapper.insert(sysUser);
|
||||||
user.setUserId(sysUser.getUserId());
|
user.setUserId(sysUser.getUserId());
|
||||||
// 新增用户岗位关联
|
|
||||||
insertUserPost(user, false);
|
|
||||||
// 新增用户与角色管理
|
// 新增用户与角色管理
|
||||||
insertUserRole(user, false);
|
insertUserRole(user, false);
|
||||||
return rows;
|
return rows;
|
||||||
@ -311,8 +293,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
public int updateUser(SysUserBo user) {
|
public int updateUser(SysUserBo user) {
|
||||||
// 新增用户与角色管理
|
// 新增用户与角色管理
|
||||||
insertUserRole(user, true);
|
insertUserRole(user, true);
|
||||||
// 新增用户与岗位管理
|
|
||||||
insertUserPost(user, true);
|
|
||||||
SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
|
SysUser sysUser = MapstructUtils.convert(user, SysUser.class);
|
||||||
// 防止错误更新后导致的数据误删除
|
// 防止错误更新后导致的数据误删除
|
||||||
int flag = baseMapper.updateById(sysUser);
|
int flag = baseMapper.updateById(sysUser);
|
||||||
@ -406,30 +386,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
this.insertUserRole(user.getUserId(), user.getRoleIds(), clear);
|
this.insertUserRole(user.getUserId(), user.getRoleIds(), clear);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 新增用户岗位信息
|
|
||||||
*
|
|
||||||
* @param user 用户对象
|
|
||||||
* @param clear 清除已存在的关联数据
|
|
||||||
*/
|
|
||||||
private void insertUserPost(SysUserBo user, boolean clear) {
|
|
||||||
Long[] posts = user.getPostIds();
|
|
||||||
if (ArrayUtil.isNotEmpty(posts)) {
|
|
||||||
if (clear) {
|
|
||||||
// 删除用户与岗位关联
|
|
||||||
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, user.getUserId()));
|
|
||||||
}
|
|
||||||
// 新增用户与岗位管理
|
|
||||||
List<SysUserPost> list = StreamUtils.toList(List.of(posts), postId -> {
|
|
||||||
SysUserPost up = new SysUserPost();
|
|
||||||
up.setUserId(user.getUserId());
|
|
||||||
up.setPostId(postId);
|
|
||||||
return up;
|
|
||||||
});
|
|
||||||
userPostMapper.insertBatch(list);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增用户角色信息
|
* 新增用户角色信息
|
||||||
*
|
*
|
||||||
@ -478,8 +434,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
public int deleteUserById(Long userId) {
|
public int deleteUserById(Long userId) {
|
||||||
// 删除用户与角色关联
|
// 删除用户与角色关联
|
||||||
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
|
||||||
// 删除用户与岗位表
|
|
||||||
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getUserId, userId));
|
|
||||||
// 防止更新失败导致的数据删除
|
// 防止更新失败导致的数据删除
|
||||||
int flag = baseMapper.deleteById(userId);
|
int flag = baseMapper.deleteById(userId);
|
||||||
if (flag < 1) {
|
if (flag < 1) {
|
||||||
@ -504,8 +458,6 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
List<Long> ids = List.of(userIds);
|
List<Long> ids = List.of(userIds);
|
||||||
// 删除用户与角色关联
|
// 删除用户与角色关联
|
||||||
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, ids));
|
userRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, ids));
|
||||||
// 删除用户与岗位表
|
|
||||||
userPostMapper.delete(new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getUserId, ids));
|
|
||||||
// 防止更新失败导致的数据删除
|
// 防止更新失败导致的数据删除
|
||||||
int flag = baseMapper.deleteBatchIds(ids);
|
int flag = baseMapper.deleteBatchIds(ids);
|
||||||
if (flag < 1) {
|
if (flag < 1) {
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<!DOCTYPE mapper
|
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="org.dromara.system.mapper.SysPostMapper">
|
|
||||||
|
|
||||||
<resultMap type="org.dromara.system.domain.vo.SysPostVo" id="SysPostResult">
|
|
||||||
</resultMap>
|
|
||||||
|
|
||||||
<select id="selectPostListByUserId" parameterType="Long" resultType="Long">
|
|
||||||
select p.post_id
|
|
||||||
from sys_post p
|
|
||||||
left join sys_user_post up on up.post_id = p.post_id
|
|
||||||
left join sys_user u on u.user_id = up.user_id
|
|
||||||
where u.user_id = #{userId}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="selectPostsByUserName" parameterType="String" resultMap="SysPostResult">
|
|
||||||
select p.post_id, p.post_name, p.post_code
|
|
||||||
from sys_post p
|
|
||||||
left join sys_user_post up on up.post_id = p.post_id
|
|
||||||
left join sys_user u on u.user_id = up.user_id
|
|
||||||
where u.user_name = #{userName}
|
|
||||||
</select>
|
|
||||||
|
|
||||||
</mapper>
|
|
@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<!DOCTYPE mapper
|
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="org.dromara.system.mapper.SysUserPostMapper">
|
|
||||||
|
|
||||||
</mapper>
|
|
Loading…
x
Reference in New Issue
Block a user