diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java index a51086e..615846b 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppFaceController.java @@ -78,4 +78,13 @@ AppFaceController { List contentPageVOS = faceService.faceContentList(faceId); return ApiResponse.success(contentPageVOS); } + + @ApiOperation("绑定人脸") + @PostMapping("/{faceId}/bind") + public ApiResponse bind(@PathVariable Long faceId) { + JwtInfo worker = JwtTokenUtil.getWorker(); + Long userId = worker.getUserId(); + faceService.bindFace(faceId, userId); + return ApiResponse.success("OK"); + } } diff --git a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java index 94991a9..8e9e198 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/goods/GoodsDetailVO.java @@ -43,6 +43,7 @@ public class GoodsDetailVO { private Integer isBuy; private Integer isFree; private Integer parts; + private Integer sort; public Integer getSourceType() { return goodsType; } diff --git a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java index 93d7d66..82153e4 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java +++ b/src/main/java/com/ycwl/basic/model/mobile/scenic/content/ContentPageVO.java @@ -35,4 +35,5 @@ public class ContentPageVO { private BigDecimal duration; private Integer goodsType; private int freeCount; + private Integer sort; } diff --git a/src/main/java/com/ycwl/basic/service/pc/FaceService.java b/src/main/java/com/ycwl/basic/service/pc/FaceService.java index 6079de7..5360dd4 100644 --- a/src/main/java/com/ycwl/basic/service/pc/FaceService.java +++ b/src/main/java/com/ycwl/basic/service/pc/FaceService.java @@ -36,4 +36,6 @@ public interface FaceService { List faceContentList(Long faceId); ApiResponse> contentListUseDefaultFace(); + + void bindFace(Long faceId, Long userId); } diff --git a/src/main/java/com/ycwl/basic/service/pc/SourceService.java b/src/main/java/com/ycwl/basic/service/pc/SourceService.java index eb1998d..d17a3ff 100644 --- a/src/main/java/com/ycwl/basic/service/pc/SourceService.java +++ b/src/main/java/com/ycwl/basic/service/pc/SourceService.java @@ -21,4 +21,5 @@ public interface SourceService { ApiResponse update(SourceEntity source); ApiResponse cutVideo(Long id); + ApiResponse uploadAndUpdateUrl(Long id, org.springframework.web.multipart.MultipartFile file); } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index 9eecaa9..2b28a44 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -381,6 +381,7 @@ public class FaceServiceImpl implements FaceService { List memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId()); contentPageVO.setGoodsType(0); contentPageVO.setContentType(1); + contentPageVO.setSort(contentPageVO.getSort()); if (!memberVideoEntityList.isEmpty()) { contentPageVO.setIsBuy(memberVideoEntityList.getFirst().getIsBuy()); contentPageVO.setContentId(memberVideoEntityList.getFirst().getVideoId()); @@ -420,6 +421,8 @@ public class FaceServiceImpl implements FaceService { ContentPageVO sourceImageContent = new ContentPageVO(); sourceVideoContent.setName("录像集"); sourceImageContent.setName("照片集"); + sourceVideoContent.setSort(9999); + sourceImageContent.setSort(9999); sourceVideoContent.setScenicId(faceRespVO.getScenicId()); sourceImageContent.setScenicId(faceRespVO.getScenicId()); sourceVideoContent.setGoodsType(1); @@ -489,5 +492,10 @@ public class FaceServiceImpl implements FaceService { return ApiResponse.success(contentPageVOS); } + @Override + public void bindFace(Long faceId, Long userId) { + + } + } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/SourceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/SourceServiceImpl.java index 8207034..4aa8aa3 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/SourceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/SourceServiceImpl.java @@ -7,13 +7,17 @@ import com.ycwl.basic.model.pc.source.entity.SourceEntity; import com.ycwl.basic.model.pc.source.req.SourceReqQuery; import com.ycwl.basic.model.pc.source.resp.SourceRespVO; import com.ycwl.basic.repository.SourceRepository; +import com.ycwl.basic.service.pc.ScenicService; import com.ycwl.basic.service.pc.SourceService; +import com.ycwl.basic.storage.adapters.IStorageAdapter; import com.ycwl.basic.task.VideoPieceGetter; import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.SnowFlakeUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import com.ycwl.basic.storage.StorageFactory; import java.net.MalformedURLException; import java.net.URL; @@ -30,6 +34,8 @@ public class SourceServiceImpl implements SourceService { private SourceMapper sourceMapper; @Autowired private SourceRepository sourceRepository; + @Autowired + private ScenicService scenicService; @Override public ApiResponse> pageQuery(SourceReqQuery sourceReqQuery) { @@ -137,4 +143,29 @@ public class SourceServiceImpl implements SourceService { } return ApiResponse.success("任务已下发"); } + + @Override + public ApiResponse uploadAndUpdateUrl(Long id, MultipartFile file) { + SourceRespVO source = sourceMapper.getById(id); + if (source == null) { + return ApiResponse.fail("该素材不存在"); + } + try { + IStorageAdapter adapter = scenicService.getScenicStorageAdapter(source.getScenicId()); + String uploadedUrl = adapter.uploadFile(file, "source", String.valueOf(id)); + + SourceEntity sourceUpd = new SourceEntity(); + sourceUpd.setId(id); + sourceUpd.setUrl(uploadedUrl); + + int updateResult = sourceMapper.update(sourceUpd); + if (updateResult > 0) { + return ApiResponse.success(uploadedUrl); + } else { + return ApiResponse.fail("更新URL失败"); + } + } catch (Exception e) { + return ApiResponse.fail("文件上传失败: " + e.getMessage()); + } + } } diff --git a/src/main/resources/mapper/TemplateMapper.xml b/src/main/resources/mapper/TemplateMapper.xml index ea4453c..2501ec4 100644 --- a/src/main/resources/mapper/TemplateMapper.xml +++ b/src/main/resources/mapper/TemplateMapper.xml @@ -112,7 +112,7 @@