SysSystemServiceImpl.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. package com.jzg.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.convert.Convert;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.jzg.commons.entity.enums.YesNoEnum;
  8. import com.jzg.commons.entity.po.*;
  9. import com.jzg.commons.entity.vo.SysSystemPermsVo;
  10. import com.jzg.commons.entity.vo.SysSystemVo;
  11. import com.jzg.commons.entity.vo.UpAndDownVo;
  12. import com.jzg.commons.util.StringUtils;
  13. import com.jzg.commons.util.idgen.IdGenerate;
  14. import com.jzg.mapper.*;
  15. import com.jzg.service.SysSystemService;
  16. import com.jzg.commons.util.PasswordUtils;
  17. import com.jzg.util.MinioUtils;
  18. import org.springframework.beans.BeanUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.beans.factory.annotation.Value;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import java.util.ArrayList;
  24. import java.util.Collections;
  25. import java.util.List;
  26. import java.util.stream.Collectors;
  27. /**
  28. * 租户管理表 服务层处理 sys_system
  29. *
  30. * @author dongxin
  31. */
  32. @Service
  33. public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem>
  34. implements SysSystemService {
  35. @Autowired
  36. private SysSystemPermsMapper sysSystemPermsMapper;
  37. @Autowired
  38. private SysUploadFilesMapper sysUploadFilesMapper;
  39. @Autowired
  40. private SysUserMapper sysUserMapper;
  41. @Autowired
  42. private SysRoleMapper sysRoleMapper;
  43. @Autowired
  44. private SysUserRoleMapper sysUserRoleMapper;
  45. @Autowired
  46. private SysDeptMapper sysDeptMapper;
  47. @Autowired
  48. private SysUserJzgInfoMapper sysUserJzgInfoMapper;
  49. @Autowired
  50. private MinioUtils minioUtils;
  51. @Value("${minio.bucket-name}")
  52. private String bucketName;
  53. @Override
  54. public boolean updatePerms(SysSystemPermsVo sysSystemPermsVo) {
  55. List<SysSystemPerms> perms = new ArrayList<>();
  56. sysSystemPermsVo.getPerms().forEach(per->{
  57. SysSystemPerms sysSystemPerms = new SysSystemPerms();
  58. sysSystemPerms.setId(IdGenerate.nextId());
  59. sysSystemPerms.setSystemCode(sysSystemPerms.getSystemCode());
  60. sysSystemPerms.setPermsId(per.getPermsId());
  61. sysSystemPerms.setPerms(per.getPerms());
  62. perms.add(sysSystemPerms);
  63. });
  64. return !sysSystemPermsMapper.insert(perms).isEmpty();
  65. }
  66. @Override
  67. public List<SysSystemPerms> getSystemPerms(String systemCode) {
  68. List<SysSystemPerms> sysSystemPerms = sysSystemPermsMapper.selectList(new LambdaQueryWrapper<SysSystemPerms>()
  69. .eq(SysSystemPerms::getSystemCode, systemCode));
  70. return sysSystemPerms;
  71. }
  72. /**
  73. * 根据SystemCode 查询 System对象
  74. * @param systemCode
  75. * @return
  76. */
  77. @Override
  78. public SysSystem getBySystemCode(String systemCode ) {
  79. return this.getOne(new LambdaQueryWrapper<SysSystem>()
  80. .eq(SysSystem::getSysCode, systemCode));
  81. }
  82. /**
  83. * 根据systemCode 判断是否存在数据
  84. * @param systemCode
  85. * @return
  86. */
  87. @Override
  88. public boolean isExistsCode(String systemCode ,String id) {
  89. long count = this.count(new LambdaQueryWrapper<SysSystem>()
  90. .eq(SysSystem::getSysCode, systemCode)
  91. .ne(StringUtils.isNotNull(id),SysSystem::getId, id)
  92. );
  93. return count > 0;
  94. }
  95. @Override
  96. public boolean isExistsName(String systemName, String id) {
  97. long count = this.count(new LambdaQueryWrapper<SysSystem>()
  98. .eq(SysSystem::getSysCode, systemName)
  99. .ne(StringUtils.isNotNull(id),SysSystem::getId, id)
  100. );
  101. return count > 0;
  102. }
  103. @Override
  104. public Page<SysSystem> queryPage(Page page, SysSystemVo sysSystemVo) {
  105. LambdaQueryWrapper<SysSystem> wrapper = new LambdaQueryWrapper<>();
  106. wrapper.eq(StringUtils.isNotEmpty(sysSystemVo.getProvinceId()),
  107. SysSystem::getProvinceId, sysSystemVo.getProvinceId())
  108. .eq(StringUtils.isNotEmpty(sysSystemVo.getCityId()),
  109. SysSystem::getCityId, sysSystemVo.getCityId())
  110. .eq(StringUtils.isNotEmpty(sysSystemVo.getDistrictId()),
  111. SysSystem::getDistrictId, sysSystemVo.getDistrictId())
  112. .eq(StringUtils.isNotNull(sysSystemVo.getSysType()),
  113. SysSystem::getSysType, sysSystemVo.getSysType())
  114. .eq(StringUtils.isNotEmpty(sysSystemVo.getSearchValue()),
  115. SysSystem::getSysName, sysSystemVo.getSearchValue()).or()
  116. .eq(StringUtils.isNotEmpty(sysSystemVo.getSearchValue()),
  117. SysSystem::getSysCode, sysSystemVo.getSearchValue())
  118. .eq(StringUtils.isNotEmpty(sysSystemVo.getContactValue()),
  119. SysSystem::getContact, sysSystemVo.getContactValue()).or()
  120. .eq(StringUtils.isNotEmpty(sysSystemVo.getContactValue()),
  121. SysSystem::getTelephone, sysSystemVo.getContactValue())
  122. .eq(SysSystem::getIsTenant, 1)
  123. .ne(SysSystem::getParentId, 0);
  124. Page<SysSystem> sysPage = page(page, wrapper);
  125. List<SysSystem> sysSystemList = sysPage.getRecords();
  126. if(CollUtil.isNotEmpty(sysSystemList)){
  127. sysSystemList.forEach(sysSystem->{
  128. SysUploadFiles files = sysUploadFilesMapper.selectById(sysSystem.getSysIcon());
  129. if(StringUtils.isNotNull(files)){
  130. sysSystem.setSysIconUrl(minioUtils.getPresignedObjectUrl(bucketName,files.getFileName()));
  131. }
  132. });
  133. }
  134. return sysPage;
  135. }
  136. @Override
  137. public SysSystem queryById(String sysId) {
  138. SysSystem system = this.getById(sysId);
  139. if(StringUtils.isNotEmpty(system.getSysIcon())){
  140. SysUploadFiles files = sysUploadFilesMapper.selectById(system.getSysIcon());
  141. if(StringUtils.isNotNull(files)){
  142. system.setSysIconUrl(minioUtils.getPresignedObjectUrl(bucketName,files.getFileName()));
  143. }
  144. }
  145. SysUser user = sysUserMapper.selectById(system.getUserId());
  146. system.setUserName(user.getUsername());
  147. system.setUserAccount(user.getMobile());
  148. return system;
  149. }
  150. @Override
  151. @Transactional(rollbackFor = Exception.class)
  152. public void sysAdd(SysSystemVo sysSystemVo) {
  153. SysSystem sysSystem = new SysSystem();
  154. BeanUtils.copyProperties(sysSystemVo, sysSystem);
  155. sysSystem.setIsTenant(1);
  156. sysSystem.setAvailable(1);
  157. sysSystem.setParentId("1");
  158. this.save(sysSystem);
  159. /** 初始化租户管理员信息 */
  160. // 新增管理员用户
  161. SysUser user = new SysUser(sysSystemVo);
  162. sysUserMapper.insert(user);
  163. // 新增用户机构关联信息
  164. SysUserJzgInfo info = new SysUserJzgInfo();
  165. info.setUserId(user.getId());
  166. info.setDeptId("");// 后期放最顶级的机构
  167. sysUserJzgInfoMapper.insert(info);
  168. // 新增管理员角色
  169. SysRole role = new SysRole(sysSystem.getSysCode());
  170. sysRoleMapper.insert(role);
  171. // 关联用户角色
  172. SysUserRole userRole = new SysUserRole();
  173. userRole.setUserId(user.getId());
  174. userRole.setRoleId(role.getId());
  175. sysUserRoleMapper.insert(userRole);
  176. // 租户绑定管理员信息
  177. sysSystem.setUserId(user.getId());
  178. this.updateById(sysSystem);
  179. }
  180. @Override
  181. @Transactional(rollbackFor = Exception.class)
  182. public void sysEdit(SysSystemVo sysSystemVo) {
  183. SysSystem sysSystem = new SysSystem();
  184. BeanUtils.copyProperties(sysSystemVo, sysSystem);
  185. updateById(sysSystem);
  186. SysSystem system = getById(sysSystem.getId());
  187. // 修改管理员信息
  188. SysUser user = sysUserMapper.selectById(system.getUserId());
  189. user.setUsername(sysSystemVo.getUserName());
  190. String encryptedPassword = PasswordUtils.encode(sysSystemVo.getPassword(),user.getSalt());
  191. user.setPassword(encryptedPassword);
  192. user.setMobile(sysSystemVo.getUserAccount());
  193. sysUserMapper.updateById(user);
  194. }
  195. @Override
  196. @Transactional(rollbackFor = Exception.class)
  197. public void upAndDown(UpAndDownVo upAndDownVo) {
  198. if(YesNoEnum.YES.equals(upAndDownVo.getOpType())) {
  199. upAndDownVo.getIds().forEach(id->{
  200. reDeploy(Convert.toStr(id));
  201. });
  202. } else {
  203. upAndDownVo.getIds().forEach(id->{
  204. unDeploy(Convert.toStr(id));
  205. });
  206. }
  207. }
  208. @Override
  209. public void unDeploy(String id) {
  210. SysSystem sysSystem = new SysSystem();
  211. sysSystem.setId(id);
  212. sysSystem.setAvailable(YesNoEnum.NO.getCode());
  213. baseMapper.updateById(sysSystem);
  214. }
  215. @Override
  216. public void reDeploy(String id) {
  217. SysSystem sysSystem = new SysSystem();
  218. sysSystem.setId(id);
  219. sysSystem.setAvailable(YesNoEnum.YES.getCode());
  220. baseMapper.updateById(sysSystem);
  221. }
  222. @Override
  223. @Transactional(rollbackFor = Exception.class)
  224. public boolean sysDelete(SysSystemVo sysSystemVo) {
  225. if(baseMapper.deleteById(sysSystemVo.getId()) > 0){
  226. return true;
  227. }
  228. return false;
  229. }
  230. @Override
  231. public List<String> sysDeleteValidDept(SysSystemVo sysSystemVo) {
  232. List<String> deptIdList = sysDeptMapper.selectList(new LambdaQueryWrapper<SysDept>()
  233. .select(SysDept::getId)
  234. .eq(SysDept::getSystemCode, sysSystemVo.getSysCode())).stream()
  235. .map(SysDept::getId).collect(Collectors.toList());
  236. return deptIdList;
  237. }
  238. @Override
  239. public boolean sysDeleteValidUser(List<String> ids) {
  240. Long count = sysUserJzgInfoMapper.selectCount(new LambdaQueryWrapper<SysUserJzgInfo>()
  241. .in(SysUserJzgInfo::getUserId, ids));
  242. if(count <= 0){
  243. return true;
  244. }
  245. return false;
  246. }
  247. }