From 8bfcdc67288b607e333da334ec84abc58ff6dfc4 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 12 六月 2025 15:11:11 +0800 Subject: [PATCH] 视频表增加字段 --- framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoContentTypeEnum.java | 46 +++++++++++ framework/src/main/java/cn/lili/modules/lmk/domain/query/AuthorVideoQuery.java | 6 + framework/src/main/java/cn/lili/cos/CosSTS.java | 3 framework/src/main/java/cn/lili/modules/lmk/domain/form/WxVideoForm.java | 14 ++- framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoTypeEnum.java | 47 +++++++++++ framework/src/main/java/cn/lili/utils/COSUtil.java | 1 buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java | 12 -- framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java | 18 ++-- framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java | 7 + framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java | 6 + framework/src/main/resources/mapper/lmk/VideoMapper.xml | 7 + manager-api/src/main/java/cn/lili/controller/lmk/VideoController.java | 10 - framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java | 6 buyer-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java | 7 - framework/src/main/java/cn/lili/modules/lmk/mapper/VideoMapper.java | 2 15 files changed, 147 insertions(+), 45 deletions(-) diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java index 1841afb..a1fba30 100644 --- a/buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java +++ b/buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java @@ -1,27 +1,21 @@ package cn.lili.controller.lmk; -import cn.lili.base.AbsQuery; import cn.lili.group.Update; import cn.lili.group.Add; import cn.lili.modules.lmk.domain.form.VideoFootPrintForm; import cn.lili.modules.lmk.domain.form.VideoHomePageInfoForm; +import cn.lili.modules.lmk.domain.form.WxVideoForm; import cn.lili.modules.lmk.domain.query.AuthorVideoQuery; -import cn.lili.modules.member.entity.dos.FootPrint; import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; import lombok.RequiredArgsConstructor; import java.util.List; -import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotEmpty; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import cn.lili.modules.lmk.service.VideoService; import cn.lili.base.Result; -import cn.lili.modules.lmk.domain.form.VideoForm; import cn.lili.modules.lmk.domain.query.VideoQuery; -import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; /** * 瑙嗛鍐呭 鍓嶇鎺у埗鍣� @@ -40,13 +34,13 @@ @PostMapping("/publish") @ApiOperation(value = "鍙戝竷瑙嗛", notes = "鍙戝竷瑙嗛") - public Result publish(@RequestBody @Validated({Add.class}) VideoForm form) { + public Result publish(@RequestBody @Validated({Add.class}) WxVideoForm form) { return videoService.publish(form); } @PutMapping @ApiOperation(value = "淇敼", notes = "淇敼") - public Result update(@RequestBody @Validated(Update.class) VideoForm form) { + public Result update(@RequestBody @Validated(Update.class) WxVideoForm form) { return videoService.update(form); } diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java index 3504538..4ae6ea5 100644 --- a/buyer-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java +++ b/buyer-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java @@ -1,20 +1,13 @@ package cn.lili.controller.lmk; import cn.lili.base.Result; -import cn.lili.group.Update; -import cn.lili.modules.lmk.domain.form.VideoForm; -import cn.lili.modules.lmk.domain.query.VideoQuery; import cn.lili.modules.lmk.domain.query.WxVideoTagQuery; -import cn.lili.modules.lmk.service.VideoService; import cn.lili.modules.lmk.service.VideoTagService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; - -import javax.validation.constraints.NotEmpty; -import java.util.List; /** * 瑙嗛鏍囩 鍓嶇鎺у埗鍣� diff --git a/framework/src/main/java/cn/lili/cos/CosSTS.java b/framework/src/main/java/cn/lili/cos/CosSTS.java index ae955e1..4a1e188 100644 --- a/framework/src/main/java/cn/lili/cos/CosSTS.java +++ b/framework/src/main/java/cn/lili/cos/CosSTS.java @@ -36,5 +36,6 @@ @ApiModelProperty("region") private String region; - + @ApiModelProperty("绔偣锛岀敤浜庢嫾鎺ilekey鐩存帴棰勮") + private String endpoint; } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/WxVideoForm.java similarity index 82% rename from framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoForm.java rename to framework/src/main/java/cn/lili/modules/lmk/domain/form/WxVideoForm.java index bcf2858..791a4bb 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoForm.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/WxVideoForm.java @@ -9,14 +9,13 @@ import javax.validation.Valid; import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; + import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; -import java.util.Date; import java.util.List; /** @@ -27,7 +26,7 @@ */ @Data @ApiModel(value = "Video琛ㄥ崟", description = "瑙嗛鍐呭琛ㄥ崟") -public class VideoForm extends AbsForm { +public class WxVideoForm extends AbsForm { @NotBlank(message = "瑙嗛涓嶈兘涓虹┖", groups = {Add.class, Update.class}) @@ -41,6 +40,13 @@ @ApiModelProperty("瑙嗛灏侀潰") @NotBlank(message = "瑙嗛灏侀潰涓嶈兘涓虹┖", groups = {Add.class, Update.class}) private String cover; + + @ApiModelProperty("瑙嗛鍐呭绫诲瀷锛氳棰戙�佸浘鐗�") + @NotBlank(message = "瑙嗛绫诲瀷涓嶈兘涓虹┖") + private String videoContentType; + + @ApiModelProperty("鍥剧墖鍒楄〃锛屽鏋渧ideoContentType鏄浘鐗囷紝鍒欏繀椤讳紶鍊�") + private List<String> videoImgs; @ApiModelProperty("瑙嗛鏍囩") @Length(max = 5, message = "鏈�澶氬彧鑳芥坊鍔犱簲涓爣绛�") @@ -60,7 +66,7 @@ @Valid private FileInfoForm fileInfo; - public static Video getEntityByForm(@NonNull VideoForm form, Video entity) { + public static Video getEntityByForm(@NonNull WxVideoForm form, Video entity) { if(entity == null) { entity = new Video(); } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/AuthorVideoQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/AuthorVideoQuery.java index 5b59eb5..f2888f2 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/AuthorVideoQuery.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/AuthorVideoQuery.java @@ -1,6 +1,7 @@ package cn.lili.modules.lmk.domain.query; import cn.lili.base.AbsQuery; +import cn.lili.modules.lmk.enums.general.VideoTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -24,5 +25,10 @@ @ApiModelProperty(hidden = true) private Boolean authorSelf; + /** + * @see cn.lili.modules.lmk.enums.general.VideoTypeEnum + */ + @ApiModelProperty("瑙嗛绫诲瀷锛氳棰戙�佸ぇ鍋ュ悍銆佺鍘紝榛樿涓嶄紶鏌ヨ棰�") + private String videoType = VideoTypeEnum.VIDEO.getValue(); } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java index 09a5b83..59cfb74 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java @@ -1,6 +1,7 @@ package cn.lili.modules.lmk.domain.query; import cn.lili.base.AbsQuery; +import cn.lili.modules.lmk.enums.general.VideoTypeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -29,5 +30,10 @@ @ApiModelProperty("鐘舵��") private String status; + /** + * @see cn.lili.modules.lmk.enums.general.VideoTypeEnum + */ + @ApiModelProperty("瑙嗛绫诲瀷锛氳棰戙�佸ぇ鍋ュ悍銆佺鍘紝榛樿涓嶄紶鏌ヨ棰�") + private String videoType = VideoTypeEnum.VIDEO.getValue(); } diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java index ac1a18d..8aa7959 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java @@ -2,6 +2,8 @@ import cn.lili.base.AbsQuery; import java.util.List; + +import cn.lili.modules.lmk.enums.general.VideoTypeEnum; import org.springframework.lang.NonNull; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -25,5 +27,10 @@ @ApiModelProperty("瑙嗛鏉ユ簮锛歳ecommend鎺ㄨ崘銆乤uthor鏌愪綔鑰呯殑瑙嗛銆乧ollect鏌愪綔鑰呮敹钘忕殑瑙嗛") private String videoFrom; + /** + * @see cn.lili.modules.lmk.enums.general.VideoTypeEnum + */ + @ApiModelProperty("瑙嗛绫诲瀷锛氳棰戙�佸ぇ鍋ュ悍銆佺鍘紝榛樿涓嶄紶鏌ヨ棰�") + private String videoType = VideoTypeEnum.VIDEO.getValue(); } diff --git a/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoContentTypeEnum.java b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoContentTypeEnum.java new file mode 100644 index 0000000..d805852 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoContentTypeEnum.java @@ -0,0 +1,46 @@ +package cn.lili.modules.lmk.enums.general; + +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; + +/** + * 瑙嗛鍐呭绫诲瀷 + * + * @author锛歺p + * @date锛�2025/5/14 10:30 + */ +@Getter +public enum VideoContentTypeEnum { + + VIDEO("video", "瑙嗛"), + IMG("img", "鍥剧墖"), + ; + + private final String value; + + + private final String desc; + + VideoContentTypeEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + /** + * 鑾峰彇鍚箟 + * + * @param value + * @return + */ + public static String getDescByValue(String value) { + if (StringUtils.isBlank(value)) { + return null; + } + for (VideoContentTypeEnum e : VideoContentTypeEnum.values()){ + if (value.equals(e.getValue())) { + return e.getDesc(); + } + } + return null; + } +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoTypeEnum.java b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoTypeEnum.java new file mode 100644 index 0000000..be8baae --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoTypeEnum.java @@ -0,0 +1,47 @@ +package cn.lili.modules.lmk.enums.general; + +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; + +/** + * 瑙嗛绫诲瀷 + * + * @author锛歺p + * @date锛�2025/5/14 10:30 + */ +@Getter +public enum VideoTypeEnum { + + VIDEO("video", "瑙嗛"), + HEALTH("health", "澶у仴搴�"), + COOK("cook", "绁炲帹"), + ; + + private final String value; + + + private final String desc; + + VideoTypeEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + /** + * 鑾峰彇鍚箟 + * + * @param value + * @return + */ + public static String getDescByValue(String value) { + if (StringUtils.isBlank(value)) { + return null; + } + for (VideoTypeEnum e : VideoTypeEnum.values()){ + if (value.equals(e.getValue())) { + return e.getDesc(); + } + } + return null; + } +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoMapper.java index 2b91e57..4b2675f 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoMapper.java +++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoMapper.java @@ -49,7 +49,7 @@ * * @return */ - IPage recommendVideo(IPage page); + IPage recommendVideo(IPage page, @Param("query") VideoQuery query); /** * 鎵归噺鏇存柊瑙嗛鏀惰棌鏁伴噺 diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java b/framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java index 01b4655..0a4b93d 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java @@ -23,14 +23,14 @@ * @param form * @return */ - Result add(VideoForm form); + Result add(WxVideoForm form); /** * 淇敼 * @param form * @return */ - Result update(VideoForm form); + Result update(WxVideoForm form); /** * 鎵归噺鍒犻櫎 @@ -72,7 +72,7 @@ * @param form * @return */ - Result publish(VideoForm form); + Result publish(WxVideoForm form); /** * 骞冲彴绔棰戝垎椤� diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java index b892c29..a9875df 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java @@ -6,10 +6,7 @@ import cn.lili.modules.lmk.domain.query.AuthorVideoQuery; import cn.lili.modules.lmk.domain.query.ManagerVideoQuery; import cn.lili.modules.lmk.domain.vo.*; -import cn.lili.modules.lmk.enums.general.TagCreateTypeEnum; -import cn.lili.modules.lmk.enums.general.VideoStatusEnum; -import cn.lili.modules.lmk.enums.general.VideoSupportOpEnum; -import cn.lili.modules.lmk.enums.general.ViewTypeEnum; +import cn.lili.modules.lmk.enums.general.*; import cn.lili.modules.lmk.service.*; import cn.lili.modules.member.entity.dos.FootPrint; import cn.lili.modules.member.entity.dos.Member; @@ -65,8 +62,8 @@ * @return */ @Override - public Result add(VideoForm form) { - Video entity = VideoForm.getEntityByForm(form, null); + public Result add(WxVideoForm form) { + Video entity = WxVideoForm.getEntityByForm(form, null); baseMapper.insert(entity); return Result.ok("娣诲姞鎴愬姛"); } @@ -77,7 +74,7 @@ * @return */ @Override - public Result update(VideoForm form) { + public Result update(WxVideoForm form) { Video entity = baseMapper.selectById(form.getId()); // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 @@ -151,12 +148,13 @@ @Override @Transactional(rollbackFor = Exception.class) - public Result publish(VideoForm form) { + public Result publish(WxVideoForm form) { // 1.淇濆瓨瑙嗛 - Video video = VideoForm.getEntityByForm(form, null); + Video video = WxVideoForm.getEntityByForm(form, null); video.setAuthorId(UserContext.getCurrentUserId()); video.setStatus(VideoStatusEnum.AUDITING.getValue()); video.setCoverUrl(form.getCover()); + video.setVideoType(VideoTypeEnum.VIDEO.getValue()); baseMapper.insert(video); // 2.澶勭悊鏍囩 List<VideoTagRef> videoTagRefs = form.getTags().stream().map(tag -> { @@ -268,7 +266,7 @@ IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class); switch (query.getVideoFrom()) { case "recommend": - baseMapper.recommendVideo(page); + baseMapper.recommendVideo(page, query); break; case "author": AuthorVideoQuery query1 = new AuthorVideoQuery(); diff --git a/framework/src/main/java/cn/lili/utils/COSUtil.java b/framework/src/main/java/cn/lili/utils/COSUtil.java index 41e525b..c6b5731 100644 --- a/framework/src/main/java/cn/lili/utils/COSUtil.java +++ b/framework/src/main/java/cn/lili/utils/COSUtil.java @@ -114,6 +114,7 @@ cosSTS.setStsEndTime(cosSTS.getStsStartTime() + cosConfigProperty.getDurationSeconds() - 30); cosSTS.setBucket(cosConfigProperty.getBucket()); cosSTS.setRegion(cosConfigProperty.getRegion()); + cosSTS.setEndpoint(cosConfigProperty.getEndpoint()); return cosSTS; } catch (Exception e) { e.printStackTrace(); diff --git a/framework/src/main/resources/mapper/lmk/VideoMapper.xml b/framework/src/main/resources/mapper/lmk/VideoMapper.xml index d28f9d9..c9ae243 100644 --- a/framework/src/main/resources/mapper/lmk/VideoMapper.xml +++ b/framework/src/main/resources/mapper/lmk/VideoMapper.xml @@ -141,7 +141,7 @@ ) AS LVT ON LV.id = LVT.video_id </if> WHERE - LV.delete_flag = 0 + LV.delete_flag = 0 AND LV.video_type = #{query.videoType} <if test="query.title != null and query.title != ''">AND LV.title LIKE CONCAT('%', #{query.title}, '%')</if> <if test="query.authorId != null and query.authorId != ''">AND LV.author_id = #{query.authorId}</if> <if test="query.status != null and query.status != ''">AND LV.status = #{query.status}</if> @@ -176,7 +176,7 @@ lmk_video LV LEFT JOIN li_member LM ON LV.author_id = LM.id WHERE - LV.delete_flag = 0 AND LV.status = '1' + LV.delete_flag = 0 AND LV.status = '1' AND LV.video_type = #{query.videoType} </select> @@ -272,6 +272,7 @@ AND LV.status = '1' </if> AND LV.author_id = #{query.authorId} + AND LV.video_type = #{query.videoType} ORDER BY LV.collect_num DESC </select> @@ -305,7 +306,7 @@ INNER JOIN lmk_video LV ON LMC.ref_id = LV.id AND LV.delete_flag = 0 AND LV.status = '1' LEFT JOIN li_member LM ON LV.author_id = LM.id WHERE - LMC.delete_flag = 0 AND LMC.user_id = #{query.authorId} AND LMC.collect_type = 'video' + LMC.delete_flag = 0 AND LMC.user_id = #{query.authorId} AND LMC.collect_type = 'video' AND LV.video_type = #{query.videoType} ORDER BY LMC.create_time DESC </select> diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/VideoController.java b/manager-api/src/main/java/cn/lili/controller/lmk/VideoController.java index de00a7a..b496f0d 100644 --- a/manager-api/src/main/java/cn/lili/controller/lmk/VideoController.java +++ b/manager-api/src/main/java/cn/lili/controller/lmk/VideoController.java @@ -5,20 +5,16 @@ import cn.lili.modules.lmk.domain.form.VideoAuditingForm; import cn.lili.modules.lmk.domain.form.VideoDownForm; import cn.lili.modules.lmk.domain.form.VideoRecommendForm; +import cn.lili.modules.lmk.domain.form.WxVideoForm; import cn.lili.modules.lmk.domain.query.ManagerVideoQuery; import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; import lombok.RequiredArgsConstructor; import java.util.List; -import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotEmpty; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import cn.lili.modules.lmk.service.VideoService; import cn.lili.base.Result; -import cn.lili.modules.lmk.domain.form.VideoForm; -import cn.lili.modules.lmk.domain.query.VideoQuery; -import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; /** @@ -38,13 +34,13 @@ @PostMapping @ApiOperation(value = "娣诲姞", notes = "娣诲姞") - public Result add(@RequestBody @Validated(Add.class) VideoForm form) { + public Result add(@RequestBody @Validated(Add.class) WxVideoForm form) { return videoService.add(form); } @PutMapping @ApiOperation(value = "淇敼", notes = "淇敼") - public Result update(@RequestBody @Validated(Update.class) VideoForm form) { + public Result update(@RequestBody @Validated(Update.class) WxVideoForm form) { return videoService.update(form); } -- Gitblit v1.8.0