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