SysProjectServiceImpl.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. package com.takai.system.service.impl;
  2. import com.takai.common.core.domain.entity.SysUser;
  3. import com.takai.common.enums.AppTypeEnum;
  4. import com.takai.common.enums.ProjectTypeEnum;
  5. import com.takai.common.utils.DateUtils;
  6. import com.takai.common.utils.SecurityUtils;
  7. import com.takai.common.utils.SnowflakeDigitGenerator;
  8. import com.takai.common.utils.StringUtils;
  9. import com.takai.system.domain.ProjectApplication;
  10. import com.takai.system.domain.SysProject;
  11. import com.takai.system.domain.SysProjectApp;
  12. import com.takai.system.domain.SysProjectStaff;
  13. import com.takai.system.mapper.SysProjectAppMapper;
  14. import com.takai.system.mapper.SysProjectMapper;
  15. import com.takai.system.mapper.SysProjectStaffMapper;
  16. import com.takai.system.service.ISysProjectService;
  17. import lombok.extern.slf4j.Slf4j;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import java.util.*;
  21. import java.util.stream.Collectors;
  22. /**
  23. * 【请填写功能名称】Service业务层处理
  24. *
  25. * @author takai
  26. * @date 2025-05-28
  27. */
  28. @Slf4j
  29. @Service
  30. public class SysProjectServiceImpl implements ISysProjectService
  31. {
  32. @Autowired
  33. private SysProjectMapper sysProjectMapper;
  34. @Autowired
  35. private SysProjectAppMapper sysProjectAppMapper;
  36. @Autowired
  37. private SysProjectStaffMapper sysProjectStaffMapper;
  38. /**
  39. * 查询【请填写功能名称】
  40. *
  41. * @param projectId 【请填写功能名称】主键
  42. * @return 【请填写功能名称】
  43. */
  44. @Override
  45. public SysProject selectSysProjectByProjectId(String projectId)
  46. {
  47. SysProject vo = sysProjectMapper.selectSysProjectByProjectId(projectId);
  48. if(vo!= null){
  49. SysProjectApp params = new SysProjectApp();
  50. params.setProjectId(projectId);
  51. List<SysProjectApp> sysProjectApps = sysProjectAppMapper.selectSysProjectAppList(params);
  52. List<String> appIds = new ArrayList<>();
  53. for (SysProjectApp sysProjectApp : sysProjectApps){
  54. appIds.add(sysProjectApp.getAppId());
  55. }
  56. vo.setAppId(appIds.toArray(new String[appIds.size()]));
  57. }
  58. return vo;
  59. }
  60. /**
  61. * 查询【请填写功能名称】
  62. *
  63. * @param projectPid 【请填写功能名称】主键
  64. * @return 【请填写功能名称】
  65. */
  66. @Override
  67. public SysProject selectSysProjectByProjectPid(String projectPid)
  68. {
  69. return sysProjectMapper.selectSysProjectByProjectPid(projectPid);
  70. }
  71. /**
  72. * 查询【请填写功能名称】列表
  73. *
  74. * @param sysProject 【请填写功能名称】
  75. * @return 【请填写功能名称】
  76. */
  77. @Override
  78. public List<SysProject> selectSysProjectList(SysProject sysProject)
  79. {
  80. //管理员 获取所有项目
  81. log.info("selectSysProjectList:SecurityUtils.getLoginUser()",SecurityUtils.getLoginUser());
  82. SysUser loginUser = SecurityUtils.getLoginUser().getUser();
  83. Map<String,Object> userParams = new HashMap<>();
  84. userParams.put("userId",loginUser.getUserId());
  85. log.info("selectSysProjectList:userId",loginUser.getUserId());
  86. if(loginUser.getRoles().stream().anyMatch(role -> role.getRoleId() == 1)) {
  87. log.info("selectSysProjectList:isAdmin",true);
  88. userParams.put("isAdmin", true);
  89. } else {
  90. log.info("selectSysProjectList:isAdmin",false);
  91. userParams.put("isAdmin", false);
  92. }
  93. if(sysProject == null){
  94. sysProject = new SysProject();
  95. }
  96. sysProject.setParams(userParams);
  97. List<SysProject> list = sysProjectMapper.selectSysProjectList(sysProject);
  98. for (SysProject sysProjects : list){
  99. if(sysProjects.getSourceFrom() != null) {
  100. if(ProjectTypeEnum.HJL.getClientId().equals(sysProjects.getSourceFrom())) {
  101. sysProjects.setSourceFromName(ProjectTypeEnum.HJL.getInfo());
  102. } else if (ProjectTypeEnum.HXG.getClientId().equals(sysProjects.getSourceFrom())) {
  103. sysProjects.setSourceFromName(ProjectTypeEnum.HXG.getInfo());
  104. }
  105. }
  106. SysProjectApp params = new SysProjectApp();
  107. params.setProjectId(String.valueOf(sysProjects.getProjectId()));
  108. List<ProjectApplication> sysProjectApps = sysProjectAppMapper.selectSysProjectApplicationList(params);
  109. List<String> names = new ArrayList<>();
  110. for (ProjectApplication sysProjectApp : sysProjectApps){
  111. if(sysProjectApp != null) {
  112. names.add(sysProjectApp.getAppName());
  113. }
  114. }
  115. sysProjects.setName(names.toArray(new String[names.size()]));
  116. sysProjects.setApplications(sysProjectApps);
  117. }
  118. return list;
  119. }
  120. /**
  121. * 新增【请填写功能名称】
  122. *
  123. * @param sysProject 【请填写功能名称】
  124. * @return 结果
  125. */
  126. @Override
  127. public int insertSysProject(SysProject sysProject)
  128. {
  129. if(StringUtils.isEmpty(sysProject.getProjectPid())) {
  130. SnowflakeDigitGenerator snowflakeDigitGenerator = new SnowflakeDigitGenerator(1, 1);
  131. long projectPId = snowflakeDigitGenerator.nextId();
  132. sysProject.setProjectPid(String.valueOf(projectPId));
  133. }
  134. sysProject.setCreateTime(DateUtils.getNowDate());
  135. int i = sysProjectMapper.insertSysProject(sysProject);
  136. if(i > 0 && sysProject.getAppId() != null){
  137. for (String appId : sysProject.getAppId()){
  138. SysProjectApp sysProjectApp = new SysProjectApp();
  139. sysProjectApp.setProjectId(String.valueOf(sysProject.getProjectId()));
  140. sysProjectApp.setAppId(appId);
  141. sysProjectAppMapper.insertSysProjectApp(sysProjectApp);
  142. }
  143. }
  144. return i;
  145. }
  146. /**
  147. * 修改【请填写功能名称】
  148. *
  149. * @param sysProject 【请填写功能名称】
  150. * @return 结果
  151. */
  152. @Override
  153. public int updateSysProject(SysProject sysProject)
  154. {
  155. sysProject.setUpdateTime(DateUtils.getNowDate());
  156. int i = sysProjectMapper.updateSysProject(sysProject);
  157. if(i > 0){
  158. int successI = sysProjectAppMapper.deleteSysProjectAppByProjectId(String.valueOf(sysProject.getProjectId()));
  159. if(successI > 0){
  160. for (String appId : sysProject.getAppId()){
  161. SysProjectApp sysProjectApp = new SysProjectApp();
  162. sysProjectApp.setProjectId(String.valueOf(sysProject.getProjectId()));
  163. sysProjectApp.setAppId(appId);
  164. sysProjectAppMapper.insertSysProjectApp(sysProjectApp);
  165. }
  166. }
  167. }
  168. return i;
  169. }
  170. /**
  171. * 批量删除【请填写功能名称】
  172. *
  173. * @param projectIds 需要删除的【请填写功能名称】主键
  174. * @return 结果
  175. */
  176. @Override
  177. public int deleteSysProjectByProjectIds(String[] projectIds)
  178. {
  179. List<SysProject> projects = new ArrayList<>();
  180. for(String projectId:projectIds) {
  181. SysProject sysProject = sysProjectMapper.selectSysProjectByProjectId(projectId);
  182. projects.add(sysProject);
  183. }
  184. List<String> projectPids = projects.stream()
  185. .filter(Objects::nonNull)
  186. .map(SysProject::getProjectPid)
  187. .collect(Collectors.toList());
  188. int i = sysProjectMapper.deleteSysProjectByProjectIds(projectIds);
  189. if(i > 0){
  190. sysProjectAppMapper.deleteSysProjectAppByProjectIds(projectIds);
  191. sysProjectStaffMapper.deleteSysProjectStaffByProjectPids(projectPids);
  192. }
  193. return i;
  194. }
  195. /**
  196. * 删除【请填写功能名称】信息
  197. *
  198. * @param projectId 【请填写功能名称】主键
  199. * @return 结果
  200. */
  201. @Override
  202. public int deleteSysProjectByProjectId(String projectId, String appId)
  203. {
  204. return sysProjectMapper.deleteSysProjectByProjectId(projectId);
  205. }
  206. }