SysPostServiceImpl.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. package com.ruoyi.system.service.impl;
  2. import cn.hutool.core.lang.Validator;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  6. import com.ruoyi.common.constant.UserConstants;
  7. import com.ruoyi.common.exception.CustomException;
  8. import com.ruoyi.system.domain.SysPost;
  9. import com.ruoyi.system.domain.SysUserPost;
  10. import com.ruoyi.system.mapper.SysPostMapper;
  11. import com.ruoyi.system.mapper.SysUserPostMapper;
  12. import com.ruoyi.system.service.ISysPostService;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.Arrays;
  16. import java.util.List;
  17. /**
  18. * 岗位信息 服务层处理
  19. *
  20. * @author ruoyi
  21. */
  22. @Service
  23. public class SysPostServiceImpl extends ServiceImpl<SysPostMapper, SysPost> implements ISysPostService {
  24. @Autowired
  25. private SysUserPostMapper userPostMapper;
  26. /**
  27. * 查询岗位信息集合
  28. *
  29. * @param post 岗位信息
  30. * @return 岗位信息集合
  31. */
  32. @Override
  33. public List<SysPost> selectPostList(SysPost post) {
  34. return list(new LambdaQueryWrapper<SysPost>()
  35. .like(StrUtil.isNotBlank(post.getPostCode()), SysPost::getPostCode, post.getPostCode())
  36. .eq(StrUtil.isNotBlank(post.getStatus()), SysPost::getStatus, post.getStatus())
  37. .like(StrUtil.isNotBlank(post.getPostName()), SysPost::getPostName, post.getPostName()));
  38. }
  39. /**
  40. * 查询所有岗位
  41. *
  42. * @return 岗位列表
  43. */
  44. @Override
  45. public List<SysPost> selectPostAll() {
  46. return list();
  47. }
  48. /**
  49. * 通过岗位ID查询岗位信息
  50. *
  51. * @param postId 岗位ID
  52. * @return 角色对象信息
  53. */
  54. @Override
  55. public SysPost selectPostById(Long postId) {
  56. return getById(postId);
  57. }
  58. /**
  59. * 根据用户ID获取岗位选择框列表
  60. *
  61. * @param userId 用户ID
  62. * @return 选中岗位ID列表
  63. */
  64. @Override
  65. public List<Integer> selectPostListByUserId(Long userId) {
  66. return baseMapper.selectPostListByUserId(userId);
  67. }
  68. /**
  69. * 校验岗位名称是否唯一
  70. *
  71. * @param post 岗位信息
  72. * @return 结果
  73. */
  74. @Override
  75. public String checkPostNameUnique(SysPost post) {
  76. Long postId = Validator.isNull(post.getPostId()) ? -1L : post.getPostId();
  77. SysPost info = getOne(new LambdaQueryWrapper<SysPost>()
  78. .eq(SysPost::getPostName, post.getPostName()).last("limit 1"));
  79. if (Validator.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) {
  80. return UserConstants.NOT_UNIQUE;
  81. }
  82. return UserConstants.UNIQUE;
  83. }
  84. /**
  85. * 校验岗位编码是否唯一
  86. *
  87. * @param post 岗位信息
  88. * @return 结果
  89. */
  90. @Override
  91. public String checkPostCodeUnique(SysPost post) {
  92. Long postId = Validator.isNull(post.getPostId()) ? -1L : post.getPostId();
  93. SysPost info = getOne(new LambdaQueryWrapper<SysPost>()
  94. .eq(SysPost::getPostCode, post.getPostCode()).last("limit 1"));
  95. if (Validator.isNotNull(info) && info.getPostId().longValue() != postId.longValue()) {
  96. return UserConstants.NOT_UNIQUE;
  97. }
  98. return UserConstants.UNIQUE;
  99. }
  100. /**
  101. * 通过岗位ID查询岗位使用数量
  102. *
  103. * @param postId 岗位ID
  104. * @return 结果
  105. */
  106. @Override
  107. public int countUserPostById(Long postId) {
  108. return userPostMapper.selectCount(new LambdaQueryWrapper<SysUserPost>().eq(SysUserPost::getPostId,postId));
  109. }
  110. /**
  111. * 删除岗位信息
  112. *
  113. * @param postId 岗位ID
  114. * @return 结果
  115. */
  116. @Override
  117. public int deletePostById(Long postId) {
  118. return baseMapper.deleteById(postId);
  119. }
  120. /**
  121. * 批量删除岗位信息
  122. *
  123. * @param postIds 需要删除的岗位ID
  124. * @return 结果
  125. * @throws Exception 异常
  126. */
  127. @Override
  128. public int deletePostByIds(Long[] postIds) {
  129. for (Long postId : postIds) {
  130. SysPost post = selectPostById(postId);
  131. if (countUserPostById(postId) > 0) {
  132. throw new CustomException(String.format("%1$s已分配,不能删除", post.getPostName()));
  133. }
  134. }
  135. return baseMapper.deleteBatchIds(Arrays.asList(postIds));
  136. }
  137. /**
  138. * 新增保存岗位信息
  139. *
  140. * @param post 岗位信息
  141. * @return 结果
  142. */
  143. @Override
  144. public int insertPost(SysPost post) {
  145. return baseMapper.insert(post);
  146. }
  147. /**
  148. * 修改保存岗位信息
  149. *
  150. * @param post 岗位信息
  151. * @return 结果
  152. */
  153. @Override
  154. public int updatePost(SysPost post) {
  155. return baseMapper.updateById(post);
  156. }
  157. }