From 0d9214d780c5093165f566f3e6f0c60f5d8aead7 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 22 五月 2025 11:28:46 +0800
Subject: [PATCH] 视频管理功能
---
framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoAuditRecordVO.java | 43 +++
framework/src/main/java/cn/lili/modules/lmk/domain/form/FileKey.java | 14 +
framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoVO.java | 12
framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoAuditingForm.java | 29 ++
framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoAuditRecord.java | 34 ++
framework/src/main/java/cn/lili/modules/lmk/mapper/VideoAuditRecordMapper.java | 24 +
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java | 100 +++++++
framework/src/main/java/cn/lili/config/CorsConfig.java | 25 +
framework/src/main/resources/mapper/lmk/VideoTagRefMapper.xml | 12
framework/src/main/java/cn/lili/modules/lmk/domain/entity/Video.java | 4
framework/src/main/resources/mapper/lmk/VideoMapper.xml | 56 +++
framework/src/main/java/cn/lili/mybatis/mybatisplus/MyMetaObjectHandler.java | 12
framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoRecommendForm.java | 26 ++
manager-api/src/main/java/cn/lili/controller/lmk/VideoController.java | 36 ++
framework/src/main/java/cn/lili/modules/lmk/service/VideoTagService.java | 3
framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java | 46 +++
framework/src/main/java/cn/lili/modules/lmk/mapper/VideoMapper.java | 10
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagRefServiceImpl.java | 8
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoAuditRecordServiceImpl.java | 23 +
framework/src/main/java/cn/lili/modules/lmk/mapper/VideoTagRefMapper.java | 6
framework/src/main/java/cn/lili/modules/lmk/service/VideoAuditRecordService.java | 15 +
manager-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java | 4
framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java | 33 ++
framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoStatusEnum.java | 2
framework/src/main/resources/mapper/lmk/VideoAuditRecordMapper.xml | 44 +++
framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoDownForm.java | 26 ++
framework/src/main/java/cn/lili/modules/lmk/service/VideoTagRefService.java | 11
common-api/src/main/java/cn/lili/controller/lmk/LmkFileController.java | 19
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagServiceImpl.java | 19 +
framework/src/main/java/cn/lili/modules/lmk/domain/vo/SimpleVideoTagVO.java | 40 +++
30 files changed, 691 insertions(+), 45 deletions(-)
diff --git a/common-api/src/main/java/cn/lili/controller/lmk/LmkFileController.java b/common-api/src/main/java/cn/lili/controller/lmk/LmkFileController.java
index 5dc9c51..501a4ea 100644
--- a/common-api/src/main/java/cn/lili/controller/lmk/LmkFileController.java
+++ b/common-api/src/main/java/cn/lili/controller/lmk/LmkFileController.java
@@ -1,6 +1,7 @@
package cn.lili.controller.lmk;
import cn.lili.base.Result;
+import cn.lili.modules.lmk.domain.form.FileKey;
import cn.lili.modules.lmk.service.LmkFileService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -61,10 +62,10 @@
* @param fileKey oss鏂囦欢鍚�
* @return
*/
- @Delete("/delete/{file_key}")
+ @Delete("/delete}")
@ApiOperation(value = "鍒犻櫎鏌愪釜鏂囦欢")
- public Result deleteObject(@PathVariable(value = "file_key") String fileKey) {
- return lmkFileService.deleteObject(fileKey);
+ public Result deleteObject(@RequestBody FileKey fileKey) {
+ return lmkFileService.deleteObject(fileKey.getFileKey());
}
/**
@@ -85,10 +86,10 @@
* @param fileKey
* @return
*/
- @GetMapping("/download/{file_key}")
+ @PostMapping("/download")
@ApiOperation(value = "涓嬭浇鏂囦欢")
- public void downloadFile(@PathVariable(value = "file_key") String fileKey, HttpServletResponse response) {
- lmkFileService.downloadObject(fileKey, response);
+ public void downloadFile(@RequestBody FileKey fileKey, HttpServletResponse response) {
+ lmkFileService.downloadObject(fileKey.getFileKey(), response);
}
/**
@@ -97,10 +98,10 @@
* @param fileKey
* @return
*/
- @GetMapping("/preview/{file_key}")
+ @PostMapping("/preview")
@ApiOperation(value = "鑾峰彇鏂囦欢棰勮url(閾炬帴瀛樺湪鏃舵晥)")
- public Result getPreviewUrl(@PathVariable(value = "file_key") String fileKey) {
- return Result.ok().data(lmkFileService.getPreviewUrl(fileKey));
+ public Result getPreviewUrl(@RequestBody FileKey fileKey) {
+ return Result.ok().data(lmkFileService.getPreviewUrl(fileKey.getFileKey()));
}
diff --git a/framework/src/main/java/cn/lili/config/CorsConfig.java b/framework/src/main/java/cn/lili/config/CorsConfig.java
new file mode 100644
index 0000000..04788ed
--- /dev/null
+++ b/framework/src/main/java/cn/lili/config/CorsConfig.java
@@ -0,0 +1,25 @@
+package cn.lili.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * 璺ㄥ煙閰嶇疆
+ *
+ * @author 29443
+ * @date 2022/4/16
+ */
+@Configuration
+public class CorsConfig implements WebMvcConfigurer {
+
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+
+ registry.addMapping("/**")
+ .allowedHeaders("*")
+ .allowedMethods("POST", "GET", "PUT", "DELETE")
+ .allowedOriginPatterns("*");
+ }
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Video.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Video.java
index 6d6bb46..5956199 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Video.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/Video.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
+import java.util.Date;
+
import lombok.Data;
/**
@@ -77,7 +79,7 @@
@TableField("audit_pass_time")
/** 瀹℃牳閫氳繃鏃堕棿 */
- private LocalDateTime auditPassTime;
+ private Date auditPassTime;
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoAuditRecord.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoAuditRecord.java
new file mode 100644
index 0000000..42a3ae8
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoAuditRecord.java
@@ -0,0 +1,34 @@
+package cn.lili.modules.lmk.domain.entity;
+
+import cn.lili.mybatis.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import lombok.Data;
+
+/**
+ * 瑙嗛瀹℃牳璁板綍
+ *
+ * @author xp
+ * @since 2025-05-22
+ */
+@Data
+@TableName("lmk_video_audit_record")
+public class VideoAuditRecord extends BaseEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("video_id")
+ /** 瑙嗛id */
+ private String videoId;
+
+ @TableField("audit_success")
+ /** 瀹℃牳鏄惁閫氳繃 */
+ private Boolean auditSuccess;
+
+ @TableField("edit_suggestion")
+ /** 淇敼寤鸿(椹冲洖) */
+ private String editSuggestion;
+
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/FileKey.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/FileKey.java
new file mode 100644
index 0000000..6b344d8
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/FileKey.java
@@ -0,0 +1,14 @@
+package cn.lili.modules.lmk.domain.form;
+
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2025/5/21 14:03
+ */
+@Data
+public class FileKey {
+
+ private String fileKey;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoAuditingForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoAuditingForm.java
new file mode 100644
index 0000000..a8ec2aa
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoAuditingForm.java
@@ -0,0 +1,29 @@
+package cn.lili.modules.lmk.domain.form;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author锛歺p
+ * @date锛�2025/5/21 15:45
+ */
+@Data
+@ApiModel("瑙嗛瀹℃牳")
+public class VideoAuditingForm {
+
+ @NotBlank(message = "瑙嗛涓嶈兘涓虹┖")
+ @ApiModelProperty("瑙嗛id")
+ private String id;
+
+ @NotNull(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+ @ApiModelProperty("瀹℃牳缁撴灉")
+ private Boolean result;
+
+ @ApiModelProperty("瀹℃牳涓嶉�氳繃鍘熷洜")
+ private String reason;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoDownForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoDownForm.java
new file mode 100644
index 0000000..7363ceb
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoDownForm.java
@@ -0,0 +1,26 @@
+package cn.lili.modules.lmk.domain.form;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author锛歺p
+ * @date锛�2025/5/21 15:45
+ */
+@Data
+@ApiModel("瑙嗛涓嬫灦")
+public class VideoDownForm {
+
+ @NotBlank(message = "瑙嗛涓嶈兘涓虹┖")
+ @ApiModelProperty("瑙嗛id")
+ private String id;
+
+ @NotBlank(message = "涓嬫灦鍘熷洜涓嶈兘涓虹┖")
+ @ApiModelProperty("涓嬫灦鍘熷洜")
+ private String reason;
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoRecommendForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoRecommendForm.java
new file mode 100644
index 0000000..1f5e771
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoRecommendForm.java
@@ -0,0 +1,26 @@
+package cn.lili.modules.lmk.domain.form;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author锛歺p
+ * @date锛�2025/5/21 15:45
+ */
+@Data
+@ApiModel("瑙嗛棣栭〉鎺ㄨ崘璁剧疆")
+public class VideoRecommendForm {
+
+ @NotBlank(message = "瑙嗛涓嶈兘涓虹┖")
+ @ApiModelProperty("瑙嗛id")
+ private String id;
+
+ @NotNull(message = "棣栭〉鎺ㄨ崘涓嶈兘涓虹┖")
+ @ApiModelProperty("鎺ㄨ崘涓庡惁")
+ private Boolean recommend;
+
+}
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
new file mode 100644
index 0000000..09a5b83
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/ManagerVideoQuery.java
@@ -0,0 +1,33 @@
+package cn.lili.modules.lmk.domain.query;
+
+import cn.lili.base.AbsQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 瑙嗛鍐呭鏌ヨ
+ *
+ * @author xp
+ * @since 2025-05-16
+ */
+@Data
+@ApiModel(value = "骞冲彴绔疺ideo鏌ヨ鍙傛暟", description = "瑙嗛鍐呭鏌ヨ鍙傛暟")
+public class ManagerVideoQuery extends AbsQuery {
+
+ @ApiModelProperty("鏍囬")
+ private String title;
+
+ @ApiModelProperty("瑙嗛鏍囩")
+ private List<String> tagList;
+
+ @ApiModelProperty("浣滆��")
+ private String authorId;
+
+ @ApiModelProperty("鐘舵��")
+ private String status;
+
+}
+
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/SimpleVideoTagVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/SimpleVideoTagVO.java
new file mode 100644
index 0000000..87c6671
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/SimpleVideoTagVO.java
@@ -0,0 +1,40 @@
+package cn.lili.modules.lmk.domain.vo;
+
+import cn.lili.base.AbsVo;
+import cn.lili.modules.lmk.domain.entity.VideoTag;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
+/**
+ * 瑙嗛鏍囩灞曠ず
+ *
+ * @author xp
+ * @since 2025-05-13
+ */
+@Data
+@ApiModel(value = "瑙嗛鏍囩鍝嶅簲鏁版嵁", description = "瑙嗛鏍囩鍝嶅簲鏁版嵁")
+public class SimpleVideoTagVO {
+
+ @ApiModelProperty("鏍囩id")
+ private String id;
+
+ /** 鏍囩鍚嶇О */
+ @ApiModelProperty("鏍囩鍚嶇О")
+ private String tagName;
+
+ @ApiModelProperty(hidden = true)
+ private String videoId;
+
+
+ public static SimpleVideoTagVO getVoByEntity(@NonNull VideoTag entity, SimpleVideoTagVO vo) {
+ if(vo == null) {
+ vo = new SimpleVideoTagVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoAuditRecordVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoAuditRecordVO.java
new file mode 100644
index 0000000..9d827fc
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoAuditRecordVO.java
@@ -0,0 +1,43 @@
+package cn.lili.modules.lmk.domain.vo;
+
+import cn.lili.base.AbsVo;
+import cn.lili.modules.lmk.domain.entity.VideoAuditRecord;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.util.Date;
+
+/**
+ * 瑙嗛瀹℃牳璁板綍灞曠ず
+ *
+ * @author xp
+ * @since 2025-05-22
+ */
+@Data
+@ApiModel(value = "瑙嗛瀹℃牳璁板綍鍝嶅簲鏁版嵁", description = "瑙嗛瀹℃牳璁板綍鍝嶅簲鏁版嵁")
+public class VideoAuditRecordVO extends AbsVo {
+
+ /** 瑙嗛id */
+ @ApiModelProperty("瑙嗛id")
+ private String videoId;
+
+ /** 瀹℃牳鏄惁閫氳繃 */
+ @ApiModelProperty("瀹℃牳鏄惁閫氳繃")
+ private Boolean auditSuccess;
+
+ /** 淇敼寤鸿(椹冲洖) */
+ @ApiModelProperty("淇敼寤鸿(椹冲洖)")
+ private String editSuggestion;
+
+ public static VideoAuditRecordVO getVoByEntity(@NonNull VideoAuditRecord entity, VideoAuditRecordVO vo) {
+ if(vo == null) {
+ vo = new VideoAuditRecordVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoVO.java
index 77801db..8f82ae3 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoVO.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoVO.java
@@ -2,13 +2,14 @@
import cn.lili.base.AbsVo;
import cn.lili.modules.lmk.domain.entity.Video;
-import java.util.List;
-import org.springframework.lang.NonNull;
-import org.springframework.beans.BeanUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import org.springframework.beans.BeanUtils;
+import org.springframework.lang.NonNull;
+
import java.util.Date;
+import java.util.List;
/**
* 瑙嗛鍐呭灞曠ず
@@ -23,6 +24,7 @@
/** 浣滆�卛d */
@ApiModelProperty("浣滆�卛d")
private String authorId;
+ private String authorName;
/** 鍥剧墖灏侀潰 */
@ApiModelProperty("鍥剧墖灏侀潰")
@@ -31,6 +33,10 @@
/** 瑙嗛鍦板潃 */
@ApiModelProperty("瑙嗛鍦板潃")
private String videoFileKey;
+ private String videoUrl;
+
+ @ApiModelProperty("瑙嗛鏍囩")
+ private List<SimpleVideoTagVO> tagList;
/** 瑙嗛濉厖妯″紡 */
@ApiModelProperty("瑙嗛濉厖妯″紡")
diff --git a/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoStatusEnum.java b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoStatusEnum.java
index 054913a..855cf1b 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoStatusEnum.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoStatusEnum.java
@@ -12,7 +12,7 @@
@Getter
public enum VideoStatusEnum {
- AUDITING("99", "瀹℃牳涓�"),
+ AUDITING("99", "寰呭鏍�"),
PUBLISHED("1", "宸插彂甯�"),
DISABLE("0", "宸蹭笅鏋�"),
REJECT("-1", "瀹℃牳鏈�氳繃"),
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoAuditRecordMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoAuditRecordMapper.java
new file mode 100644
index 0000000..98f6954
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoAuditRecordMapper.java
@@ -0,0 +1,24 @@
+package cn.lili.modules.lmk.mapper;
+
+import cn.lili.modules.lmk.domain.entity.VideoAuditRecord;
+import cn.lili.modules.lmk.domain.vo.VideoAuditRecordVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 瑙嗛瀹℃牳璁板綍 Mapper 鎺ュ彛
+ *
+ * @author xp
+ * @since 2025-05-22
+ */
+@Mapper
+public interface VideoAuditRecordMapper extends BaseMapper<VideoAuditRecord> {
+
+ /**
+ * id鏌ユ壘瑙嗛瀹℃牳璁板綍
+ * @param id
+ * @return
+ */
+ VideoAuditRecordVO getById(Integer id);
+
+}
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 33a8bd5..e49d338 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
@@ -1,6 +1,7 @@
package cn.lili.modules.lmk.mapper;
import cn.lili.modules.lmk.domain.entity.Video;
+import cn.lili.modules.lmk.domain.query.ManagerVideoQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.lili.modules.lmk.domain.vo.VideoVO;
@@ -24,11 +25,18 @@
* @param id
* @return
*/
- VideoVO getById(Integer id);
+ VideoVO getById(String id);
/**
* 鍒嗛〉
*/
IPage getPage(IPage page, @Param("query") VideoQuery query);
+ /**
+ * 绠$悊绔垎椤�
+ *
+ * @param page
+ * @param query
+ */
+ IPage managerPage(IPage page, @Param("query") ManagerVideoQuery query);
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoTagRefMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoTagRefMapper.java
index 7548bf6..a1aa583 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoTagRefMapper.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoTagRefMapper.java
@@ -1,8 +1,13 @@
package cn.lili.modules.lmk.mapper;
import cn.lili.modules.lmk.domain.entity.VideoTagRef;
+import cn.lili.modules.lmk.domain.vo.SimpleVideoTagVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
/**
* 瑙嗛鏍囩涓棿琛� Mapper 鎺ュ彛
@@ -14,4 +19,5 @@
public interface VideoTagRefMapper extends BaseMapper<VideoTagRef> {
+ List<SimpleVideoTagVO> getTagsByVideoIds(@Param("videoIds") List<String> videoIds);
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/VideoAuditRecordService.java b/framework/src/main/java/cn/lili/modules/lmk/service/VideoAuditRecordService.java
new file mode 100644
index 0000000..c9737fb
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/VideoAuditRecordService.java
@@ -0,0 +1,15 @@
+package cn.lili.modules.lmk.service;
+
+import cn.lili.modules.lmk.domain.entity.VideoAuditRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 瑙嗛瀹℃牳璁板綍 鏈嶅姟绫�
+ *
+ * @author xp
+ * @since 2025-05-22
+ */
+public interface VideoAuditRecordService extends IService<VideoAuditRecord> {
+
+
+}
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 583109b..1464d39 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
@@ -1,6 +1,10 @@
package cn.lili.modules.lmk.service;
import cn.lili.modules.lmk.domain.entity.Video;
+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.query.ManagerVideoQuery;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.lili.base.Result;
import cn.lili.modules.lmk.domain.form.VideoForm;
@@ -55,7 +59,7 @@
* @param id
* @return
*/
- Result detail(Integer id);
+ Result detail(String id);
/**
* 鍒楄〃
@@ -70,4 +74,44 @@
* @return
*/
Result publish(VideoForm form);
+
+ /**
+ * 骞冲彴绔棰戝垎椤�
+ *
+ * @param query
+ * @return
+ */
+ Result managerPage(ManagerVideoQuery query);
+
+ /**
+ * 棣栭〉鎺ㄨ崘璁剧疆
+ *
+ * @param form
+ * @return
+ */
+ Result recommendSet(VideoRecommendForm form);
+
+ /**
+ * 瀹℃牳
+ *
+ * @param form
+ * @return
+ */
+ Result auditing(VideoAuditingForm form);
+
+ /**
+ * 涓婃灦
+ *
+ * @param id
+ * @return
+ */
+ Result up(String id);
+
+ /**
+ * 涓嬫灦
+ *
+ * @param form
+ * @return
+ */
+ Result down(VideoDownForm form);
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagRefService.java b/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagRefService.java
index a07e767..0a4f6bb 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagRefService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagRefService.java
@@ -1,7 +1,11 @@
package cn.lili.modules.lmk.service;
import cn.lili.modules.lmk.domain.entity.VideoTagRef;
+import cn.lili.modules.lmk.domain.vo.SimpleVideoTagVO;
import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
/**
* 瑙嗛鏍囩涓棿琛� 鏈嶅姟绫�
@@ -11,5 +15,12 @@
*/
public interface VideoTagRefService extends IService<VideoTagRef> {
+ /**
+ * 鏌ュ嚭杩欎簺瑙嗛鎵�鏈夌殑鏍囩
+ *
+ * @param videoIds
+ * @return
+ */
+ List<SimpleVideoTagVO> getTagsByVideoIds(List<String> videoIds);
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagService.java b/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagService.java
index 0395373..fd5dc6b 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagService.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/VideoTagService.java
@@ -61,8 +61,9 @@
/**
* 鍒楄〃
* @return
+ * @param tagName
*/
- Result all();
+ Result all(String tagName);
/**
* 鎺ㄨ崘鏍囩
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoAuditRecordServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoAuditRecordServiceImpl.java
new file mode 100644
index 0000000..dd6c353
--- /dev/null
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoAuditRecordServiceImpl.java
@@ -0,0 +1,23 @@
+package cn.lili.modules.lmk.service.impl;
+
+import cn.lili.modules.lmk.domain.entity.VideoAuditRecord;
+import cn.lili.modules.lmk.mapper.VideoAuditRecordMapper;
+import cn.lili.modules.lmk.service.VideoAuditRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * 瑙嗛瀹℃牳璁板綍 鏈嶅姟瀹炵幇绫�
+ *
+ * @author xp
+ * @since 2025-05-22
+ */
+@Service
+@RequiredArgsConstructor
+public class VideoAuditRecordServiceImpl extends ServiceImpl<VideoAuditRecordMapper, VideoAuditRecord> implements VideoAuditRecordService {
+
+ private final VideoAuditRecordMapper videoAuditRecordMapper;
+
+
+}
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 f2f75a8..b6a53a8 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
@@ -1,20 +1,24 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.common.security.context.UserContext;
-import cn.lili.modules.lmk.domain.entity.LmkFile;
+import cn.lili.modules.lmk.domain.entity.VideoAuditRecord;
import cn.lili.modules.lmk.domain.entity.VideoTag;
import cn.lili.modules.lmk.domain.entity.VideoTagRef;
+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.query.ManagerVideoQuery;
+import cn.lili.modules.lmk.domain.vo.SimpleVideoTagVO;
import cn.lili.modules.lmk.enums.general.TagCreateTypeEnum;
import cn.lili.modules.lmk.enums.general.VideoStatusEnum;
-import cn.lili.modules.lmk.service.LmkFileService;
-import cn.lili.modules.lmk.service.VideoTagRefService;
-import cn.lili.modules.lmk.service.VideoTagService;
+import cn.lili.modules.lmk.service.*;
+import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.lili.modules.lmk.domain.entity.Video;
import cn.lili.modules.lmk.mapper.VideoMapper;
-import cn.lili.modules.lmk.service.VideoService;
import cn.lili.base.Result;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.lili.modules.lmk.domain.form.VideoForm;
import cn.lili.modules.lmk.domain.vo.VideoVO;
@@ -27,8 +31,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -45,6 +48,8 @@
private final VideoTagService videoTagService;
private final VideoTagRefService videoTagRefService;
private final LmkFileService lmkFileService;
+ private final VideoAuditRecordService videoAuditRecordService;
+ private final COSUtil cosUtil;
/**
* 娣诲姞
@@ -114,9 +119,12 @@
* @return
*/
@Override
- public Result detail(Integer id) {
+ public Result detail(String id) {
VideoVO vo = baseMapper.getById(id);
Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ List<SimpleVideoTagVO> tags = videoTagRefService.getTagsByVideoIds(Arrays.asList(id));
+ vo.setTagList(tags);
+ vo.setVideoUrl(cosUtil.getPreviewUrl(vo.getVideoFileKey()));
return Result.ok().data(vo);
}
@@ -168,4 +176,80 @@
lmkFileService.addByForm(form.getFileInfo());
return Result.ok("鍙戝竷鎴愬姛锛岃棰戝鏍镐腑~");
}
+
+
+ @Override
+ public Result managerPage(ManagerVideoQuery query) {
+ IPage<VideoVO> page = PageUtil.getPage(query, VideoVO.class);
+ // 1. 鍏堟煡鍑鸿棰戜俊鎭�
+ baseMapper.managerPage(page, query);
+ // 2. 鍗曠嫭鏌ュ嚭鏍囩淇℃伅
+ if (page.getTotal() > 0) {
+ Map<String, List<SimpleVideoTagVO>> tagMap = videoTagRefService.getTagsByVideoIds(
+ page.getRecords().stream().map(VideoVO::getId).collect(Collectors.toList())
+ ).stream().collect(Collectors.groupingBy(SimpleVideoTagVO::getVideoId));;
+ // 3. 鑾峰彇瑙嗛涓存椂璁块棶鍦板潃銆佽缃棰戞爣绛�
+ page.getRecords().forEach(v -> {
+ v.setTagList(tagMap.get(v.getId()));
+// v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey()));
+ });
+ }
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ @Override
+ public Result recommendSet(VideoRecommendForm form) {
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(Video::getId, form.getId())
+ .set(Video::getRecommend, form.getRecommend())
+ .update();
+ return Result.ok("璁剧疆鎴愬姛");
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public Result auditing(VideoAuditingForm form) {
+ Video video = baseMapper.selectById(form.getId());
+ if (Objects.isNull(video)) {
+ throw new RuntimeException("瑙嗛涓嶅瓨鍦�");
+ }
+ // 1. 娣诲姞瀹℃牳璁板綍
+ VideoAuditRecord auditRecord = new VideoAuditRecord();
+ auditRecord.setVideoId(form.getId());
+ auditRecord.setAuditSuccess(form.getResult());
+ if (!form.getResult()) {
+ auditRecord.setEditSuggestion(form.getReason());
+ }
+ videoAuditRecordService.save(auditRecord);
+ // 2. 淇敼瑙嗛鐘舵��
+ if (form.getResult()) {
+ video.setStatus(VideoStatusEnum.PUBLISHED.getValue());
+ video.setAuditPassTime(new Date());
+ } else {
+ video.setStatus(VideoStatusEnum.REJECT.getValue());
+ }
+ baseMapper.updateById(video);
+ return Result.ok();
+ }
+
+
+ @Override
+ public Result up(String id) {
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(Video::getId, id)
+ .set(Video::getStatus, VideoStatusEnum.PUBLISHED.getValue())
+ .update();
+ return Result.ok("涓婃灦鎴愬姛");
+ }
+
+
+ @Override
+ public Result down(VideoDownForm form) {
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(Video::getId, form.getId())
+ .set(Video::getStatus, VideoStatusEnum.DISABLE.getValue())
+ .update();
+ // TODO 灏嗕笅鏋跺師鍥犱互閫氱煡鐨勬柟寮忓憡鐭ョ敤鎴�
+ return Result.ok("涓嬫灦鎴愬姛");
+ }
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagRefServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagRefServiceImpl.java
index b727397..9ea83e2 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagRefServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagRefServiceImpl.java
@@ -1,11 +1,15 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.modules.lmk.domain.entity.VideoTagRef;
+import cn.lili.modules.lmk.domain.vo.SimpleVideoTagVO;
import cn.lili.modules.lmk.mapper.VideoTagRefMapper;
import cn.lili.modules.lmk.service.VideoTagRefService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
/**
* 瑙嗛鏍囩涓棿琛� 鏈嶅姟瀹炵幇绫�
@@ -20,4 +24,8 @@
private final VideoTagRefMapper videoTagRefMapper;
+ @Override
+ public List<SimpleVideoTagVO> getTagsByVideoIds(List<String> videoIds) {
+ return baseMapper.getTagsByVideoIds(videoIds);
+ }
}
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagServiceImpl.java
index baa1946..85474dd 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoTagServiceImpl.java
@@ -1,6 +1,7 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.modules.lmk.domain.query.WxVideoTagQuery;
+import cn.lili.modules.lmk.domain.vo.SimpleVideoTagVO;
import cn.lili.modules.lmk.enums.general.TagCreateTypeEnum;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.lili.modules.lmk.domain.entity.VideoTag;
@@ -12,6 +13,7 @@
import cn.lili.modules.lmk.domain.form.VideoTagForm;
import cn.lili.modules.lmk.domain.vo.VideoTagVO;
import cn.lili.modules.lmk.domain.query.VideoTagQuery;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import cn.lili.utils.PageUtil;
@@ -115,12 +117,21 @@
/**
* 鍒楄〃
* @return
+ * @param tagName
*/
@Override
- public Result all() {
- List<VideoTag> entities = baseMapper.selectList(null);
- List<VideoTagVO> vos = entities.stream()
- .map(entity -> VideoTagVO.getVoByEntity(entity, null))
+ public Result all(String tagName) {
+ List<VideoTag> entities = new LambdaQueryChainWrapper<>(baseMapper)
+ .select(VideoTag::getId, VideoTag::getTagName)
+ .like(StringUtils.isNotBlank(tagName), VideoTag::getTagName, tagName)
+ .orderByDesc(VideoTag::getUseNum)
+ .list();
+ List<SimpleVideoTagVO> vos = entities.stream()
+ .map(entity -> {
+ SimpleVideoTagVO vo = new SimpleVideoTagVO();
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ })
.collect(Collectors.toList());
return Result.ok().data(vos);
}
diff --git a/framework/src/main/java/cn/lili/mybatis/mybatisplus/MyMetaObjectHandler.java b/framework/src/main/java/cn/lili/mybatis/mybatisplus/MyMetaObjectHandler.java
index a273f8e..63783c3 100644
--- a/framework/src/main/java/cn/lili/mybatis/mybatisplus/MyMetaObjectHandler.java
+++ b/framework/src/main/java/cn/lili/mybatis/mybatisplus/MyMetaObjectHandler.java
@@ -22,13 +22,19 @@
AuthUser authUser = UserContext.getCurrentUser();
if (authUser != null) {
this.setFieldValByName("createBy", authUser.getUsername(), metaObject);
+ this.setFieldValByName("updateBy", authUser.getUsername(), metaObject);
} else {
this.setFieldValByName("createBy", "SYSTEM", metaObject);
+ this.setFieldValByName("updateBy", "SYSTEM", metaObject);
}
//鏈夊垱寤烘椂闂村瓧娈碉紝鍒囧瓧娈靛�间负绌�
+ Date now = new Date();
if (metaObject.hasGetter("createTime")) {
- this.setFieldValByName("createTime", new Date(), metaObject);
+ this.setFieldValByName("createTime",now , metaObject);
+ }
+ if (metaObject.hasGetter("updateTime")) {
+ this.setFieldValByName("updateTime", now, metaObject);
}
//鏈夊�硷紝鍒欏啓鍏�
if (metaObject.hasGetter("deleteFlag")) {
@@ -51,7 +57,9 @@
if (authUser != null) {
this.setFieldValByName("updateBy", authUser.getUsername(), metaObject);
}
- this.setFieldValByName("updateTime", new Date(), metaObject);
+ if (metaObject.hasGetter("updateTime")) {
+ this.setFieldValByName("updateTime", new Date(), metaObject);
+ }
}
}
diff --git a/framework/src/main/resources/mapper/lmk/VideoAuditRecordMapper.xml b/framework/src/main/resources/mapper/lmk/VideoAuditRecordMapper.xml
new file mode 100644
index 0000000..538be83
--- /dev/null
+++ b/framework/src/main/resources/mapper/lmk/VideoAuditRecordMapper.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.lili.modules.lmk.mapper.VideoAuditRecordMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.VideoAuditRecordVO">
+ <id column="id" property="id"/>
+ <result column="video_id" property="videoId" />
+ <result column="audit_success" property="auditSuccess" />
+ <result column="edit_suggestion" property="editSuggestion" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ LVAR.video_id,
+ LVAR.audit_success,
+ LVAR.edit_suggestion,
+ LVAR.id
+ FROM
+ lmk_video_audit_record LVAR
+ WHERE
+ LVAR.id = #{id} AND LVAR.delete_flag = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ LVAR.video_id,
+ LVAR.audit_success,
+ LVAR.edit_suggestion,
+ LVAR.id
+ FROM
+ lmk_video_audit_record LVAR
+ WHERE
+ LVAR.delete_flag = 0
+ </select>
+
+</mapper>
diff --git a/framework/src/main/resources/mapper/lmk/VideoMapper.xml b/framework/src/main/resources/mapper/lmk/VideoMapper.xml
index de55ef3..417ca5e 100644
--- a/framework/src/main/resources/mapper/lmk/VideoMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/VideoMapper.xml
@@ -6,6 +6,7 @@
<resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.VideoVO">
<id column="id" property="id"/>
<result column="author_id" property="authorId" />
+ <result column="authorName" property="authorName" />
<result column="cover_url" property="coverUrl" />
<result column="video_file_key" property="videoFileKey" />
<result column="video_fit" property="videoFit" />
@@ -20,12 +21,8 @@
<result column="comment_num" property="commentNum" />
<result column="weight" property="weight" />
<result column="audit_pass_time" property="auditPassTime" />
+ <result column="update_time" property="updateTime" />
</resultMap>
-
-
-
-
-
<select id="getById" resultMap="BaseResultMap">
@@ -45,9 +42,12 @@
LV.comment_num,
LV.weight,
LV.audit_pass_time,
- LV.id
+ LV.update_time,
+ LV.id,
+ LM.nick_name as authorName
FROM
lmk_video LV
+ LEFT JOIN li_member LM ON LV.author_id = LM.id
WHERE
LV.id = #{id} AND LV.delete_flag = 0
</select>
@@ -70,11 +70,53 @@
LV.comment_num,
LV.weight,
LV.audit_pass_time,
- LV.id
+ LV.update_time,
+ LV.id,
+ LM.nick_name as authorName
FROM
lmk_video LV
+ LEFT JOIN li_member LM ON LV.author_id = LM.id
WHERE
LV.delete_flag = 0
</select>
+
+ <select id="managerPage" resultMap="BaseResultMap">
+ SELECT
+ LV.author_id,
+ LV.cover_url,
+ LV.video_fit,
+ LV.video_file_key,
+ LV.title,
+ LV.goods_id,
+ LV.goods_view_num,
+ LV.goods_order_num,
+ LV.recommend,
+ LV.status,
+ LV.play_num,
+ LV.collect_num,
+ LV.comment_num,
+ LV.weight,
+ LV.audit_pass_time,
+ LV.update_time,
+ LV.id,
+ LM.nick_name as authorName
+ FROM
+ lmk_video LV
+ LEFT JOIN li_member LM ON LV.author_id = LM.id
+ <if test="query.tagList != null and query.tagList.size > 0">
+ INNER JOIN (
+ SELECT DISTINCT video_id
+ FROM lmk_video_tag_ref
+ WHERE video_tag_id IN
+ <foreach collection="query.tagList" open="(" item="tagId" close=")" separator=",">#{tagId}</foreach>
+ ) AS LVT ON LV.id = LVT.video_id
+ </if>
+ WHERE
+ LV.delete_flag = 0
+ <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>
+ </select>
+
</mapper>
diff --git a/framework/src/main/resources/mapper/lmk/VideoTagRefMapper.xml b/framework/src/main/resources/mapper/lmk/VideoTagRefMapper.xml
index 95bafd6..07b8fdd 100644
--- a/framework/src/main/resources/mapper/lmk/VideoTagRefMapper.xml
+++ b/framework/src/main/resources/mapper/lmk/VideoTagRefMapper.xml
@@ -9,7 +9,17 @@
<result column="video_tag_id" property="videoTagId" />
</resultMap>
-
+ <select id="getTagsByVideoIds" resultType="cn.lili.modules.lmk.domain.vo.SimpleVideoTagVO">
+ SELECT
+ LVTR.video_id,
+ LVT.id,
+ LVT.tag_name AS tagName
+ FROM
+ lmk_video_tag_ref LVTR
+ JOIN lmk_video_tag LVT ON LVTR.video_tag_id = LVT.id
+ WHERE
+ LVTR.video_id IN <foreach collection="videoIds" open="(" item="videoId" close=")" separator=",">#{videoId}</foreach>
+ </select>
</mapper>
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 48a84ca..de00a7a 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
@@ -2,6 +2,10 @@
import cn.lili.group.Update;
import cn.lili.group.Add;
+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.query.ManagerVideoQuery;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import lombok.RequiredArgsConstructor;
@@ -56,15 +60,15 @@
return videoService.remove(ids);
}
- @GetMapping("/page")
+ @PostMapping("/page")
@ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
- public Result page(VideoQuery query) {
- return videoService.page(query);
+ public Result page(@RequestBody ManagerVideoQuery query) {
+ return videoService.managerPage(query);
}
@GetMapping("/{id}")
@ApiOperation(value = "璇︽儏", notes = "璇︽儏")
- public Result detail(@PathVariable("id") Integer id) {
+ public Result detail(@PathVariable("id") String id) {
return videoService.detail(id);
}
@@ -73,4 +77,28 @@
public Result list() {
return videoService.all();
}
+
+ @PutMapping("/recommend")
+ @ApiOperation(value = "棣栭〉鎺ㄨ崘璁剧疆", notes = "棣栭〉鎺ㄨ崘璁剧疆")
+ public Result recommendSet(@RequestBody @Validated VideoRecommendForm form) {
+ return videoService.recommendSet(form);
+ }
+
+ @PostMapping("/auditing")
+ @ApiOperation(value = "瀹℃牳", notes = "瀹℃牳")
+ public Result auditing(@RequestBody @Validated VideoAuditingForm form) {
+ return videoService.auditing(form);
+ }
+
+ @PostMapping("/up/{id}")
+ @ApiOperation(value = "涓婃灦", notes = "涓婃灦")
+ public Result up(@PathVariable("id") String id) {
+ return videoService.up(id);
+ }
+
+ @PostMapping("/down")
+ @ApiOperation(value = "涓嬫灦", notes = "涓嬫灦")
+ public Result down(@RequestBody @Validated VideoDownForm form) {
+ return videoService.down(form);
+ }
}
diff --git a/manager-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java b/manager-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java
index c8c9a11..3c4c400 100644
--- a/manager-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java
+++ b/manager-api/src/main/java/cn/lili/controller/lmk/VideoTagController.java
@@ -70,7 +70,7 @@
@GetMapping("/list")
@ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
- public Result list() {
- return videoTagService.all();
+ public Result list(String tagName) {
+ return videoTagService.all(tagName);
}
}
--
Gitblit v1.8.0