taskStatus

This commit is contained in:
2025-01-03 15:31:40 +08:00
parent c376e3b1b6
commit a91389ca99
19 changed files with 187 additions and 67 deletions

View File

@ -12,9 +12,9 @@ import com.ycwl.basic.model.pc.source.resp.SourceRespVO;
import com.ycwl.basic.model.pc.task.entity.TaskEntity;
import com.ycwl.basic.model.pc.task.resp.TaskRespVO;
import com.ycwl.basic.model.pc.video.entity.MemberVideoEntity;
import com.ycwl.basic.model.pc.video.entity.VideoEntity;
import com.ycwl.basic.model.pc.video.req.VideoReqQuery;
import com.ycwl.basic.model.pc.video.resp.VideoRespVO;
import com.ycwl.basic.repository.VideoTaskRepository;
import com.ycwl.basic.service.mobile.GoodsService;
import com.ycwl.basic.repository.TemplateRepository;
import com.ycwl.basic.utils.ApiResponse;
@ -28,7 +28,6 @@ import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
@ -51,6 +50,8 @@ public class GoodsServiceImpl implements GoodsService {
private FaceMapper faceMapper;
@Autowired
private TemplateRepository templateRepository;
@Autowired
private VideoTaskRepository videoTaskRepository;
public ApiResponse<List<GoodsPageVO>> goodsList(GoodsReqQuery query) {
//查询原素材
@ -242,28 +243,35 @@ public class GoodsServiceImpl implements GoodsService {
*/
@Override
public ApiResponse<VideoTaskStatusVO> getTaskStatusByFaceId(Long userId, Long faceId) {
List<TaskEntity> taskList = videoMapper.listTaskByFaceRelation(userId, faceId);
List<MemberVideoEntity> taskList = videoMapper.listRelationByFace(userId, faceId);
VideoTaskStatusVO response = new VideoTaskStatusVO();
response.setFaceId(faceId);
if (taskList.isEmpty()) {
response.setStatus(0);
return ApiResponse.success(response);
}
long nullTask = taskList.stream().filter(Objects::isNull).count();
if (nullTask > 0) {
response.setScenicId(taskList.get(0).getScenicId());
response.setMaxCount(templateRepository.getTemplateListByScenicId(response.getScenicId()).size());
List<MemberVideoEntity> notFinishedTasks = taskList.stream().filter(task -> {
TaskEntity taskById = videoTaskRepository.getTaskById(task.getTaskId());
if (taskById == null) {
return true;
}
return taskById.getStatus() != 1;
}).collect(Collectors.toList());
if (!notFinishedTasks.isEmpty()) {
response.setCount(taskList.size() - notFinishedTasks.size());
response.setTemplateId(notFinishedTasks.get(0).getTemplateId());
response.setTaskId(notFinishedTasks.get(0).getTaskId());
response.setStatus(2);
return ApiResponse.success(response);
}
Optional<TaskEntity> taskEntity = taskList.stream().filter(task -> 1 == task.getStatus()).findFirst();
if (taskEntity.isPresent()) {
response.setTemplateId(taskEntity.get().getTemplateId());
VideoEntity video = videoMapper.findByTaskId(taskEntity.get().getId());
response.setVideoId(video.getId());
response.setCount(taskList.size());
response.setStatus(1);
} else {
response.setStatus(2);
}
MemberVideoEntity lastVideo = taskList.get(taskList.size() - 1);
response.setTaskId(lastVideo.getTaskId());
response.setTemplateId(lastVideo.getTemplateId());
response.setVideoId(lastVideo.getVideoId());
response.setCount(taskList.size());
response.setStatus(1);
return ApiResponse.success(response);
}
@ -274,23 +282,36 @@ public class GoodsServiceImpl implements GoodsService {
}
@Override
public ApiResponse<VideoTaskStatusVO> getTemplateTaskStatus(Long userId, Long faceId, Long templateId) {
List<TaskEntity> taskList = videoMapper.listTaskByFaceTemplateRelation(userId, faceId, templateId);
public ApiResponse<VideoTaskStatusVO> getTaskStatusByTemplateId(Long userId, Long faceId, Long templateId) {
List<MemberVideoEntity> taskList = videoMapper.listRelationByFaceAndTemplate(userId, faceId, templateId);
VideoTaskStatusVO response = new VideoTaskStatusVO();
response.setFaceId(faceId);
if (taskList.isEmpty()) {
response.setStatus(0);
return ApiResponse.success(response);
}
Optional<TaskEntity> taskEntity = taskList.stream().filter(task -> task.getStatus() == 1).findFirst();
if (taskEntity.isPresent()) {
response.setTemplateId(taskEntity.get().getTemplateId());
VideoEntity video = videoMapper.findByTaskId(taskEntity.get().getId());
response.setVideoId(video.getId());
response.setStatus(1);
} else {
response.setScenicId(taskList.get(0).getScenicId());
response.setMaxCount(templateRepository.getTemplateListByScenicId(response.getScenicId()).size());
List<MemberVideoEntity> notFinishedTasks = taskList.stream().filter(task -> {
TaskEntity taskById = videoTaskRepository.getTaskById(task.getTaskId());
if (taskById == null) {
return true;
}
return taskById.getStatus() != 1;
}).collect(Collectors.toList());
if (!notFinishedTasks.isEmpty()) {
response.setCount(taskList.size() - notFinishedTasks.size());
response.setTemplateId(notFinishedTasks.get(0).getTemplateId());
response.setTaskId(notFinishedTasks.get(0).getTaskId());
response.setStatus(2);
return ApiResponse.success(response);
}
MemberVideoEntity lastVideo = taskList.get(taskList.size() - 1);
response.setTaskId(lastVideo.getTaskId());
response.setTemplateId(lastVideo.getTemplateId());
response.setVideoId(lastVideo.getVideoId());
response.setCount(taskList.size());
response.setStatus(1);
return ApiResponse.success(response);
}

View File

@ -41,16 +41,6 @@ public class TaskServiceImpl implements TaskService {
return ApiResponse.success(taskMapper.getById(id));
}
@Override
public ApiResponse<Boolean> add(TaskEntity task) {
int i = taskMapper.add(task);
if (i > 0) {
return ApiResponse.success(true);
}else {
return ApiResponse.fail("添加失败");
}
}
@Override
public ApiResponse<Boolean> deleteById(Long id) {
int i = taskMapper.deleteById(id);

View File

@ -141,7 +141,6 @@ public class TaskTaskServiceImpl implements TaskService {
TaskEntity taskEntity = new TaskEntity();
taskEntity.setId(SnowFlakeUtil.getLongId());
taskEntity.setFaceId(faceId);
taskEntity.setMemberId(faceRespVO.getMemberId());
taskEntity.setTemplateId(templateId);
taskEntity.setScenicId(scenicId);
taskEntity.setTaskParams(JSON.toJSONString(sourcesMap));
@ -190,8 +189,7 @@ public class TaskTaskServiceImpl implements TaskService {
if (faceSampleList.isEmpty()) {
return;
}
// TODO: 优化
List<TemplateEntity> templateList = templateMapper.listEnabledByScenicId(faceRespVO.getScenicId());
List<TemplateRespVO> templateList = templateRepository.getTemplateListByScenicId(faceRespVO.getScenicId());
if (templateList == null || templateList.isEmpty()) {
return;
}
@ -253,7 +251,6 @@ public class TaskTaskServiceImpl implements TaskService {
taskEntity.setId(SnowFlakeUtil.getLongId());
taskEntity.setScenicId(faceRespVO.getScenicId());
taskEntity.setFaceId(faceId);
taskEntity.setMemberId(faceRespVO.getMemberId());
taskEntity.setTemplateId(templateId);
taskEntity.setStatus(0);
taskEntity.setAutomatic(automatic);
@ -296,7 +293,6 @@ public class TaskTaskServiceImpl implements TaskService {
video = new VideoEntity();
video.setId(SnowFlakeUtil.getLongId());
video.setScenicId(task.getScenicId());
video.setMemberId(task.getMemberId());
video.setTemplateId(task.getTemplateId());
video.setTaskId(taskId);
video.setWorkerId(worker.getId());

View File

@ -45,11 +45,9 @@ public interface GoodsService {
* @param userId
* @return
*/
ApiResponse<VideoTaskStatusVO> getTaskStatusByFaceId(Long userId ,Long faceId);
ApiResponse<VideoTaskStatusVO> getAllTaskStatus(Long userId);
ApiResponse<VideoTaskStatusVO> getTemplateTaskStatus(Long userId, Long faceId, Long templateId);
ApiResponse<VideoTaskStatusVO> getTaskStatusByFaceId(Long userId ,Long faceId);
ApiResponse<VideoTaskStatusVO> getTaskStatusByTemplateId(Long userId, Long faceId, Long templateId);
ApiResponse<VideoTaskStatusVO> getTaskStatusByScenicId(Long userId, Long scenicId);
ApiResponse<GoodsDetailVO> sourceGoodsInfo(Long userId, Long sourceId);

View File

@ -16,7 +16,6 @@ public interface TaskService {
ApiResponse<PageInfo<TaskRespVO>> pageQuery(TaskReqQuery taskReqQuery);
ApiResponse<List<TaskRespVO>> list(TaskReqQuery taskReqQuery);
ApiResponse<TaskRespVO> getById(Long id);
ApiResponse<Boolean> add(TaskEntity task);
ApiResponse<Boolean> deleteById(Long id);
ApiResponse<Boolean> update(TaskEntity task);
ApiResponse<Boolean> updateStatus(Long id,Integer status);