From 1486e518cccb9c491649e4b1dcc20e93fb122c9d Mon Sep 17 00:00:00 2001 From: none Date: Wed, 8 Mar 2023 13:42:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=A2=9E=E5=8A=A0=E5=B0=81?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ResourceController.java | 12 ++++++++---- .../xyz/playedu/api/domain/ResourceVideo.java | 18 +++++++++++++++--- .../api/mapper/ResourceVideoMapper.java | 2 +- .../api/request/backend/ResourceRequest.java | 2 ++ .../api/service/ResourceVideoService.java | 5 ++--- .../service/impl/ResourceVideoServiceImpl.java | 5 +++-- .../resources/mapper/ResourceVideoMapper.xml | 4 +++- 7 files changed, 34 insertions(+), 14 deletions(-) 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 27f2c88..adc4550 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/ResourceController.java @@ -76,9 +76,9 @@ public class ResourceController { 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); + List resourceVideos = resourceVideoService.chunksByRids(result.getData().stream().map(Resource::getId).toList()); + Map resourceVideosExtra = resourceVideos.stream().collect(Collectors.toMap(ResourceVideo::getRid, e -> e)); + data.put("videos_extra", resourceVideosExtra); } return JsonResponse.data(data); @@ -109,17 +109,21 @@ public class ResourceController { // 如果是视频则必须传递duration参数 Integer duration = req.getDuration(); + String poster = req.getPoster(); boolean isVideoType = BackendConstant.RESOURCE_TYPE_VIDEO.equals(type); if (isVideoType) { if (duration == null || duration == 0) { return JsonResponse.error("duration参数必须存在且大于0"); } + if (poster == null || poster.trim().length() == 0) { + return JsonResponse.error("视频封面为空"); + } } Resource res = resourceService.create(req.getCategoryId(), type, req.getName(), extension, req.getSize(), disk, req.getFileId(), req.getPath(), req.getUrl()); if (isVideoType) { - resourceVideoService.create(res.getId(), duration); + resourceVideoService.create(res.getId(), duration, poster); } return JsonResponse.data(res); diff --git a/src/main/java/xyz/playedu/api/domain/ResourceVideo.java b/src/main/java/xyz/playedu/api/domain/ResourceVideo.java index df29897..ffa4734 100644 --- a/src/main/java/xyz/playedu/api/domain/ResourceVideo.java +++ b/src/main/java/xyz/playedu/api/domain/ResourceVideo.java @@ -7,27 +7,36 @@ import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; /** - * + * * @TableName resource_videos */ @TableName(value ="resource_videos") @Data public class ResourceVideo implements Serializable { /** - * + * */ private Integer rid; + /** + * 封面 + */ + private String poster; + /** * 视频时长[s] */ private Integer duration; - @JsonProperty("created_at") + /** + * 创建时间 + */ + @JsonIgnore private Date createdAt; @TableField(exist = false) @@ -46,6 +55,7 @@ public class ResourceVideo implements Serializable { } ResourceVideo other = (ResourceVideo) that; return (this.getRid() == null ? other.getRid() == null : this.getRid().equals(other.getRid())) + && (this.getPoster() == null ? other.getPoster() == null : this.getPoster().equals(other.getPoster())) && (this.getDuration() == null ? other.getDuration() == null : this.getDuration().equals(other.getDuration())) && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt())); } @@ -55,6 +65,7 @@ public class ResourceVideo implements Serializable { final int prime = 31; int result = 1; result = prime * result + ((getRid() == null) ? 0 : getRid().hashCode()); + result = prime * result + ((getPoster() == null) ? 0 : getPoster().hashCode()); result = prime * result + ((getDuration() == null) ? 0 : getDuration().hashCode()); result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode()); return result; @@ -67,6 +78,7 @@ public class ResourceVideo implements Serializable { sb.append(" ["); sb.append("Hash = ").append(hashCode()); sb.append(", rid=").append(rid); + sb.append(", poster=").append(poster); sb.append(", duration=").append(duration); sb.append(", createdAt=").append(createdAt); sb.append(", serialVersionUID=").append(serialVersionUID); diff --git a/src/main/java/xyz/playedu/api/mapper/ResourceVideoMapper.java b/src/main/java/xyz/playedu/api/mapper/ResourceVideoMapper.java index db850e9..7e031d0 100644 --- a/src/main/java/xyz/playedu/api/mapper/ResourceVideoMapper.java +++ b/src/main/java/xyz/playedu/api/mapper/ResourceVideoMapper.java @@ -7,7 +7,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @author tengteng * @description 针对表【resource_videos】的数据库操作Mapper -* @createDate 2023-03-02 15:13:03 +* @createDate 2023-03-08 13:39:06 * @Entity xyz.playedu.api.domain.ResourceVideo */ @Mapper diff --git a/src/main/java/xyz/playedu/api/request/backend/ResourceRequest.java b/src/main/java/xyz/playedu/api/request/backend/ResourceRequest.java index 067abe0..ac77855 100644 --- a/src/main/java/xyz/playedu/api/request/backend/ResourceRequest.java +++ b/src/main/java/xyz/playedu/api/request/backend/ResourceRequest.java @@ -47,4 +47,6 @@ public class ResourceRequest { private Integer duration; + private String poster; + } diff --git a/src/main/java/xyz/playedu/api/service/ResourceVideoService.java b/src/main/java/xyz/playedu/api/service/ResourceVideoService.java index 92ae338..1eabad5 100644 --- a/src/main/java/xyz/playedu/api/service/ResourceVideoService.java +++ b/src/main/java/xyz/playedu/api/service/ResourceVideoService.java @@ -4,7 +4,6 @@ import xyz.playedu.api.domain.ResourceVideo; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; -import java.util.Map; /** * @author tengteng @@ -13,9 +12,9 @@ import java.util.Map; */ public interface ResourceVideoService extends IService { - void create(Integer resourceId, Integer duration); + void create(Integer resourceId, Integer duration, String poster); void removeByRid(Integer resourceId); - List chunksByResourceIds(List resourceIds); + List chunksByRids(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 346de05..54aecd6 100644 --- a/src/main/java/xyz/playedu/api/service/impl/ResourceVideoServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/ResourceVideoServiceImpl.java @@ -18,10 +18,11 @@ import java.util.Map; @Service public class ResourceVideoServiceImpl extends ServiceImpl implements ResourceVideoService { @Override - public void create(Integer resourceId, Integer duration) { + public void create(Integer resourceId, Integer duration, String poster) { ResourceVideo video = new ResourceVideo(); video.setRid(resourceId); video.setDuration(duration); + video.setPoster(poster); video.setCreatedAt(new Date()); save(video); } @@ -32,7 +33,7 @@ public class ResourceVideoServiceImpl extends ServiceImpl chunksByResourceIds(List resourceIds) { + public List chunksByRids(List resourceIds) { return list(query().getWrapper().in("rid", resourceIds)); } } diff --git a/src/main/resources/mapper/ResourceVideoMapper.xml b/src/main/resources/mapper/ResourceVideoMapper.xml index 5e65725..2b6e507 100644 --- a/src/main/resources/mapper/ResourceVideoMapper.xml +++ b/src/main/resources/mapper/ResourceVideoMapper.xml @@ -6,11 +6,13 @@ + - rid,duration,created_at + rid,poster,duration, + created_at