SysPostServiceImpl.java 5.5 KB

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