Bladeren bron

算法平台

LingxinMeng 2 jaren geleden
bovenliggende
commit
38ff7e4ef0
34 gewijzigde bestanden met toevoegingen van 597 en 121 verwijderingen
  1. 2 0
      api-common/src/main/java/api/common/pojo/constants/DictConstants.java
  2. 4 3
      simulation-resource-common/src/main/java/com/css/simulation/resource/common/acl/algorithm/AlgorithmExpandAcl.java
  3. 1 1
      simulation-resource-common/src/main/java/com/css/simulation/resource/common/infrastructure/configuration/alg_platform/ClientDetail.java
  4. 0 1
      simulation-resource-common/src/main/java/com/css/simulation/resource/common/infrastructure/configuration/oauth/OauthParameter.java
  5. 11 1
      simulation-resource-monitor/pom.xml
  6. 30 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/entity/AlgorithmExpandAclEntity.java
  7. 16 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/entity/AlgorithmExpandConfigurationAclEntity.java
  8. 12 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/AlgorithmExpandAclService.java
  9. 3 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/ProjectAclService.java
  10. 72 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/impl/AlgorithmExpandAclServiceImpl.java
  11. 3 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/impl/ProjectServiceFallback.java
  12. 2 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/api/controller/ProjectTaskController.java
  13. 5 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/application/service/AlgorithmExpandApplicationService.java
  14. 42 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/application/service/impl/AlgorithmExpandApplicationServiceImpl.java
  15. 5 5
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/domain/SystemServerDomainService.java
  16. 25 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/entity/AlgorithmExpandEntity.java
  17. 2 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/entity/GeneralEntity.java
  18. 19 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/AlgorithmExpandMapper.java
  19. 3 3
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/ScenePackageSublistMapper.java
  20. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/SystemServerMapper.java
  21. 106 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/redis/CustomRedisClient.java
  22. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/redis/RedisTemplateConfiguration.java
  23. 2 2
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/fs/minio/MinioConfiguration.java
  24. 1 1
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/fs/minio/MinioUtil.java
  25. 26 0
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/AlgorithmExpandScheduler.java
  26. 6 6
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/ProjectScheduler.java
  27. 20 31
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/ServerScheduler.java
  28. 0 7
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/mappper/AlgorithmExpandMapper.java
  29. 0 9
      simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/scheduler/AlgorithmExpandScheduler.java
  30. 52 0
      simulation-resource-monitor/src/main/resources/mysql/mapper/AlgorithmExpandMapper.xml
  31. 84 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/db/redis/RedisTemplateConfiguration.java
  32. 17 7
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/api/controller/system_manage/account_manage/RoleController.java
  33. 4 3
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/api/controller/system_manage/account_manage/UserController.java
  34. 20 31
      simulation-resource-server/src/main/java/com/css/simulation/resource/server/application/impl/AlgorithmServiceImpl.java

+ 2 - 0
api-common/src/main/java/api/common/pojo/constants/DictConstants.java

