feat(cover): 短剧新增横版封面字段并在进度接口下发
backend-ci / test (push) Canceled after 0s

- Drama/DramaSaveReqVO/DramaRespVO 新增 horizontalCover,打通后台上传链路
- AppDramaCardVO/AppDramaDetailVO 新增 coverLandscape
- ProgressRespVO 新增 dramaCoverLandscape,继续观看横幅可直接取横版图
This commit is contained in:
jianghaifeng authored and trae-solo-agent committed 2026-10-29 17:32:49 +08:00
1 parent 0d4d510aee
commit f2103f6604
9 files changed
+21 -2

No files matched your search

+3 -1
View File
@@ -466,6 +466,7 @@ app.register.max-per-device-per-day
"id": "Pengantin Pengganti: Kesayangan Presiden Direktur"
},
"dramaCover": "/files/drama_cover/12.jpg",
"dramaCoverLandscape": "/files/drama_cover/12-wide.jpg",
"episodeNumber": 6,
"totalEpisodes": 68,
"viewCount": "1800",
@@ -488,7 +489,8 @@ app.register.max-per-device-per-day
| --- | --- | --- |
| `dramaTitle` | string / null | 短剧中文标题,旧客户端回退用 |
| `titleLocales` | object / null | 短剧标题语言表,key 为 `zh` / `en` / `id`。客户端按当前语言取,没有对应语言时回退 `zh` |
| `dramaCover` | string / null | 短剧封面 |
| `dramaCover` | string / null | 短剧竖版封面 |
| `dramaCoverLandscape` | string / null | 短剧横版封面,供继续观看横幅等横向位使用;为空时客户端回退 `dramaCover` |
| `episodeNumber` | int / null | 当前续看集号 `ep_no` |
| `totalEpisodes` | int / null | 短剧总集数 |
| `viewCount` | Long(JSON 字符串)/ null | 短剧热度,取 `drama.view_count`。`playCount` 是用户自己的播放次数 |
@@ -206,6 +206,7 @@ public class AppCatalogService {
detail.setTitleLocales(titles);
detail.setSynopsisLocales(synopses);
detail.setCover(drama.getCoverUrl());
detail.setCoverLandscape(drama.getHorizontalCoverUrl());
detail.setTypes(types);
fillDetailTag(detail, drama);
detail.setTotalEpisodes(drama.getTotalEpisodes());
@@ -348,6 +349,7 @@ public class AppCatalogService {
drama.getSynopsisLocales(), drama.getSynopsis(), null, null);
card.setTitleLocales(titles);
card.setCover(drama.getCoverUrl());
card.setCoverLandscape(drama.getHorizontalCoverUrl());
card.setSynopsisLocales(shortLocales(synopses));
card.setTypes(types);
fillTag(card, drama, tags);
@@ -15,6 +15,8 @@ public class AppDramaCardVO {
private Long id;
private Map<String, String> titleLocales;
private String cover;
/** 横版封面(16:9),横幅等横向位优先用它;空串表示未上传,客户端回退竖版。 */
private String coverLandscape;
private Map<String, String> synopsisLocales;
/** 短剧选中的全部类型,每项是一份语言表。 */
private List<Map<String, String>> types;
@@ -14,6 +14,8 @@ public class AppDramaDetailVO {
private Map<String, String> titleLocales;
private Map<String, String> synopsisLocales;
private String cover;
/** 横版封面(16:9);空串表示未上传。 */
private String coverLandscape;
private List<Map<String, String>> types;
private Map<String, String> tagLocales;
/** 标签语义码,如 NEW_ARRIVAL;空表示未配置。 */
@@ -464,10 +464,13 @@ public class DramaService {
if (isNew || req.getCover() != null) {
drama.setCoverUrl(req.getCover() == null ? "" : req.getCover());
}
if (isNew || req.getHorizontalCover() != null) {
drama.setHorizontalCoverUrl(
req.getHorizontalCover() == null ? "" : req.getHorizontalCover());
}
if (isNew || req.getTrailerUrl() != null) {
drama.setTrailerUrl(req.getTrailerUrl() == null ? "" : req.getTrailerUrl());
}
drama.setHorizontalCoverUrl(drama.getHorizontalCoverUrl() == null ? "" : drama.getHorizontalCoverUrl());
if (isNew || req.getLanguage() != null) {
drama.setLanguage(req.getLanguage() == null ? "zh-CN" : req.getLanguage());
}
@@ -530,6 +533,7 @@ public class DramaService {
vo.setSynopsisLocales(synopses);
vo.setSubtitle(drama.getSubtitle());
vo.setCover(drama.getCoverUrl());
vo.setHorizontalCover(drama.getHorizontalCoverUrl());
vo.setTrailerUrl(drama.getTrailerUrl());
vo.setLanguage(drama.getLanguage());
vo.setDramaType(dramaTypes.get(0));
@@ -27,6 +27,8 @@ public class DramaRespVO {
private String description;
private java.util.Map<String, String> synopsisLocales;
private String cover;
/** 横版封面(16:9)。 */
private String horizontalCover;
/** 整剧预告片地址 */
private String trailerUrl;
private String language;
@@ -26,6 +26,8 @@ public class DramaSaveReqVO {
/** 勾选语言的简介。 */
private java.util.Map<String, String> synopsisLocales;
private String cover;
/** 横版封面(16:9),用于横幅等横向位;不传则保持原值。 */
private String horizontalCover;
/** 整剧预告片地址(复用已有的 drama.trailer_url 列) */
private String trailerUrl;
private String language;
@@ -626,6 +626,7 @@ public class WatchProgressService {
vo.setTitleLocales(titles);
vo.setDramaTitle(ContentLocaleTexts.value(titles, ContentLocaleTexts.ZH));
vo.setDramaCover(drama.getCoverUrl());
vo.setDramaCoverLandscape(drama.getHorizontalCoverUrl());
vo.setTotalEpisodes(drama.getTotalEpisodes());
vo.setViewCount(drama.getViewCount());
}
@@ -19,6 +19,8 @@ public class ProgressRespVO {
private Map<String, String> titleLocales;
/** 短剧封面,仅列表类接口批量装配。 */
private String dramaCover;
/** 短剧横版封面,仅列表类接口批量装配;为空时客户端回退 dramaCover。 */
private String dramaCoverLandscape;
/** 当前续看集号。 */
private Integer episodeNumber;
/** 短剧总集数;短剧不存在时为空。 */