diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java index 5a08d1e..6b1ba4e 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppGoodsController.java @@ -4,6 +4,7 @@ import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.model.mobile.goods.*; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.service.mobile.GoodsService; +import com.ycwl.basic.service.task.TaskService; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.JwtTokenUtil; import io.swagger.annotations.Api; @@ -26,6 +27,8 @@ public class AppGoodsController { @Autowired private GoodsService goodsService; + @Autowired + private TaskService taskService; @ApiOperation("商品列表") @PostMapping("/goodsList") @@ -53,14 +56,14 @@ public class AppGoodsController { /** * 查询用户当前景区的视频合成任务状态 - * @param scenicId 景区id + * @param faceId 景区id * @return 0没有任务 1 合成中 2 合成成功 */ @ApiOperation("查询用户当前景区的整体视频合成任务状态 0没有任务 1 合成中 2 合成成功 ") - @GetMapping("/getTaskStatus/{scenicId}") - public ApiResponse getAllTaskStatus(@PathVariable("scenicId") Long scenicId) { + @GetMapping("/getTaskStatus/{faceId}") + public ApiResponse getAllTaskStatus(@PathVariable("faceId") Long faceId) { JwtInfo worker = JwtTokenUtil.getWorker(); - return goodsService.getAllTaskStatus(worker.getUserId(),scenicId); + return goodsService.getAllTaskStatus(worker.getUserId(),faceId); } /** @@ -75,5 +78,10 @@ public class AppGoodsController { return goodsService.getTemplateTaskStatus(worker.getUserId(),templateId); } - + @PostMapping("/submitVideoTask") + public ApiResponse submitVideoTask(@RequestBody VideoTaskReq videoTaskReq) { + JwtInfo worker = JwtTokenUtil.getWorker(); + taskService.autoCreateTaskByFaceIdAndTempalteId(videoTaskReq.getFaceId(),videoTaskReq.getTemplateId(),0); + return ApiResponse.success("成功"); + } } diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java index 77de1e8..92a9083 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppScenicController.java @@ -50,9 +50,9 @@ public class AppScenicController { } @ApiOperation("景区视频源素材列表") - @GetMapping("/contentList/{scenicId}") - public ApiResponse> contentList(@PathVariable Long scenicId) { - return appScenicService.contentList(scenicId); + @GetMapping("/contentList/{faceId}") + public ApiResponse> contentList(@PathVariable Long faceId) { + return appScenicService.contentList(faceId); } diff --git a/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java b/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java index bd830e2..31ede28 100644 --- a/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java +++ b/src/main/java/com/ycwl/basic/controller/pc/TemplateController.java @@ -58,8 +58,8 @@ public class TemplateController { return templateService.update(template); } @ApiOperation("修改模板状态") - @PostMapping("/updateStatus") - public ApiResponse updateStatus(@RequestBody Long id) { + @PostMapping("/updateStatus/{id}") + public ApiResponse updateStatus(@PathVariable("id") Long id) { return templateService.updateStatus(id); } diff --git a/src/main/java/com/ycwl/basic/mapper/TaskMapper.java b/src/main/java/com/ycwl/basic/mapper/TaskMapper.java index 3413c62..db725e3 100644 --- a/src/main/java/com/ycwl/basic/mapper/TaskMapper.java +++ b/src/main/java/com/ycwl/basic/mapper/TaskMapper.java @@ -54,4 +54,6 @@ public interface TaskMapper { int setStart(TaskEntity taskUpdate); int setSuccess(TaskEntity taskUpdate); int setFail(TaskEntity taskUpdate); + + TaskEntity getFaceAutomaticTask(Long faceId); } diff --git a/src/main/java/com/ycwl/basic/model/mobile/face/FaceRecognizeResp.java b/src/main/java/com/ycwl/basic/model/mobile/face/FaceRecognizeResp.java new file mode 100644 index 0000000..e53c5a3 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/face/FaceRecognizeResp.java @@ -0,0 +1,9 @@ +package com.ycwl.basic.model.mobile.face; + +import lombok.Data; + +@Data +public class FaceRecognizeResp { + private String url; + private Long faceId; +} diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/VideoTaskReq.java b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoTaskReq.java new file mode 100644 index 0000000..df59c12 --- /dev/null +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/VideoTaskReq.java @@ -0,0 +1,10 @@ +package com.ycwl.basic.model.mobile.goods; + +import lombok.Data; + +@Data +public class VideoTaskReq { + private Long scenicId; + private Long templateId; + private Long faceId; +} diff --git a/src/main/java/com/ycwl/basic/model/pc/task/req/TaskReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/task/req/TaskReqQuery.java index 6f87ea0..e094f3c 100644 --- a/src/main/java/com/ycwl/basic/model/pc/task/req/TaskReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/task/req/TaskReqQuery.java @@ -29,6 +29,7 @@ public class TaskReqQuery extends BaseQueryParameterReq { */ @ApiModelProperty("用户ID") private Long memberId; + private Long faceId; /** * 模板ID */ diff --git a/src/main/java/com/ycwl/basic/model/pc/video/req/VideoReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/video/req/VideoReqQuery.java index e5f57ef..9663d82 100644 --- a/src/main/java/com/ycwl/basic/model/pc/video/req/VideoReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/video/req/VideoReqQuery.java @@ -22,6 +22,8 @@ public class VideoReqQuery extends BaseQueryParameterReq { */ @ApiModelProperty("景区id") private Long scenicId; + @ApiModelProperty("人脸id") + private Long faceId; /** * 用户id */ diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java index 218c877..b62628c 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/AppScenicServiceImpl.java @@ -131,14 +131,16 @@ public class AppScenicServiceImpl implements AppScenicService { } @Override - public ApiResponse> contentList(Long scenicId) { + public ApiResponse> contentList(Long faceId) { JwtInfo worker = JwtTokenUtil.getWorker(); //查询原素材 List contentList = new ArrayList<>(); + FaceRespVO faceRespVO = faceMapper.getById(faceId); + HashMap videoMap = new HashMap<>(); VideoReqQuery videoReqQuery = new VideoReqQuery(); - videoReqQuery.setScenicId(scenicId); + videoReqQuery.setFaceId(faceId); videoReqQuery.setMemberId(worker.getUserId()); //查询成片vlog List videoList = videoMapper.list(videoReqQuery); @@ -154,7 +156,7 @@ public class AppScenicServiceImpl implements AppScenicService { }); TemplateReqQuery templateReqQuery = new TemplateReqQuery(); - templateReqQuery.setScenicId(scenicId); + templateReqQuery.setScenicId(faceRespVO.getScenicId()); List list = templateMapper.list(templateReqQuery); list.forEach(templateRespVO -> { Long templateId = templateRespVO.getId(); @@ -169,7 +171,7 @@ public class AppScenicServiceImpl implements AppScenicService { }); SourceReqQuery sourceReqQuery = new SourceReqQuery(); - videoReqQuery.setScenicId(scenicId); + videoReqQuery.setScenicId(faceRespVO.getScenicId()); videoReqQuery.setMemberId(worker.getUserId()); //查询源素材 List sourceList = sourceMapper.listGroupByType(sourceReqQuery); diff --git a/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java index 97431c3..56a3722 100644 --- a/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/mobile/GoodsServiceImpl.java @@ -200,14 +200,14 @@ public class GoodsServiceImpl implements GoodsService { /** * 查询用户当前景区的视频合成任务状态 - * @param scenicId 景区id + * @param faceId 景区id * @return 0没有任务 1 合成中 2 合成成功 */ @Override - public ApiResponse getAllTaskStatus(Long userId, Long scenicId) { + public ApiResponse getAllTaskStatus(Long userId, Long faceId) { TaskReqQuery taskReqQuery = new TaskReqQuery(); taskReqQuery.setMemberId(userId); - taskReqQuery.setScenicId(scenicId); + taskReqQuery.setFaceId(faceId); int allCount=taskMapper.countTask(taskReqQuery); if(allCount==0){//没有任务 return ApiResponse.success(0); diff --git a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java index afd5af0..ee9513b 100644 --- a/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/pc/FaceServiceImpl.java @@ -8,6 +8,7 @@ import com.ycwl.basic.exception.BaseException; import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.mapper.FaceMapper; import com.ycwl.basic.model.jwt.JwtInfo; +import com.ycwl.basic.model.mobile.face.FaceRecognizeResp; import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq; import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.model.pc.face.req.FaceReqQuery; @@ -157,7 +158,10 @@ public class FaceServiceImpl implements FaceService { statisticsRecordAddReq.setScenicId(scenicId); statisticsRecordAddReq.setMorphId(faceEntity.getId()); statisticsMapper.addStatisticsRecord(statisticsRecordAddReq); - return ApiResponse.success(faceUrl); + FaceRecognizeResp resp = new FaceRecognizeResp(); + resp.setUrl(faceUrl); + resp.setFaceId(faceEntity.getId()); + return ApiResponse.success(resp); } @Override diff --git a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java index a7fda93..2d9008c 100644 --- a/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/impl/task/TaskTaskServiceImpl.java @@ -199,6 +199,10 @@ public class TaskTaskServiceImpl implements TaskService { if (templateList == null || templateList.isEmpty()) { return; } + TaskEntity faceAutomaticTask = taskMapper.getFaceAutomaticTask(id); + if (faceAutomaticTask != null) { + return; + } autoCreateTaskByFaceIdAndTempalteId(id, templateList.get(0).getId(), 1); } @Override diff --git a/src/main/resources/mapper/TaskMapper.xml b/src/main/resources/mapper/TaskMapper.xml index 9b3005f..64c0068 100644 --- a/src/main/resources/mapper/TaskMapper.xml +++ b/src/main/resources/mapper/TaskMapper.xml @@ -91,6 +91,7 @@ from task and worker_id = #{workerId} and member_id = #{memberId} + and face_id = #{faceId} and template_id = #{templateId} and scenic_id = #{scenicId} and `status` = #{status} @@ -98,4 +99,10 @@ from task and create_time <= #{endTime} + diff --git a/src/main/resources/mapper/VideoMapper.xml b/src/main/resources/mapper/VideoMapper.xml index 2117137..994fb9f 100644 --- a/src/main/resources/mapper/VideoMapper.xml +++ b/src/main/resources/mapper/VideoMapper.xml @@ -40,6 +40,11 @@ and v.create_time >= #{startTime} and v.create_time <= #{endTime} + + and v.task_id in ( + select id from task where face_id = #{faceId} + ) +