@@ -3,6 +3,8 @@ package api.common.pojo.constants;
 @SuppressWarnings("all")
 public class DictConstants {
 
+    public static final String ALGORITHM_PLATFORM_TOKEN_CACHE_KEY="ALGPLATFORM:TOKEN";
+
     public static final String ALGORITHM_EXPAND_STATUS_NOT_TESTED = "1";
     public static final String ALGORITHM_EXPAND_STATUS_TESTING = "2";
     public static final String ALGORITHM_EXPAND_STATUS_TESTED = "3";

+ 4 - 3
simulation-resource-common/src/main/java/com/css/simulation/resource/common/acl/algorithm/AlgorithmExpandAcl.java

@@ -1,12 +1,13 @@
 package com.css.simulation.resource.common.acl.algorithm;
 
 import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.constants.DictConstants;
 import api.common.pojo.param.RedisParameter;
 import api.common.util.HttpUtil;
 import api.common.util.JsonUtil;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.common.api.controller.RedisController;
-import com.css.simulation.resource.common.infrastructure.configuration.algPlatform.ClientDetail;
+import com.css.simulation.resource.common.infrastructure.configuration.alg_platform.ClientDetail;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.SneakyThrows;
@@ -17,7 +18,6 @@ import javax.annotation.Resource;
 
 @Service
 public class AlgorithmExpandAcl {
-    private static final String TOKEN_KEY = "ALGPLATFORM:TOKEN";
 
     @Resource
     private RedisController redisController;
@@ -78,11 +78,12 @@ public class AlgorithmExpandAcl {
 
     /**
      * 从缓存中获取token,没有才发送请求
+     *
      * @return
      */
     private String getToken() {
         RedisParameter redisParameter = new RedisParameter();
-        redisParameter.setKey(TOKEN_KEY);
+        redisParameter.setKey(DictConstants.ALGORITHM_PLATFORM_TOKEN_CACHE_KEY);
         ResponseBodyVO<String> responseBodyVO = redisController.get(redisParameter);
         String token = responseBodyVO.getInfo();
         if (ObjectUtil.isNull(token)) {//token失效重新获取

+ 1 - 1
simulation-resource-common/src/main/java/com/css/simulation/resource/common/infrastructure/configuration/algPlatform/ClientDetail.java → simulation-resource-common/src/main/java/com/css/simulation/resource/common/infrastructure/configuration/alg_platform/ClientDetail.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.common.infrastructure.configuration.algPlatform;
+package com.css.simulation.resource.common.infrastructure.configuration.alg_platform;
 
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;

+ 0 - 1
simulation-resource-common/src/main/java/com/css/simulation/resource/common/infrastructure/configuration/oauth/OauthParameter.java

@@ -8,7 +8,6 @@ import org.springframework.stereotype.Component;
 @Component
 @ConfigurationProperties(prefix="oauth")
 public class OauthParameter {
-
     private String resourceId;
     private String checkTokenEndpointUrl;
     private String clientId;

+ 11 - 1
simulation-resource-monitor/pom.xml

@@ -16,6 +16,16 @@
         <maven.compiler.target>8</maven.compiler.target>
     </properties>
     <dependencies>
+        <!-- 缓存 - 开始-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
+        <!-- 缓存 - 结束-->
 
         <!-- minio - 开始 -->
         <dependency>
@@ -125,4 +135,4 @@
         </plugins>
     </build>
 
-</project>
+</project>

+ 30 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/entity/AlgorithmExpandAclEntity.java

@@ -0,0 +1,30 @@
+package com.css.simulation.resource.monitor.acl.entity;
+
+import com.fasterxml.jackson.annotation.JsonAlias;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class AlgorithmExpandAclEntity {
+    @JsonAlias({"id"})
+    private String id = "";
+    @JsonAlias({"algorithmId"})
+    private String algorithmId = "";
+    @JsonAlias({"algorithmName"})
+    private String algorithmName = "";
+    @JsonAlias({"description"})
+    private String description = "";
+    @JsonAlias({"algorithmType"})
+    private String algorithmType = "";
+    @JsonAlias({"algorithmVersion", "evaluationName"})
+    private String algorithmVersion = "";
+    @JsonAlias({"team", "teamName"})
+    private String team = "";
+    @JsonAlias({"topic", "match"})
+    private String topic = "";
+}

+ 16 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/entity/AlgorithmExpandConfigurationAclEntity.java

@@ -0,0 +1,16 @@
+package com.css.simulation.resource.monitor.acl.entity;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Data
+@Configuration
+@ConfigurationProperties(prefix = "algorithm-platform")
+public class AlgorithmExpandConfigurationAclEntity {
+    private String appid;//客户端id
+    private String secret;//秘钥
+    private String tokenUri;//获取token接口
+    private String algorithmListUri;//获取列表查询接口
+    private String algorithmAddrUri;//获取算法地址接口
+}

+ 12 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/AlgorithmExpandAclService.java

@@ -0,0 +1,12 @@
+package com.css.simulation.resource.monitor.acl.service;
+
+import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandAclEntity;
+
+import java.util.List;
+
+public interface AlgorithmExpandAclService {
+
+    String getToken();
+    List<AlgorithmExpandAclEntity> getAlgorithmList();
+
+}

+ 3 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/feign/ProjectService.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/ProjectAclService.java

@@ -1,6 +1,7 @@
-package com.css.simulation.resource.monitor.feign;
+package com.css.simulation.resource.monitor.acl.service;
 
 import api.common.pojo.common.ResponseBodyVO;
+import com.css.simulation.resource.monitor.acl.service.impl.ProjectServiceFallback;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 
@@ -11,7 +12,7 @@ import java.util.Map;
         //url = "http://127.0.0.1:7003",
         path = "/simulation/resource/server",
         fallback = ProjectServiceFallback.class)
-public interface ProjectService {
+public interface ProjectAclService {
 
     @PostMapping("/monitor/createAutomaticSubProject")
     ResponseBodyVO<String> runProject(Map<String,String> projectParam);

+ 72 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/impl/AlgorithmExpandAclServiceImpl.java

@@ -0,0 +1,72 @@
+package com.css.simulation.resource.monitor.acl.service.impl;
+
+import api.common.pojo.constants.DictConstants;
+import api.common.util.HttpUtil;
+import api.common.util.JsonUtil;
+import api.common.util.ObjectUtil;
+import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandAclEntity;
+import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandConfigurationAclEntity;
+import com.css.simulation.resource.monitor.acl.service.AlgorithmExpandAclService;
+import com.css.simulation.resource.monitor.infrastructure.db.redis.CustomRedisClient;
+import com.fasterxml.jackson.databind.JsonNode;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.Duration;
+import java.util.List;
+
+@Slf4j
+@Service
+public class AlgorithmExpandAclServiceImpl implements AlgorithmExpandAclService {
+
+    @Resource
+    private AlgorithmExpandConfigurationAclEntity algorithmExpandConfigurationAclEntity;
+    @Resource
+    private CustomRedisClient customRedisClient;
+    @Resource
+
+
+    /**
+     * 从缓存中获取token,没有才发送请求
+     *
+     */
+    public String getToken() {
+        String token = customRedisClient.get(DictConstants.ALGORITHM_PLATFORM_TOKEN_CACHE_KEY);
+        if (ObjectUtil.isNull(token)) {//token失效重新获取
+            String tokenUri = algorithmExpandConfigurationAclEntity.getTokenUri();
+            String appid = algorithmExpandConfigurationAclEntity.getAppid();
+            String secret = algorithmExpandConfigurationAclEntity.getSecret();
+            String URI = tokenUri + "&appid=" + appid + "&secret=" + secret;
+            String result = HttpUtil.get(HttpUtil.getHttpClient(), HttpUtil.getRequestConfig(), URI);
+            JsonNode jsonNode = JsonUtil.readTree(result);
+            JsonNode dataNode = jsonNode.path("data");
+            if (ObjectUtil.isNotNull(dataNode)) {
+                token = dataNode.path("access_token").asText();
+                if (ObjectUtil.isNotNull(token)) {
+                    long expiresSec = dataNode.path("expires_in_sec").asLong();
+                    customRedisClient.set(DictConstants.ALGORITHM_PLATFORM_TOKEN_CACHE_KEY,token, Duration.ofSeconds(expiresSec));
+                }
+            }
+        }
+        return token;
+    }
+
+    @Override
+    public List<AlgorithmExpandAclEntity> getAlgorithmList() {
+        //取得token
+        String token = getToken();
+        if (ObjectUtil.isNull(token)) {
+           throw new RuntimeException("获取算法平台token失败。");
+        }
+        String algorithmListUri = algorithmExpandConfigurationAclEntity.getAlgorithmListUri()+ "?sort=algorithmId-desc&access_token=" + token;
+        String httpResponseString = HttpUtil.get(HttpUtil.getHttpClient(), HttpUtil.getRequestConfig(), algorithmListUri);
+        log.info("算法平台请求结果为:{}", httpResponseString);
+        final String algorithmListJson = JsonUtil.getString(httpResponseString, "data.content");
+        log.info("算法平台的算法列表JSON为:{}", algorithmListJson);
+        final List<AlgorithmExpandAclEntity> algorithmExpandAclEntities = JsonUtil.jsonToList(algorithmListJson, AlgorithmExpandAclEntity.class);
+        log.info("算法平台的算法列表为:{}", algorithmExpandAclEntities);
+        return algorithmExpandAclEntities;
+
+    }
+}

+ 3 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/feign/ProjectServiceFallback.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/acl/service/impl/ProjectServiceFallback.java

@@ -1,12 +1,13 @@
-package com.css.simulation.resource.monitor.feign;
+package com.css.simulation.resource.monitor.acl.service.impl;
 
 import api.common.pojo.common.ResponseBodyVO;
+import com.css.simulation.resource.monitor.acl.service.ProjectAclService;
 import org.springframework.stereotype.Service;
 
 import java.util.Map;
 
 @Service
-public class ProjectServiceFallback implements ProjectService{
+public class ProjectServiceFallback implements ProjectAclService {
 
     @Override
     public ResponseBodyVO<String> runProject(Map<String,String> projectParam) {

+ 2 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/controller/ProjectTaskController.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/api/controller/ProjectTaskController.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.monitor.controller;
+package com.css.simulation.resource.monitor.api.controller;
 
 import api.common.pojo.common.ResponseBodyVO;
-import com.css.simulation.resource.monitor.scheduler.ProjectScheduler;
+import com.css.simulation.resource.monitor.infrastructure.scheduler.ProjectScheduler;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;

+ 5 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/application/service/AlgorithmExpandApplicationService.java

@@ -0,0 +1,5 @@
+package com.css.simulation.resource.monitor.application.service;
+
+public interface AlgorithmExpandApplicationService {
+    void syncAlgorithmExpand();
+}

+ 42 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/application/service/impl/AlgorithmExpandApplicationServiceImpl.java

@@ -0,0 +1,42 @@
+package com.css.simulation.resource.monitor.application.service.impl;
+
+import api.common.util.CollectionUtil;
+import com.css.simulation.resource.monitor.acl.entity.AlgorithmExpandAclEntity;
+import com.css.simulation.resource.monitor.acl.service.AlgorithmExpandAclService;
+import com.css.simulation.resource.monitor.application.service.AlgorithmExpandApplicationService;
+import com.css.simulation.resource.monitor.infrastructure.db.entity.AlgorithmExpandEntity;
+import com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.AlgorithmExpandMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Slf4j
+@Service
+public class AlgorithmExpandApplicationServiceImpl implements AlgorithmExpandApplicationService {
+
+    @Resource
+    private AlgorithmExpandAclService algorithmExpandAclService;
+    @Resource
+    private AlgorithmExpandMapper algorithmExpandMapper;
+
+    @Override
+    public void syncAlgorithmExpand() {
+        //1 查询全部算法列表
+        final List<AlgorithmExpandAclEntity> algorithmExpandAclEntities = algorithmExpandAclService.getAlgorithmList();
+        if (CollectionUtil.isNotEmpty(algorithmExpandAclEntities)) {
+            //1 获取算法平台查询到的所有算法ID
+            final List<String> aclAlgorithmIds = algorithmExpandAclEntities.stream().map(AlgorithmExpandAclEntity::getAlgorithmId).collect(Collectors.toList());
+            log.info("算法平台的算法ID列表为:{}", aclAlgorithmIds);
+            List<String> infrastructureAlgorithmIds = algorithmExpandMapper.selectAlgorithmIds(AlgorithmExpandEntity.builder().build());
+            //2 仿真云存在而算法平台不存在,则将仿真云的数据删除
+            for (String infrastructureAlgorithmId : infrastructureAlgorithmIds) {
+                if (!aclAlgorithmIds.contains(infrastructureAlgorithmId)) {
+                    algorithmExpandMapper.delete(AlgorithmExpandEntity.builder().algorithmId(infrastructureAlgorithmId).build());
+                }
+            }
+        }
+    }
+}

+ 5 - 5
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/manager/SystemServerManager.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/domain/SystemServerDomainService.java

@@ -1,17 +1,17 @@
-package com.css.simulation.resource.monitor.manager;
+package com.css.simulation.resource.monitor.domain;
 
 import api.common.pojo.po.home.SystemServerPO;
-import com.css.simulation.resource.monitor.mappper.SystemServerMapper;
+import com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.SystemServerMapper;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
-import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
 
-@Component
-public class SystemServerManager {
+@Service
+public class SystemServerDomainService {
 
 
     @Resource

+ 25 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/entity/AlgorithmExpandEntity.java

@@ -0,0 +1,25 @@
+package com.css.simulation.resource.monitor.infrastructure.db.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class AlgorithmExpandEntity {
+    private String id = "";
+    private String algorithmId = "";
+    private String algorithmName = "";
+    private String description = "";
+    private String algorithmType = "";
+    private String algorithmVersion = "";
+    private String team = "";
+    private String topic = "";
+    private String status = "";
+    private List<String> algorithmIds;
+}

+ 2 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/pojo/GeneralPO.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/entity/GeneralEntity.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.pojo;
+package com.css.simulation.resource.monitor.infrastructure.db.entity;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class GeneralPO {
+public class GeneralEntity {
     private String id;
     private String osgbAddress;
     private String xodrAddress;

+ 19 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/AlgorithmExpandMapper.java

@@ -0,0 +1,19 @@
+package com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper;
+
+import com.css.simulation.resource.monitor.infrastructure.db.entity.AlgorithmExpandEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface AlgorithmExpandMapper {
+    List<AlgorithmExpandEntity> select(AlgorithmExpandEntity algorithmExpandEntity);
+
+    List<String> selectAlgorithmIds(AlgorithmExpandEntity algorithmExpandEntity);
+
+    void insert(AlgorithmExpandEntity algorithmExpandEntity);
+
+    void update(AlgorithmExpandEntity algorithmExpandEntity);
+
+    void delete(AlgorithmExpandEntity build);
+}

+ 3 - 3
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/mappper/ScenePackageSublistMapper.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/ScenePackageSublistMapper.java

@@ -1,6 +1,6 @@
-package com.css.simulation.resource.monitor.mappper;
+package com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper;
 
-import com.css.simulation.resource.monitor.pojo.GeneralPO;
+import com.css.simulation.resource.monitor.infrastructure.db.entity.GeneralEntity;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -27,7 +27,7 @@ public interface ScenePackageSublistMapper {
             "      #{item}\n" +
             "    </foreach>" +
             "</script>")
-    List<GeneralPO> selectGeneralDataNotIn(@Param("sceneGeneralizationIdList") List<String> sceneGeneralizationIdList);
+    List<GeneralEntity> selectGeneralDataNotIn(@Param("sceneGeneralizationIdList") List<String> sceneGeneralizationIdList);
 
     @Delete("delete from scene_general_data where id = #{id}}")
     void deleteById(@Param("id")String id);

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/mappper/SystemServerMapper.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/mysql/mapper/SystemServerMapper.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.mappper;
+package com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper;
 
 import api.common.pojo.po.home.SystemServerPO;
 import org.apache.ibatis.annotations.Mapper;

+ 106 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/redis/CustomRedisClient.java

@@ -0,0 +1,106 @@
+package com.css.simulation.resource.monitor.infrastructure.db.redis;
+
+import api.common.util.CollectionUtil;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.time.Duration;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+@Component
+@Slf4j
+public class CustomRedisClient {
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    public Set<String> getKeySetByPrefixAndContent(StringRedisTemplate stringRedisTemplate, String prefix, String content) {
+        final Set<String> keys = stringRedisTemplate.keys(prefix + "*");
+        if (CollectionUtil.isNotEmpty(keys)) {
+            return keys.stream().filter(key -> key.contains(content)).collect(Collectors.toSet());
+        } else {
+            return new HashSet<>();
+        }
+    }
+
+    //* -------------------------------- 基本操作 --------------------------------
+
+    public Set<String> keys(String pattern) {
+        return stringRedisTemplate.keys(pattern);
+    }
+
+    public String get(String key) {
+        return stringRedisTemplate.opsForValue().get(key);
+    }
+
+    public void set(String key, String value) {
+        stringRedisTemplate.opsForValue().set(key, value);
+    }
+
+    public void set(String key, String value, Duration duration) {
+        stringRedisTemplate.opsForValue().set(key, value, duration);
+    }
+
+    public void flushdb() {
+        Set<String> keys = stringRedisTemplate.keys("*");
+        if (keys != null && keys.size() != 0) {
+            stringRedisTemplate.delete(keys);
+        }
+    }
+
+    public void delete(String key) {
+        stringRedisTemplate.delete(key);
+    }
+
+    /**
+     * 加值
+     */
+    public void increment(String key, long number) {
+        stringRedisTemplate.opsForValue().increment(key, number);
+    }
+
+    /**
+     * 减值
+     */
+    public void decrement(String key, long number) {
+        stringRedisTemplate.opsForValue().decrement(key, number);
+    }
+
+
+    //* -------------------------------- 分布式锁 --------------------------------
+
+    /**
+     * 加锁,有阻塞
+     *
+     * @param timeout 间隔多久获取一次锁
+     * @param expire  锁的过期时间,防止程序崩溃后无法释放锁
+     */
+    @SneakyThrows
+    public void lock(String name, long timeout, long expire) {
+        Boolean success = false;
+        while (!success) {
+            success = tryLock(name, expire);
+            TimeUnit.MILLISECONDS.sleep(timeout);
+        }
+    }
+
+    /**
+     * 尝试加锁,无阻塞
+     */
+    public Boolean tryLock(String name, long expire) {
+        return stringRedisTemplate.opsForValue().setIfAbsent(name, "任意值", Duration.ofMillis(expire));
+    }
+
+    /**
+     * 解锁
+     */
+    public void unlock(String name) {
+        delete(name);
+    }
+}

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/configuration/redis/RedisTemplateConfiguration.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/db/redis/RedisTemplateConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.scheduler.infrastructure.configuration.redis;
+package com.css.simulation.resource.monitor.infrastructure.db.redis;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.PropertyAccessor;

+ 2 - 2
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/configuration/minio/MinioConfiguration.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/fs/minio/MinioConfiguration.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.configuration.minio;
+package com.css.simulation.resource.monitor.infrastructure.fs.minio;
 
 import io.minio.MinioClient;
 import lombok.Data;
@@ -23,4 +23,4 @@ public class MinioConfiguration {
                 .credentials(accessKey, secretKey)
                 .build();
     }
-}
+}

+ 1 - 1
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/util/MinioUtil.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/fs/minio/MinioUtil.java

@@ -1,4 +1,4 @@
-package com.css.simulation.resource.monitor.util;
+package com.css.simulation.resource.monitor.infrastructure.fs.minio;
 
 import io.minio.*;
 import io.minio.errors.*;

+ 26 - 0
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/AlgorithmExpandScheduler.java

@@ -0,0 +1,26 @@
+package com.css.simulation.resource.monitor.infrastructure.scheduler;
+
+import com.css.simulation.resource.monitor.application.service.AlgorithmExpandApplicationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class AlgorithmExpandScheduler {
+
+    @Resource
+    private AlgorithmExpandApplicationService algorithmExpandApplicationService;
+
+    /**
+     * 定时查询算法平台文件并
+     */
+    @Scheduled(fixedDelay = 60 * 60 * 1000)
+    public void sync() {
+        // 同步算法平台算法
+        algorithmExpandApplicationService.syncAlgorithmExpand();
+    }
+
+}

+ 6 - 6
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/scheduler/ProjectScheduler.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/ProjectScheduler.java

@@ -1,7 +1,7 @@
-package com.css.simulation.resource.monitor.scheduler;
+package com.css.simulation.resource.monitor.infrastructure.scheduler;
 
 import api.common.util.ObjectUtil;
-import com.css.simulation.resource.monitor.feign.ProjectService;
+import com.css.simulation.resource.monitor.acl.service.ProjectAclService;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -22,9 +22,9 @@ import java.util.concurrent.ScheduledFuture;
 public class ProjectScheduler implements SchedulingConfigurer {
 
     @Resource
-    private ProjectService projectService;
+    private ProjectAclService projectAclService;
 
-    static ProjectService staticProjectService;
+    static ProjectAclService staticProjectAclService;
 
     private ScheduledTaskRegistrar taskRegistrar;
     private final Map<String, ScheduledFuture> scheduledFutures = new HashMap<>();
@@ -32,7 +32,7 @@ public class ProjectScheduler implements SchedulingConfigurer {
 
     @PostConstruct
     public void postConstruct() {
-        staticProjectService = this.projectService;
+        staticProjectAclService = this.projectAclService;
     }
 
     @Override
@@ -158,7 +158,7 @@ public class ProjectScheduler implements SchedulingConfigurer {
             log.info("projectTask [" + projectId + "] run : " + new Date());
             Map<String, String> projectParam = new HashMap<>();
             projectParam.put("id", projectId);
-            ProjectScheduler.staticProjectService.runProject(projectParam);
+            ProjectScheduler.staticProjectAclService.runProject(projectParam);
         }
     }
 

+ 20 - 31
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/scheduler/MyScheduler.java → simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/infrastructure/scheduler/ServerScheduler.java

@@ -1,15 +1,15 @@
-package com.css.simulation.resource.monitor.scheduler;
+package com.css.simulation.resource.monitor.infrastructure.scheduler;
 
 import api.common.pojo.dto.Host;
 import api.common.pojo.po.home.SystemServerPO;
 import api.common.util.SshUtil;
 import api.common.util.StringUtil;
 import api.common.util.TimeUtil;
-import com.css.simulation.resource.monitor.configuration.minio.MinioConfiguration;
-import com.css.simulation.resource.monitor.manager.SystemServerManager;
-import com.css.simulation.resource.monitor.mappper.ScenePackageSublistMapper;
-import com.css.simulation.resource.monitor.pojo.GeneralPO;
-import com.css.simulation.resource.monitor.util.MinioUtil;
+import com.css.simulation.resource.monitor.infrastructure.fs.minio.MinioConfiguration;
+import com.css.simulation.resource.monitor.domain.SystemServerDomainService;
+import com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.ScenePackageSublistMapper;
+import com.css.simulation.resource.monitor.infrastructure.db.entity.GeneralEntity;
+import com.css.simulation.resource.monitor.infrastructure.fs.minio.MinioUtil;
 import io.minio.MinioClient;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -30,13 +30,13 @@ import java.util.List;
 @Data
 @Slf4j
 @ConfigurationProperties(prefix = "ssh")
-public class MyScheduler {
+public class ServerScheduler {
 
     List<Host> hostList;
 
 
     @Resource
-    private SystemServerManager systemServerManager;
+    private SystemServerDomainService systemServerDomainService;
     @Resource
     private ScenePackageSublistMapper scenePackageSublistMapper;
     @Resource
@@ -95,7 +95,7 @@ public class MyScheduler {
                 sshClient.stop();
             }
             log.info("获取服务器信息。" + systemServerPOList);
-            systemServerManager.deleteAndInsert(systemServerPOList);
+            systemServerDomainService.deleteAndInsert(systemServerPOList);
         } catch (IOException | DocumentException | InterruptedException e) {
             throw new RuntimeException(e);
         }
@@ -116,20 +116,20 @@ public class MyScheduler {
                 sceneGeneralizationIdList.addAll(Arrays.asList(split));
             });
             //3 查询不在id列表中的所有泛化数据
-            List<GeneralPO> generalPOS = scenePackageSublistMapper.selectGeneralDataNotIn(sceneGeneralizationIdList);
-            log.info("准备删除:" + generalPOS);
-            generalPOS.forEach(
-                    generalPO -> {
-                        if (StringUtil.isNotEmpty(generalPO.getOsgbAddress())) {
-                            MinioUtil.rm(minioClient, minioConfiguration.getBucketName(), generalPO.getOsgbAddress());
+            List<GeneralEntity> generalEntities = scenePackageSublistMapper.selectGeneralDataNotIn(sceneGeneralizationIdList);
+            log.info("准备删除:" + generalEntities);
+            generalEntities.forEach(
+                    generalEntity -> {
+                        if (StringUtil.isNotEmpty(generalEntity.getOsgbAddress())) {
+                            MinioUtil.rm(minioClient, minioConfiguration.getBucketName(), generalEntity.getOsgbAddress());
                         }
-                        if (StringUtil.isNotEmpty(generalPO.getXodrAddress())) {
-                            MinioUtil.rm(minioClient, minioConfiguration.getBucketName(), generalPO.getXodrAddress());
+                        if (StringUtil.isNotEmpty(generalEntity.getXodrAddress())) {
+                            MinioUtil.rm(minioClient, minioConfiguration.getBucketName(), generalEntity.getXodrAddress());
                         }
-                        if (StringUtil.isNotEmpty(generalPO.getXoscAddress())) {
-                            MinioUtil.rm(minioClient, minioConfiguration.getBucketName(), generalPO.getXoscAddress());
+                        if (StringUtil.isNotEmpty(generalEntity.getXoscAddress())) {
+                            MinioUtil.rm(minioClient, minioConfiguration.getBucketName(), generalEntity.getXoscAddress());
                         }
-                        scenePackageSublistMapper.deleteById(generalPO.getId());
+                        scenePackageSublistMapper.deleteById(generalEntity.getId());
                     }
             );
         } catch (Exception e) {
@@ -139,15 +139,4 @@ public class MyScheduler {
 
     }
 
-//    @Scheduled(fixedDelay = 2 * 1000)
-//    public void test() throws IOException, DocumentException {
-//        SshClient client = SshUtil.getClient();
-//        ClientSession session = SshUtil.getSession(client, "182.92.203.182", "root", "CICV2022test");
-//        double gpuUsage = SshUtil.gpuUsage(session);
-//        long gpuTotal = SshUtil.gpuTotal(session);
-//        System.out.println(gpuUsage);
-//        System.out.println(gpuTotal);
-//    }
-
-
 }

+ 0 - 7
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/mappper/AlgorithmExpandMapper.java

@@ -1,7 +0,0 @@
-package com.css.simulation.resource.monitor.mappper;
-
-import org.apache.ibatis.annotations.Mapper;
-
-@Mapper
-public class AlgorithmExpandMapper {
-}

+ 0 - 9
simulation-resource-monitor/src/main/java/com/css/simulation/resource/monitor/scheduler/AlgorithmExpandScheduler.java

@@ -1,9 +0,0 @@
-package com.css.simulation.resource.monitor.scheduler;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-@Component
-@Slf4j
-public class AlgorithmExpandScheduler {
-}

+ 52 - 0
simulation-resource-monitor/src/main/resources/mysql/mapper/AlgorithmExpandMapper.xml

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.css.simulation.resource.monitor.infrastructure.db.mysql.mapper.AlgorithmExpandMapper">
+    <insert id="insert">
+        insert into algorithm_expand(id, algorithm_id, algorithm_name, description, algorithm_type, algorithm_version,
+                                     team, topic, status)
+            value (#{id}, #{algorithmId}, #{algorithmName}, #{description}, #{algorithmType}, #{algorithmVersion},
+                   #{team}, #{topic}, #{status})
+    </insert>
+    <update id="update">
+        update algorithm_expand
+        set algorithm_name    = #{algorithmName},
+            description       = #{description},
+            algorithm_type    = #{algorithmType},
+            algorithm_version = #{algorithmVersion},
+            team              = #{team},
+            topic             = #{topic},
+            status            = #{status}
+        where algorithm_id = #{algorithmId}
+    </update>
+    <delete id="delete">
+        delete from algorithm_expand where algorithm_id = #{algorithmId}
+    </delete>
+
+
+    <select id="select"
+            resultType="com.css.simulation.resource.monitor.infrastructure.db.entity.AlgorithmExpandEntity">
+        select id, algorithm_id, algorithm_name, description, algorithm_type, status
+        from algorithm_expand
+        where 1=1
+        <if test="algorithmIds != null">
+            and algorithm_id in
+            <foreach item='item' collection='algorithmIds' separator=',' open='(' close=')'>
+                #{item}
+            </foreach>
+        </if>
+        <if test="algorithmId != null and algorithmId != ''">
+            and algorithm_id = #{algorithmId}
+        </if>
+    </select>
+    <select id="selectAlgorithmIds" resultType="java.lang.String">
+        select algorithm_id
+        from algorithm_expand
+        where 1=1
+        <if test="algorithmIds != null">
+            and algorithm_id in
+            <foreach item='item' collection='algorithmIds' separator=',' open='(' close=')'>
+                #{item}
+            </foreach>
+        </if>
+    </select>
+</mapper>

+ 84 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/infrastructure/db/redis/RedisTemplateConfiguration.java

@@ -0,0 +1,84 @@
+package com.css.simulation.resource.scheduler.infrastructure.db.redis;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.cache.RedisCacheConfiguration;
+import org.springframework.data.redis.cache.RedisCacheManager;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+import java.time.Duration;
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+@EnableCaching
+public class RedisTemplateConfiguration {
+
+    @Bean
+    public RedisSerializer<Object> jackson2JsonRedisSerializer() {
+        // 使用 Jackson2JsonRedisSerializer 来序列化和反序列化 redis 的 value 值。
+        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
+        ObjectMapper mapper = new ObjectMapper();
+        // 指定要序列化的域,field,get和set,以及修饰符范围,ANY是都有包括private和public
+        mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        // 指定序列化输入的类型,类必须是非 final 修饰的,final修饰的类,比如 String, Integer 等会跑出异常
+        mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
+        serializer.setObjectMapper(mapper);
+        return serializer;
+    }
+
+    @Bean
+    public CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
+        RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig();
+        configuration = configuration
+                // 设置 key 为 string 序列化
+                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
+                // 设置 value 为 json 序列化
+                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(jackson2JsonRedisSerializer()))
+                // 不缓存空值
+                .disableCachingNullValues()
+                // 设置缓存默认过期时间(30 分钟)
+                .entryTtl(Duration.ofMinutes(30L))
+        ;
+        // 特殊缓存空间应用不同的配置
+        Map<String, RedisCacheConfiguration> map = new HashMap<>();
+        map.put("miFirst", configuration.entryTtl(Duration.ofMinutes(30L)));
+        map.put("miSecond", configuration.entryTtl(Duration.ofHours(1L)));
+
+        return RedisCacheManager.builder(connectionFactory)
+                .cacheDefaults(configuration)           // 默认配置
+                .withInitialCacheConfigurations(map)    // 特殊缓存
+                .transactionAware()                     // 事务
+                .build();
+    }
+
+    @Bean
+    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
+        RedisTemplate<String, Object> template = new RedisTemplate<>();
+        template.setConnectionFactory(connectionFactory);
+        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
+        // key 采用 String 的序列化方式
+        template.setKeySerializer(stringRedisSerializer);
+        // hash 的 key 采用 String 的序列化方式
+        template.setHashKeySerializer(stringRedisSerializer);
+        // value 采用 jackson 的序列化方式
+        template.setValueSerializer(jackson2JsonRedisSerializer());
+        // hash 的 value 采用 jackson 的序列化方式
+        template.setHashValueSerializer(jackson2JsonRedisSerializer());
+        template.afterPropertiesSet();
+        return template;
+    }
+
+
+}

+ 17 - 7
simulation-resource-server/src/main/java/com/css/simulation/resource/server/api/controller/system_manage/account_manage/RoleController.java

@@ -6,6 +6,8 @@ import api.common.pojo.po.system.RolePO;
 import api.common.pojo.vo.system.RoleVO;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.server.application.service.RoleService;
+import com.css.simulation.resource.server.domain.service.UserDomainService;
+import com.css.simulation.resource.server.infrastructure.common.util.AuthUtil;
 import com.github.pagehelper.PageInfo;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -22,13 +24,21 @@ public class RoleController {
 
     @Resource
     private RoleService roleService;
+    @Resource
+    private UserDomainService userDomainService;
+
+
+    @RequestMapping("/isAdmin")
+    public ResponseBodyVO<Boolean> isAdmin() {
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, userDomainService.isAdmin(AuthUtil.getCreateUserId(), AuthUtil.getCurrentUserRoleCode()));
+    }
 
     /**
      * 获取角色列表
      */
     @RequestMapping("/getRolePageList")
     public ResponseBodyVO<PageInfo<RoleVO>> getRolePageList(@RequestBody RoleParam pageParam) {
-        ResponseBodyVO<PageInfo<RoleVO>> response = new ResponseBodyVO<PageInfo<RoleVO>>(ResponseBodyVO.Response.SUCCESS);
+        ResponseBodyVO<PageInfo<RoleVO>> response = new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         response.setInfo(roleService.getRolePageList(pageParam));
         return response;
     }
@@ -39,7 +49,7 @@ public class RoleController {
     @RequestMapping("/saveRole")
     public ResponseBodyVO<RolePO> saveRole(@RequestBody RoleVO roleVO) {
         if (ObjectUtil.isNull(roleVO)) {
-            return new ResponseBodyVO(false, 500, "参数必传!", null);
+            return new ResponseBodyVO<>(false, 500, "参数必传!", null);
         }
         ResponseBodyVO<RolePO> response = new ResponseBodyVO<RolePO>(ResponseBodyVO.Response.SUCCESS);
         response.setInfo(roleService.saveRole(roleVO));
@@ -50,12 +60,12 @@ public class RoleController {
      * 删除
      */
     @RequestMapping("/delRoleById")
-    public ResponseBodyVO delRoleById(@RequestBody RolePO rolePO) {
+    public ResponseBodyVO<String> delRoleById(@RequestBody RolePO rolePO) {
         int i = roleService.delRoleById(rolePO);
         if (i > 0) {
-            return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         } else {
-            return new ResponseBodyVO(false, 500, "删除失败!", null);
+            return new ResponseBodyVO<>(false, 500, "删除失败!", null);
         }
     }
 
@@ -65,9 +75,9 @@ public class RoleController {
     @RequestMapping("/saveMenusToRole")
     public ResponseBodyVO<RoleVO> saveMenusToRole(@RequestBody RoleVO roleVO) {
         if (ObjectUtil.isNull(roleVO)) {
-            return new ResponseBodyVO(false, 500, "参数必传!", null);
+            return new ResponseBodyVO<>(false, 500, "参数必传!", null);
         }
-        ResponseBodyVO<RoleVO> response = new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+        ResponseBodyVO<RoleVO> response = new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS);
         response.setInfo(roleService.saveMenusToRole(roleVO));
         return response;
     }

+ 4 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/server/api/controller/system_manage/account_manage/UserController.java

@@ -7,21 +7,22 @@ import api.common.pojo.vo.system.UserVO;
 import api.common.util.ObjectUtil;
 import com.css.simulation.resource.server.application.service.UserService;
 import com.github.pagehelper.PageInfo;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.annotation.Resource;
+
 
 @Controller()
 @RequestMapping("/user")
 @PreAuthorize("@AuthorityCheck.adminAndUser()")
 public class UserController {
 
-    @Autowired
-    UserService userService;
+    @Resource
+    private UserService userService;
 
     /**
      * 获取人员列表

+ 20 - 31
simulation-resource-server/src/main/java/com/css/simulation/resource/server/application/impl/AlgorithmServiceImpl.java

@@ -27,49 +27,38 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.*;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 
 @Slf4j
 @Service
 public class AlgorithmServiceImpl implements AlgorithmService {
 
-    private final AlgoPlatformService algoPlatformService;
-    private final SchedulerService schedulerService;
-    private final FileDownService fileDownService;
-    private final AlgorithmMapper algorithmMapper;
-    private final DictService dictService;
-    private final GitConfiguration gitConfiguration;
-    private final AlgorithmExpandMapper algorithmExpandMapper;
-    private final UserDomainService userDomainService;
+    @Resource
+    private AlgoPlatformService algoPlatformService;
+    @Resource
+    private SchedulerService schedulerService;
+    @Resource
+    private FileDownService fileDownService;
+    @Resource
+    private AlgorithmMapper algorithmMapper;
+    @Resource
+    private DictService dictService;
+    @Resource
+    private GitConfiguration gitConfiguration;
+    @Resource
+    private AlgorithmExpandMapper algorithmExpandMapper;
+    @Resource
+    private UserDomainService userDomainService;
 
     @Resource
     private SimulationProjectService simulationProjectService;
 
-    @Autowired
-    public AlgorithmServiceImpl(@Qualifier("com.css.simulation.resource.server.acl.feign.AlgoPlatformService") AlgoPlatformService algoPlatformService,
-                                @Qualifier("com.css.simulation.resource.server.acl.feign.SchedulerService") SchedulerService schedulerService,
-                                @Qualifier("com.css.simulation.resource.server.acl.feign.FileDownService") FileDownService fileDownService,
-                                AlgorithmMapper algorithmMapper,
-                                DictService dictService,
-                                GitConfiguration gitConfiguration,
-                                AlgorithmExpandMapper algorithmExpandMapper,
-                                UserDomainService userDomainService
-    ) {
-        this.algoPlatformService = algoPlatformService;
-        this.schedulerService = schedulerService;
-        this.fileDownService = fileDownService;
-        this.algorithmMapper = algorithmMapper;
-        this.dictService = dictService;
-        this.gitConfiguration = gitConfiguration;
-        this.algorithmExpandMapper = algorithmExpandMapper;
-        this.userDomainService = userDomainService;
-    }
-
     //* -------------------------------- Comment --------------------------------