martin vor 3 Jahren
Ursprung
Commit
42c304256e
17 geänderte Dateien mit 84 neuen und 204 gelöschten Zeilen
  1. 21 17
      simulation-resource-common/src/main/java/com/css/simulation/resource/common/controller/RedisController.java
  2. 0 11
      simulation-resource-scheduler/pom.xml
  3. 0 33
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/oauth/MyTokenServices.java
  4. 0 41
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/oauth/OAuth2ResourceServerConfiguration.java
  5. 0 16
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/oauth/OauthParameter.java
  6. 0 11
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/parameter/MyParameter.java
  7. 0 2
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ManualProjectConsumer.java
  8. 17 9
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/TaskController.java
  9. 14 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/feign/CommonService.java
  10. 2 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexMapper.java
  11. 2 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ProjectMapper.java
  12. 2 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java
  13. 2 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java
  14. 0 45
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java
  15. 2 1
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java
  16. 7 0
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/TickScheduler.java
  17. 15 14
      simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskService.java

+ 21 - 17
simulation-resource-common/src/main/java/com/css/simulation/resource/common/controller/RedisController.java

@@ -3,11 +3,14 @@ package com.css.simulation.resource.common.controller;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.constants.DictConstants;
 import api.common.pojo.param.RedisParameter;
-import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import javax.annotation.Resource;
 import java.time.Duration;
 import java.util.HashMap;
 import java.util.List;
