diff --git a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java index 8a47370..7414ed2 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java @@ -12,6 +12,7 @@ import xyz.playedu.api.config.MinioConfig; import xyz.playedu.api.constant.BackendConstant; import xyz.playedu.api.domain.Resource; import xyz.playedu.api.domain.ResourceCategory; +import xyz.playedu.api.domain.ResourceVideo; import xyz.playedu.api.exception.NotFoundException; import xyz.playedu.api.request.backend.ResourceRequest; import xyz.playedu.api.service.ResourceCategoryService; @@ -22,6 +23,7 @@ import xyz.playedu.api.types.paginate.PaginationResult; import xyz.playedu.api.types.paginate.ResourcePaginateFilter; import java.util.*; +import java.util.stream.Collectors; /** * @Author 杭州白书科技有限公司 @@ -75,7 +77,16 @@ public class ResourceController { PaginationResult result = resourceService.paginate(page, size, filter); - return JsonResponse.data(result); + HashMap data = new HashMap<>(); + data.put("result", result); + + if (type.equals(BackendConstant.RESOURCE_TYPE_VIDEO)) { + List resourceVideos = resourceVideoService.chunksByResourceIds(result.getData().stream().map(Resource::getId).collect(Collectors.toList())); + Map resourceVideosMap = resourceVideos.stream().collect(Collectors.toMap(ResourceVideo::getRid, ResourceVideo::getDuration)); + data.put("video_duration", resourceVideosMap); + } + + return JsonResponse.data(data); } @GetMapping("/create") diff --git a/src/main/java/xyz/playedu/api/service/ResourceVideoService.java b/src/main/java/xyz/playedu/api/service/ResourceVideoService.java index 47806f1..92ae338 100644 --- a/src/main/java/xyz/playedu/api/service/ResourceVideoService.java +++ b/src/main/java/xyz/playedu/api/service/ResourceVideoService.java @@ -3,14 +3,19 @@ package xyz.playedu.api.service; import xyz.playedu.api.domain.ResourceVideo; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + /** -* @author tengteng -* @description 针对表【resource_videos】的数据库操作Service -* @createDate 2023-03-02 15:13:03 -*/ + * @author tengteng + * @description 针对表【resource_videos】的数据库操作Service + * @createDate 2023-03-02 15:13:03 + */ public interface ResourceVideoService extends IService { void create(Integer resourceId, Integer duration); void removeByRid(Integer resourceId); + + List chunksByResourceIds(List resourceIds); } diff --git a/src/main/java/xyz/playedu/api/service/impl/ResourceVideoServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/ResourceVideoServiceImpl.java index 40e6e53..346de05 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceVideoServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceVideoServiceImpl.java @@ -7,15 +7,16 @@ import xyz.playedu.api.mapper.ResourceVideoMapper; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; +import java.util.Map; /** -* @author tengteng -* @description 针对表【resource_videos】的数据库操作Service实现 -* @createDate 2023-03-02 15:13:03 -*/ + * @author tengteng + * @description 针对表【resource_videos】的数据库操作Service实现 + * @createDate 2023-03-02 15:13:03 + */ @Service -public class ResourceVideoServiceImpl extends ServiceImpl - implements ResourceVideoService{ +public class ResourceVideoServiceImpl extends ServiceImpl implements ResourceVideoService { @Override public void create(Integer resourceId, Integer duration) { ResourceVideo video = new ResourceVideo(); @@ -29,6 +30,11 @@ public class ResourceVideoServiceImpl extends ServiceImpl chunksByResourceIds(List resourceIds) { + return list(query().getWrapper().in("rid", resourceIds)); + } }