SysPostServiceImpl.java 5.4 KB

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