@@ -21,8 +24,9 @@ import java.util.Map;
 @RequestMapping("/redis")
 public class RedisController {
 
-    @Resource
-    RedisTemplate<String, String> redisTemplate;
+    @Autowired
+    StringRedisTemplate redisTemplate;
+
 
     @PostMapping("/get")
     public ResponseBodyVO<String> get(@RequestBody @Validated RedisParameter redisParameter) {
@@ -56,7 +60,7 @@ public class RedisController {
 
     @PostMapping("/setDictLists")
     public ResponseBodyVO<String> setDictLists(@RequestBody List<RedisParameter> redisParameterList) {
-        if(redisParameterList != null && redisParameterList.size() > 0){
+        if (redisParameterList != null && redisParameterList.size() > 0) {
             for (RedisParameter parameter : redisParameterList) {
                 redisTemplate.opsForValue().set(DictConstants.BASE_KEY + DictConstants.LIST_KEY + parameter.getKey().toUpperCase(), parameter.getValue());
             }
@@ -66,7 +70,7 @@ public class RedisController {
 
     @PostMapping("/setDictMaps")
     public ResponseBodyVO<String> setDictMaps(@RequestBody List<RedisParameter> redisParameterList) {
-        if(redisParameterList != null && redisParameterList.size() > 0){
+        if (redisParameterList != null && redisParameterList.size() > 0) {
             for (RedisParameter parameter : redisParameterList) {
                 redisTemplate.opsForValue().set(DictConstants.BASE_KEY + DictConstants.MAP_KEY + parameter.getKey().toUpperCase(), parameter.getValue());
             }
@@ -75,27 +79,27 @@ public class RedisController {
     }
 
     @PostMapping("/getDictLists")
-    public ResponseBodyVO<Map<String,String>> getDictLists(@RequestBody List<String> keyList) {
-        Map<String,String> map = new HashMap<>();
-        if(keyList != null && keyList.size() > 0){
+    public ResponseBodyVO<Map<String, String>> getDictLists(@RequestBody List<String> keyList) {
+        Map<String, String> map = new HashMap<>();
+        if (keyList != null && keyList.size() > 0) {
             for (String key : keyList) {
                 String value = redisTemplate.opsForValue().get(DictConstants.BASE_KEY + DictConstants.LIST_KEY + key.toUpperCase());
-                map.put(key,value);
+                map.put(key, value);
             }
         }
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS,map);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, map);
     }
 
     @PostMapping("/getDictMaps")
-    public ResponseBodyVO<Map<String,String>> getDictMaps(@RequestBody List<String> keyList) {
-        Map<String,String> map = new HashMap<>();
-        if(keyList != null && keyList.size() > 0){
+    public ResponseBodyVO<Map<String, String>> getDictMaps(@RequestBody List<String> keyList) {
+        Map<String, String> map = new HashMap<>();
+        if (keyList != null && keyList.size() > 0) {
             for (String key : keyList) {
                 String value = redisTemplate.opsForValue().get(DictConstants.BASE_KEY + DictConstants.MAP_KEY + key.toUpperCase());
-                map.put(key,value);
+                map.put(key, value);
             }
         }
-        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS,map);
+        return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, map);
     }
 
 }

+ 0 - 11
simulation-resource-scheduler/pom.xml

@@ -55,17 +55,6 @@
         </dependency>
         <!-- 数据库 - 结束 -->
 
-        <!-- 权限认证 - 开始 -->
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-security</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.cloud</groupId>
-            <artifactId>spring-cloud-starter-oauth2</artifactId>
-        </dependency>
-        <!-- 权限认证 - 结束 -->
-
         <!-- nacos - 开始 -->
         <dependency>
             <groupId>org.springframework.cloud</groupId>

+ 0 - 33
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/oauth/MyTokenServices.java

@@ -1,33 +0,0 @@
-package com.css.simulation.resource.scheduler.configuration.oauth;
-
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.oauth2.provider.token.RemoteTokenServices;
-import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices;
-
-import javax.annotation.Resource;
-
-@Configuration
-public class MyTokenServices {
-
-    @Resource
-    private OauthParameter oauthParameter;
-
-
-    /**
-     * access_token 验证策略
-     * DefaultTokenServices()
-     * RemoteTokenServices():远程验证,通过 /oauth/check_token
-     * SpringSocialTokenServices()
-     * UserInfoTokenServices()
-     */
-    @Bean
-    public ResourceServerTokenServices tokenServices() {
-        RemoteTokenServices services = new RemoteTokenServices();
-        services.setCheckTokenEndpointUrl(oauthParameter.getCheckTokenEndpointUrl());  // 需要在授权服务器公开 /oauth/check_token
-        services.setClientId(oauthParameter.getClientId());
-        services.setClientSecret(oauthParameter.getClientSecret());
-        return services;
-    }
-
-}

+ 0 - 41
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/oauth/OAuth2ResourceServerConfiguration.java

@@ -1,41 +0,0 @@
-package com.css.simulation.resource.scheduler.configuration.oauth;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.http.SessionCreationPolicy;
-import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
-import org.springframework.security.oauth2.config.annotation.web.configurers.ResourceServerSecurityConfigurer;
-import org.springframework.security.oauth2.provider.token.ResourceServerTokenServices;
-
-import javax.annotation.Resource;
-
-@Configuration
-public class OAuth2ResourceServerConfiguration extends ResourceServerConfigurerAdapter {
-
-
-    @Resource
-    private OauthParameter oauthParameter;
-
-    @Resource
-    private ResourceServerTokenServices resourceServerTokenServices;
-
-    @Override
-    public void configure(ResourceServerSecurityConfigurer resources) {
-        resources.resourceId(oauthParameter.getResourceId())      // 资源 id
-                .tokenServices(resourceServerTokenServices)    // 使用远程服务验证令牌的服务
-                .stateless(true);   // 无状态模式,即无需用户登录,无 session
-    }
-
-    /**
-     * 配置拦截请求,通过 scope
-     */
-    @Override
-    public void configure(HttpSecurity http) throws Exception {
-        http.csrf().disable()   // 禁用 csrf
-                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)// 无状态验证
-                .and()
-                .authorizeRequests().anyRequest()
-                .access("#oauth2.hasScope('all')") // 拦截所有请求判断 scope
-        ;
-    }
-}

+ 0 - 16
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/oauth/OauthParameter.java

@@ -1,16 +0,0 @@
-package com.css.simulation.resource.scheduler.configuration.oauth;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Data
-@Component
-@ConfigurationProperties(prefix="oauth")
-public class OauthParameter {
-
-    private String resourceId;
-    private String checkTokenEndpointUrl;
-    private String clientId;
-    private String clientSecret;
-}

+ 0 - 11
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/configuration/parameter/MyParameter.java

@@ -1,11 +0,0 @@
-package com.css.simulation.resource.scheduler.configuration.parameter;
-
-import lombok.Data;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Data
-@Component
-@ConfigurationProperties(prefix = "parameter")
-public class MyParameter {
-}

+ 0 - 2
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/consumer/ManualProjectConsumer.java

@@ -45,8 +45,6 @@ public class ManualProjectConsumer {
     @Autowired
     VehicleMapper vehicleMapper;
     @Autowired
-    TaskMapper taskMapper;
-    @Autowired
     SensorCameraMapper sensorCameraMapper;
     @Autowired
     SensorOgtMapper sensorOgtMapper;

+ 17 - 9
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/controller/TaskController.java

@@ -1,15 +1,16 @@
 package com.css.simulation.resource.scheduler.controller;
 
 
-import api.common.pojo.common.ResponseBodyVO;
 import com.css.simulation.resource.scheduler.service.TaskService;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 
 @RestController
+@RequestMapping("/task")
 public class TaskController {
 
     @Resource
@@ -18,19 +19,26 @@ public class TaskController {
     /**
      * Pod 的心跳接口
      */
-    @PostMapping("task/{taskId}/tick")
-    public ResponseBodyVO<String> taskTick(@PathVariable("taskId") String taskId) {
-        return taskService.taskTick(taskId);
+    @GetMapping("/tick")
+    public void taskTick(@RequestParam("taskId") String taskId) {
+        taskService.taskTick(taskId);
     }
 
     /**
      * 修改任务状态
      */
-    @PostMapping("/task/{taskId}/state/{taskState}")
-    public ResponseBodyVO<String> taskStateModify(@PathVariable("taskId") String taskId, @PathVariable("taskState") String taskState) {
-        return taskService.taskStateModify(taskId, taskState);
+    @GetMapping("/state")
+    public void taskState(@RequestParam("taskId") String taskId, @RequestParam("taskState") String taskState) {
+        taskService.taskState(taskId, taskState);
     }
 
+    /**
+     * 任务执行前调用该接口,确定该任务没有被终止
+     */
+    @GetMapping("/confirm")
+    public Boolean taskConfirm(@RequestParam("taskId") String taskId) {
+        return taskService.taskConfirm(taskId);
+    }
 
 
 }

+ 14 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/feign/CommonService.java

@@ -3,6 +3,7 @@ package com.css.simulation.resource.scheduler.feign;
 import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.KafkaParameter;
 import api.common.pojo.param.MinioParameter;
+import api.common.pojo.param.RedisParameter;
 import com.css.simulation.resource.scheduler.configuration.feign.OpenFeignConfiguration;
 import com.css.simulation.resource.scheduler.feign.fallback.CommonServiceFallback;
 import feign.Response;
@@ -37,5 +38,18 @@ public interface CommonService {
     @PostMapping(value = "/kafka/send", consumes = MediaType.APPLICATION_JSON_VALUE)
     ResponseBodyVO<String> send(@RequestBody @Validated KafkaParameter kafkaParameter);
 
+    @PostMapping("/redis/get")
+    ResponseBodyVO<String> get(@RequestBody @Validated RedisParameter redisParameter);
+
+    @PostMapping("/redis/set")
+    ResponseBodyVO<String> set(@RequestBody @Validated RedisParameter redisParameter);
+
+    @PostMapping("/redis/getExpire")
+    ResponseBodyVO<Long> getExpire(@RequestBody @Validated RedisParameter redisParameter);
+
+
+    @PostMapping("/redis/delete")
+    ResponseBodyVO<String> delete(@RequestBody @Validated RedisParameter redisParameter);
+
 
 }

+ 2 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/IndexMapper.java

@@ -27,7 +27,8 @@ public interface IndexMapper {
             "       scene_statue_ids\n" +
             "from scene_package_sublist sps\n" +
             "         left join scene_package sp on parent_id = sp.package_id\n" +
-            "where parent_id = '#{packageId}'\n" +
+            "where sps.is_deleted = '0' and sp.is_deleted = '0'\n" +
+            "  and parent_id = '#{packageId}'\n" +
             "  and ((scene_natural_ids is not null and scene_natural_ids != '')\n" +
             "    or (scene_traffic_ids is not null and scene_traffic_ids != '')\n" +
             "    or (scene_statue_ids is not null and scene_statue_ids != ''))")

+ 2 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/ProjectMapper.java

@@ -15,6 +15,7 @@ public interface ProjectMapper {
 
     @Update("update simulation_project\n" +
             "set state = #{state}\n" +
-            "where id = #{id}")
+            "where is_deleted = '0'\n" +
+            "   and id = #{id}")
     void updateProjectState(@Param("id") String id,@Param("state") String state);
 }

+ 2 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorCameraMapper.java

@@ -38,6 +38,7 @@ public interface SensorCameraMapper {
             "       rvs.sensor_p,\n" +
             "       rvs.sensor_r\n" +
             "from model_sensor_camera msc left join relation_vehicle_sensor rvs on msc.id = rvs.sensor_id\n" +
-            "where rvs.vehicle_id = #{vehicleId}")
+            "where msc.is_deleted = '0' and rvs.is_deleted = '0'" +
+            "   and rvs.vehicle_id = #{vehicleId}")
     List<CameraPO> selectCameraByVehicleId(@Param("vehicleId") String vehicleId);
 }

+ 2 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/SensorOgtMapper.java

@@ -44,6 +44,7 @@ public interface SensorOgtMapper {
             "       rvs.sensor_r,\n" +
             "       rvs.sensor_port\n" +
             "from model_sensor_ogt mso left join relation_vehicle_sensor rvs on mso.id = rvs.sensor_id\n" +
-            "where rvs.vehicle_id = #{vehicleId}")
+            "where mso.is_deleted = '0' and rvs.is_deleted = '0'\n" +
+            "   and rvs.vehicle_id = #{vehicleId}")
     List<OgtPO> selectOgtByVehicleId(@Param("vehicleId") String vehicleId);
 }

+ 0 - 45
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/TaskMapper.java

@@ -1,45 +0,0 @@
-package com.css.simulation.resource.scheduler.mapper;
-
-import com.css.simulation.resource.scheduler.pojo.po.TaskPO;
-import org.apache.ibatis.annotations.*;
-import org.apache.ibatis.type.JdbcType;
-
-import java.util.List;
-
-@Mapper
-public interface TaskMapper {
-
-    @Results(id = "task", value = {
-            @Result(column = "id", property = "id", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "scene_type", property = "sceneType", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "sn_scenario_osc", property = "snScenarioOsc", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "sn_scenario_odr", property = "snScenarioOdr", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "sn_scenario_osgb", property = "snScenarioOsgb", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "scr_scenario_osc", property = "scrScenarioOsc", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "scr_scenario_odr", property = "scrScenarioOdr", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "scr_scenario_osgb", property = "scrScenarioOsgb", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "sa_scenario_osc", property = "saScenarioOsc", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "sa_scenario_odr", property = "saScenarioOdr", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "sa_scenario_osgb", property = "saScenarioOsgb", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "vehicle_id", property = "vehicleId", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "max_speed", property = "maxSpeed", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "engine_power", property = "enginePower", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "max_deceleration", property = "maxDeceleration", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "max_steering_angle", property = "maxSteeringAngle", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "mass", property = "mass", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "front_surface_effective", property = "frontSurfaceEffective", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "air_drag_coefficient", property = "airDragCoefficient", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "rolling_resistance_coefficient", property = "rollingResistanceCoefficient", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "wheel_diameter", property = "wheelDiameter", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "wheel_drive", property = "wheelDrive", jdbcType = JdbcType.VARCHAR),
-            @Result(column = "overall_efficiency", property = "overallEfficiency", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "front_distance", property = "frontDistance", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "rear_distance", property = "rearDistance", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "left_distance", property = "leftDistance", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "right_distance", property = "rightDistance", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "height_distance", property = "heightDistance", jdbcType = JdbcType.DECIMAL),
-            @Result(column = "wheelbase", property = "wheelbase", jdbcType = JdbcType.DECIMAL),
-    })
-    @Select("")
-    List<TaskPO> selectNaturalByProjectId(@Param("projectId") String projectId);
-}

+ 2 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/mapper/VehicleMapper.java

@@ -46,6 +46,7 @@ public interface VehicleMapper {
             "       height_distance,\n" +
             "       wheelbase\n" +
             "from model_vehicle\n" +
-            "where id = #{vehicleId}")
+            "where is_deleted = '0'\n" +
+            "   and id = #{vehicleId}")
     VehiclePO selectByVehicleId(@Param("projectId") String projectId);
 }

+ 7 - 0
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/scheduler/TickScheduler.java

@@ -0,0 +1,7 @@
+package com.css.simulation.resource.scheduler.scheduler;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class TickScheduler {
+}

+ 15 - 14
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/TaskService.java

@@ -1,33 +1,34 @@
 package com.css.simulation.resource.scheduler.service;
 
-import api.common.pojo.common.ResponseBodyVO;
+import com.css.simulation.resource.scheduler.feign.CommonService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class TaskService {
 
-//    @Resource
-//    private RedisTemplate<String, String> redisTemplate;
+    @Autowired
+    private CommonService commonService;
 
 
-    /**
-     * Pod 的心跳接口
-     */
-    public ResponseBodyVO<String> taskTick(String taskId) {
-        //1 将 taskId 存储到 redis,并刷新过期时间
-        //2
-        return null;
+    public void taskTick(String taskId) {
+        // 将 taskId 存储到 redis,并刷新过期时间
+//        commonService.set(new RedisParameter(taskId));
     }
 
-    /**
-     * 修改任务状态
-     */
-    public ResponseBodyVO<String> taskStateModify(String taskId, String taskState) {
+
+    public void taskState(String taskId, String taskState) {
         //1 根据 taskId 修改任务状态 taskState。
         //2 如果 taskState 为完成状态,项目的已完成任务数+1。
         //3 如果已完成任务数等于所有任务数量,调用打分程序,对项目中每个指标进行打分,
         //4 根据每个指标的得分和权重算出 project 的总得分。
 
+    }
+
+
+    public Boolean taskConfirm(String taskId) {
+        // 将 taskId 存储到 redis,并刷新过期时间
+//        commonService.set(new RedisParameter(taskId,));
         return null;
     }
 }