SysPostServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. package com.takai.system.service.impl;
  2. import java.util.List;
  3. import com.takai.common.core.domain.entity.SysUser;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Service;
  6. import com.takai.common.constant.UserConstants;
  7. import com.takai.common.exception.ServiceException;
  8. import com.takai.common.utils.StringUtils;
  9. import com.takai.system.domain.SysPost;
  10. import com.takai.system.mapper.SysPostMapper;
  11. import com.takai.system.mapper.SysUserPostMapper;
  12. import com.takai.system.service.ISysPostService;
  13. import org.springframework.transaction.annotation.Transactional;
  14. /**
  15. * 岗位信息 服务层处理
  16. *
  17. * @author takai
  18. */
  19. @Service
  20. public class SysPostServiceImpl implements ISysPostService
  21. {
  22. @Autowired
  23. private SysPostMapper postMapper;
  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. {
  35. return postMapper.selectPostList(post);
  36. }
  37. /**
  38. * 查询所有岗位
  39. *
  40. * @return 岗位列表
  41. */
  42. @Override
  43. public List<SysPost> selectPostAll()
  44. {
  45. return postMapper.selectPostAll();
  46. }
  47. /**
  48. * 通过岗位ID查询岗位信息
  49. *
  50. * @param postId 岗位ID
  51. * @return 角色对象信息
  52. */
  53. @Override
  54. public SysPost selectPostById(Long postId)
  55. {
  56. return postMapper.selectPostById(postId);
  57. }
  58. /**
  59. * 根据用户ID获取岗位选择框列表
  60. *
  61. * @param userId 用户ID
  62. * @return 选中岗位ID列表
  63. */
  64. @Override
  65. public List<Long> selectPostListByUserId(Long userId)
  66. {
  67. return postMapper.selectPostListByUserId(userId);
  68. }
  69. /**
  70. * 校验岗位名称是否唯一
  71. *
  72. * @param post 岗位信息
  73. * @return 结果
  74. */
  75. @Override
  76. public boolean checkPostNameUnique(SysPost post)
  77. {
  78. Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId();
  79. SysPost info = postMapper.checkPostNameUnique(post.getPostName());
  80. if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue())
  81. {
  82. return UserConstants.NOT_UNIQUE;
  83. }
  84. return UserConstants.UNIQUE;
  85. }
  86. /**
  87. * 校验岗位编码是否唯一
  88. *
  89. * @param post 岗位信息
  90. * @return 结果
  91. */
  92. @Override
  93. public boolean checkPostCodeUnique(SysPost post)
  94. {
  95. Long postId = StringUtils.isNull(post.getPostId()) ? -1L : post.getPostId();
  96. SysPost info = postMapper.checkPostCodeUnique(post.getPostCode());
  97. if (StringUtils.isNotNull(info) && info.getPostId().longValue() != postId.longValue())
  98. {
  99. return UserConstants.NOT_UNIQUE;
  100. }
  101. return UserConstants.UNIQUE;
  102. }
  103. /**
  104. * 通过岗位ID查询岗位使用数量
  105. *
  106. * @param postId 岗位ID
  107. * @return 结果
  108. */
  109. @Override
  110. public int countUserPostById(Long postId)
  111. {
  112. return userPostMapper.countUserPostById(postId);
  113. }
  114. /**
  115. * 删除岗位信息
  116. *
  117. * @param postId 岗位ID
  118. * @return 结果
  119. */
  120. @Override
  121. public int deletePostById(Long postId)
  122. {
  123. return postMapper.deletePostById(postId);
  124. }
  125. /**
  126. * 批量删除岗位信息
  127. *
  128. * @param postIds 需要删除的岗位ID
  129. * @return 结果
  130. */
  131. @Override
  132. public int deletePostByIds(Long[] postIds)
  133. {
  134. for (Long postId : postIds)
  135. {
  136. SysPost post = selectPostById(postId);
  137. if (countUserPostById(postId) > 0)
  138. {
  139. throw new ServiceException(String.format("%1$s已分配,不能删除", post.getPostName()));
  140. }
  141. }
  142. return postMapper.deletePostByIds(postIds);
  143. }
  144. /**
  145. * 新增保存岗位信息
  146. *
  147. * @param post 岗位信息
  148. * @return 结果
  149. */
  150. @Override
  151. public int insertPost(SysPost post)
  152. {
  153. return postMapper.insertPost(post);
  154. }
  155. /**
  156. * 修改保存岗位信息
  157. *
  158. * @param post 岗位信息
  159. * @return 结果
  160. */
  161. @Override
  162. public int updatePost(SysPost post)
  163. {
  164. return postMapper.updatePost(post);
  165. }
  166. /**
  167. * 批量新增岗位信息
  168. *
  169. * @param postList 岗位信息
  170. * @return 结果
  171. */
  172. @Override
  173. @Transactional
  174. public int batchPost(List<SysPost> postList)
  175. {
  176. int rows = 0;
  177. for(SysPost post:postList) {
  178. if(!"0".equals(post.getStatus())) {
  179. deletePostById(post.getPostId());
  180. }
  181. int cnt = postMapper.checkPostExist(post.getPostCode());
  182. if(cnt > 0) {
  183. updatePost(post);
  184. rows++;
  185. } else {
  186. insertPost(post);
  187. rows++;
  188. }
  189. }
  190. return rows;
  191. }
  192. }