package com.ruoyi.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.domain.ModelTestTask; import com.ruoyi.domain.Task; import com.ruoyi.mapper.ModelTestTaskMapper; import com.ruoyi.mapper.TaskMapper; import com.ruoyi.service.StrategyModelTestTask; import com.ruoyi.web.response.ModelTestResponse; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; @Service @Transactional public class StrategyModelTestTaskSigned implements StrategyModelTestTask, InitializingBean { @Autowired private ApplicationContext applicationContext; @Autowired private StrategyModelTestTaskContext strategyModelTestTaskContext; @Autowired private ModelTestTaskMapper modelTestTaskMapper; @Autowired private TaskMapper taskMapper; @Autowired private TaskStateFacade taskStateFacade; @Autowired private StrategyModelTestTaskNew strategyModelTestTaskNew; @Override public ModelTestResponse doView(ModelTestTask modelTestTask) { ModelTestResponse response = strategyModelTestTaskNew.getTestScheme(modelTestTask); return response; } @Override public void doStartTest(ModelTestTask modelTestTask) { throw new ServiceException("不能开始一个已确认的任务", HttpStatus.ERROR); } @Override public void doConfirmTest(ModelTestTask modelTestTask) { throw new ServiceException("不能确认一个已确认的任务", HttpStatus.ERROR); } @Override public void doSubmitTest(ModelTestTask modelTestTask, List<String> imagesUrl) { SysUser user = SecurityUtils.getLoginUser().getUser(); modelTestTaskMapper.update(new ModelTestTask(), new LambdaUpdateWrapper<ModelTestTask>() .set(ModelTestTask::getTaskStatus, ModelTestTask.TASK_STATUS_FINISH) .set(ModelTestTask::getTaskEndTime, new Date()) .set(ModelTestTask::getSubmitId, user.getUserId()) .set(ModelTestTask::getSubmitName, user.getNickName()) .set(ModelTestTask::getImagesUrl, StringUtils.join(imagesUrl, ",")) .eq(ModelTestTask::getId, modelTestTask.getId())); // 改总任务状态 // 通过modelId查询总任务ID List<Task> taskList = taskMapper.selectList(new QueryWrapper<Task>().eq("model_test_task_id", modelTestTask.getId())); if (CollUtil.isNotEmpty(taskList)) { Task task = taskList.get(0); taskStateFacade.doSubmit(task); } } @Override public void afterPropertiesSet() throws Exception { strategyModelTestTaskContext.putResource(ModelTestTask.TASK_STATUS_SIGNED, applicationContext.getBean(this.getClass())); } }