From f2cc79e9e83aafacc1af0e2c86e3c8df384fc895 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 27 五月 2025 19:27:22 +0800 Subject: [PATCH] 视频评论功能代码 --- framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoCommentQuery.java | 32 ++ framework/src/main/java/cn/lili/modules/lmk/service/VideoCommentService.java | 66 +++++ framework/src/main/resources/mapper/lmk/VideoCommentMapper.xml | 105 ++++++++ framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoComment.java | 56 ++++ framework/src/main/java/cn/lili/modules/lmk/mapper/VideoCommentMapper.java | 50 ++++ framework/src/main/java/cn/lili/common/sensitive/SensitiveWordsFilter.java | 11 framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoCommentServiceImpl.java | 147 ++++++++++++ framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoCommentStatusEnum.java | 47 +++ framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoCommentForm.java | 57 ++++ buyer-api/src/main/java/cn/lili/controller/lmk/VideoCommentController.java | 77 ++++++ framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoCommentVO.java | 63 +++++ 11 files changed, 711 insertions(+), 0 deletions(-) diff --git a/buyer-api/src/main/java/cn/lili/controller/lmk/VideoCommentController.java b/buyer-api/src/main/java/cn/lili/controller/lmk/VideoCommentController.java new file mode 100644 index 0000000..81ce413 --- /dev/null +++ b/buyer-api/src/main/java/cn/lili/controller/lmk/VideoCommentController.java @@ -0,0 +1,77 @@ +package cn.lili.controller.lmk; + +import cn.lili.group.Update; +import cn.lili.group.Add; +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.VideoCommentService; +import cn.lili.base.Result; +import cn.lili.modules.lmk.domain.form.VideoCommentForm; +import cn.lili.modules.lmk.domain.query.VideoCommentQuery; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * 瑙嗛璇勮 鍓嶇鎺у埗鍣� + * + * @author xp + * @since 2025-05-27 + */ +@Validated +@RequiredArgsConstructor +@Api(value = "瑙嗛璇勮", tags = "瑙嗛璇勮绠$悊") +@RestController +@RequestMapping("/buyer/lmk/video-comment") +public class VideoCommentController { + + private final VideoCommentService videoCommentService; + + @PostMapping("/comment") + @ApiOperation(value = "璇勮", notes = "璇勮") + public Result comment(@RequestBody @Validated(Add.class) VideoCommentForm form) { + return videoCommentService.comment(form); + } + + @GetMapping("/wx/page") + @ApiOperation(value = "灏忕▼搴忓垎椤�", notes = "璇勮") + public Result wxPage(VideoCommentQuery query) { + return videoCommentService.wxPage(query); + } + + + @DeleteMapping("/{id}") + @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎") + public Result removeById(@PathVariable("id") String id) { + return videoCommentService.removeById(id); + } + + @DeleteMapping("/batch") + @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎") + public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) { + return videoCommentService.remove(ids); + } + + @GetMapping("/page") + @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉") + public Result page(VideoCommentQuery query) { + return videoCommentService.page(query); + } + + @GetMapping("/{id}") + @ApiOperation(value = "璇︽儏", notes = "璇︽儏") + public Result detail(@PathVariable("id") String id) { + return videoCommentService.detail(id); + } + + @GetMapping("/list") + @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃") + public Result list() { + return videoCommentService.all(); + } +} diff --git a/framework/src/main/java/cn/lili/common/sensitive/SensitiveWordsFilter.java b/framework/src/main/java/cn/lili/common/sensitive/SensitiveWordsFilter.java index 99acf87..1a57ec5 100644 --- a/framework/src/main/java/cn/lili/common/sensitive/SensitiveWordsFilter.java +++ b/framework/src/main/java/cn/lili/common/sensitive/SensitiveWordsFilter.java @@ -53,6 +53,17 @@ } /** + * 鍒ゆ柇鍐呭鏄惁鍖呭惈鏁忔劅璇嶏紝濡傛灉涓嶅寘鍚� filter鏂规硶浼氬師灏佷笉鍔ㄧ殑杩斿洖 + * + * @param content + * @return true:鍖呭惈 false锛氫笉鍖呭惈 + */ + public static Boolean includeSentenceWord(String content) { + String filter = filter(content, WILDCARD_STAR); + return !content.equals(filter); + } + + /** * 瀵瑰彞瀛愯繘琛屾晱鎰熻瘝杩囨护<br/> * 濡傛灉鏃犳晱鎰熻瘝杩斿洖杈撳叆鐨剆entence瀵硅薄锛屽嵆鍙互鐢ㄤ笅闈㈢殑鏂瑰紡鍒ゆ柇鏄惁鏈夋晱鎰熻瘝锛�<br/> * diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoComment.java b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoComment.java new file mode 100644 index 0000000..7042c38 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/entity/VideoComment.java @@ -0,0 +1,56 @@ +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-27 + */ +@Data +@TableName("lmk_video_comment") +public class VideoComment extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @TableField("video_id") + /** 瑙嗛id */ + private String videoId; + + @TableField("comment_content") + /** 璇勮鍐呭 */ + private String commentContent; + + @TableField("reply_id") + /** 鍥炲鐨勮瘎璁篿d */ + private String replyId; + + @TableField("reply_user_id") + /** 琚洖澶嶄汉id */ + private String replyUserId; + + @TableField("reply_user_nickname") + /** 琚洖澶嶄汉鏄电О */ + private String replyUserNickname; + + @TableField("master_comment_id") + /** 涓昏瘎璁篿d */ + private String masterCommentId; + + @TableField("status") + /** 璇勮鐘舵�� */ + private String status; + + @TableField("user_nickname") + /** 璇勮浜烘樀绉� */ + private String userNickname; + + @TableField("user_avatar") + /** 璇勮浜哄ご鍍� */ + private String userAvatar; +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoCommentForm.java b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoCommentForm.java new file mode 100644 index 0000000..48dc822 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/form/VideoCommentForm.java @@ -0,0 +1,57 @@ +package cn.lili.modules.lmk.domain.form; + +import cn.lili.group.Update; +import cn.lili.group.Add; +import cn.lili.base.AbsForm; +import cn.lili.modules.lmk.domain.entity.VideoComment; +import org.springframework.beans.BeanUtils; + +import javax.validation.constraints.Max; +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.Date; + +/** + * 瑙嗛璇勮琛ㄥ崟 + * + * @author xp + * @since 2025-05-27 + */ +@Data +@ApiModel(value = "VideoComment琛ㄥ崟", description = "瑙嗛璇勮琛ㄥ崟") +public class VideoCommentForm extends AbsForm { + + @NotBlank(message = "瑙嗛id涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("瑙嗛id") + private String videoId; + + @Max(value = 1000, message = "璇勮鍐呭杩囬暱") + @NotBlank(message = "璇勮鍐呭涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("璇勮鍐呭") + private String commentContent; + + @ApiModelProperty("鍥炲鐨勮瘎璁篿d") + private String replyId; + + @ApiModelProperty("鍥炲鐨勪汉") + private String replyUserId; + + @ApiModelProperty("鍥炲鐨勪汉鏄电О") + private String replyUserNickname; + + @ApiModelProperty("涓昏瘎璁篿d锛屽彲浠巖eply鐨勮瘎璁轰笂鑾峰彇鍒�") + private String masterCommentId; + + public static VideoComment getEntityByForm(@NonNull VideoCommentForm form, VideoComment entity) { + if(entity == null) { + entity = new VideoComment(); + } + BeanUtils.copyProperties(form, entity); + return entity; + } + +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoCommentQuery.java b/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoCommentQuery.java new file mode 100644 index 0000000..3756e9e --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoCommentQuery.java @@ -0,0 +1,32 @@ +package cn.lili.modules.lmk.domain.query; + +import cn.lili.base.AbsQuery; +import java.util.List; +import org.springframework.lang.NonNull; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 瑙嗛璇勮鏌ヨ + * + * @author xp + * @since 2025-05-27 + */ +@Data +@ApiModel(value = "VideoComment鏌ヨ鍙傛暟", description = "瑙嗛璇勮鏌ヨ鍙傛暟") +public class VideoCommentQuery extends AbsQuery { + + @ApiModelProperty("瑙嗛id") + private String videoId; + + @ApiModelProperty("鏄惁鏄姞杞芥洿澶氬瓙璇勮锛屽嵆鏌ュ瓙璇勮鍒嗛〉") + private String masterCommentId; + + @ApiModelProperty(hidden = true) + private String replyId; + +} + diff --git a/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoCommentVO.java b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoCommentVO.java new file mode 100644 index 0000000..2673cad --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/domain/vo/VideoCommentVO.java @@ -0,0 +1,63 @@ +package cn.lili.modules.lmk.domain.vo; + +import cn.lili.base.AbsVo; +import cn.lili.modules.lmk.domain.entity.VideoComment; +import java.util.List; + +import com.baomidou.mybatisplus.annotation.TableField; +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-27 + */ +@Data +@ApiModel(value = "瑙嗛璇勮鍝嶅簲鏁版嵁", description = "瑙嗛璇勮鍝嶅簲鏁版嵁") +public class VideoCommentVO extends AbsVo { + + /** 瑙嗛id */ + @ApiModelProperty("瑙嗛id") + private String videoId; + + /** 璇勮鍐呭 */ + @ApiModelProperty("璇勮鍐呭") + private String commentContent; + + /** 鍥炲鐨勮瘎璁篿d锛屽嵆parentId */ + @ApiModelProperty("鍥炲鐨勮瘎璁篿d") + private String replyId; + private String replyUserId; + private String replyUserNickname; + + @ApiModelProperty("涓昏瘎璁篿d") + private String masterCommentId; + + /** 璇勮鐘舵�� */ + @ApiModelProperty("璇勮鐘舵��") + private String status; + + @ApiModelProperty("璇勮浜篿d") + private String userId; + + @ApiModelProperty("璇勮浜烘樀绉�") + private String userNickname; + + @ApiModelProperty("璇勮浜哄ご鍍�") + private String userAvatar; + + public static VideoCommentVO getVoByEntity(@NonNull VideoComment entity, VideoCommentVO vo) { + if(vo == null) { + vo = new VideoCommentVO(); + } + BeanUtils.copyProperties(entity, vo); + return vo; + } + +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoCommentStatusEnum.java b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoCommentStatusEnum.java new file mode 100644 index 0000000..5a9ac78 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/enums/general/VideoCommentStatusEnum.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 VideoCommentStatusEnum { + + NORMAL("normal", "姝e父"), + AUDITING("auditing", "瀹℃牳涓�"), + INVALID("invalid", "鏃犳晥鐨�/鏈�氳繃瀹℃牳鐨�"), + ; + + private final String value; + + + private final String desc; + + VideoCommentStatusEnum(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 (VideoCommentStatusEnum e : VideoCommentStatusEnum.values()){ + if (value.equals(e.getValue())) { + return e.getDesc(); + } + } + return null; + } +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoCommentMapper.java b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoCommentMapper.java new file mode 100644 index 0000000..81749f8 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/mapper/VideoCommentMapper.java @@ -0,0 +1,50 @@ +package cn.lili.modules.lmk.mapper; + +import cn.lili.modules.lmk.domain.entity.VideoComment; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import cn.lili.modules.lmk.domain.vo.VideoCommentVO; +import cn.lili.modules.lmk.domain.form.VideoCommentForm; +import cn.lili.modules.lmk.domain.query.VideoCommentQuery; +import java.util.List; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * 瑙嗛璇勮 Mapper 鎺ュ彛 + * + * @author xp + * @since 2025-05-27 + */ +@Mapper +public interface VideoCommentMapper extends BaseMapper<VideoComment> { + + /** + * id鏌ユ壘瑙嗛璇勮 + * @param id + * @return + */ + VideoCommentVO getById(String id); + + /** + * 鍒嗛〉 + */ + IPage getPage(IPage page, @Param("query") VideoCommentQuery query); + + /** + * 灏忕▼搴忎富璇勮鍒嗛〉鏌ヨ + * + * @param page + * @param query + * @return + */ + IPage masterCommentPage(IPage page, @Param("query") VideoCommentQuery query); + + /** + * 灏忕▼搴忓洖澶嶈瘎璁哄垎椤垫煡璇� + * + * @param page + * @param query + */ + IPage replyCommentPage(IPage page, @Param("query") VideoCommentQuery query); +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/VideoCommentService.java b/framework/src/main/java/cn/lili/modules/lmk/service/VideoCommentService.java new file mode 100644 index 0000000..09e62bf --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/service/VideoCommentService.java @@ -0,0 +1,66 @@ +package cn.lili.modules.lmk.service; + +import cn.lili.modules.lmk.domain.entity.VideoComment; +import com.baomidou.mybatisplus.extension.service.IService; +import cn.lili.base.Result; +import cn.lili.modules.lmk.domain.form.VideoCommentForm; +import cn.lili.modules.lmk.domain.query.VideoCommentQuery; +import java.util.List; + +/** + * 瑙嗛璇勮 鏈嶅姟绫� + * + * @author xp + * @since 2025-05-27 + */ +public interface VideoCommentService extends IService<VideoComment> { + + /** + * 娣诲姞 + * @param form + * @return + */ + Result comment(VideoCommentForm form); + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + Result remove(List<String> ids); + + /** + * id鍒犻櫎 + * @param id + * @return + */ + Result removeById(String id); + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + Result page(VideoCommentQuery query); + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + Result detail(String id); + + /** + * 鍒楄〃 + * @return + */ + Result all(); + + /** + * 灏忕▼搴忔煡瑙嗛璇勮 + * + * @param query + * @return + */ + Result wxPage(VideoCommentQuery query); +} diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoCommentServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoCommentServiceImpl.java new file mode 100644 index 0000000..3874f5d --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoCommentServiceImpl.java @@ -0,0 +1,147 @@ +package cn.lili.modules.lmk.service.impl; + +import cn.lili.common.security.AuthUser; +import cn.lili.common.security.context.UserContext; +import cn.lili.common.sensitive.SensitiveWordsFilter; +import cn.lili.modules.lmk.enums.general.VideoCommentStatusEnum; +import com.baomidou.mybatisplus.core.metadata.IPage; +import cn.lili.modules.lmk.domain.entity.VideoComment; +import cn.lili.modules.lmk.mapper.VideoCommentMapper; +import cn.lili.modules.lmk.service.VideoCommentService; +import cn.lili.base.Result; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import cn.lili.modules.lmk.domain.form.VideoCommentForm; +import cn.lili.modules.lmk.domain.vo.VideoCommentVO; +import cn.lili.modules.lmk.domain.query.VideoCommentQuery; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import lombok.RequiredArgsConstructor; +import cn.lili.utils.PageUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 瑙嗛璇勮 鏈嶅姟瀹炵幇绫� + * + * @author xp + * @since 2025-05-27 + */ +@Service +@RequiredArgsConstructor +public class VideoCommentServiceImpl extends ServiceImpl<VideoCommentMapper, VideoComment> implements VideoCommentService { + + private final VideoCommentMapper videoCommentMapper; + + /** + * 娣诲姞 + * @param form + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Result comment(VideoCommentForm form) { + // 鐩戞祴鍐呭鏄惁鍖呭惈鏁忔劅璇� + if (SensitiveWordsFilter.includeSentenceWord(form.getCommentContent())) { + return Result.error("璇勮鍚晱鎰熷唴瀹�"); + } + if (StringUtils.isNotBlank(form.getReplyId())) { + VideoComment beReplyComment = baseMapper.selectById(form.getReplyId()); + if (Objects.isNull(beReplyComment)) { + throw new RuntimeException("鎮ㄥ洖澶嶇殑璇勮宸茶鍒犻櫎"); + } else if (VideoCommentStatusEnum.INVALID.getValue().equals(beReplyComment.getStatus())) { + throw new RuntimeException("鎮ㄥ洖澶嶇殑璇勮宸插け鏁�"); + } + } + VideoComment entity = VideoCommentForm.getEntityByForm(form, null); + entity.setStatus(VideoCommentStatusEnum.AUDITING.getValue()); + + AuthUser currentUser = UserContext.getCurrentUser(); + entity.setUserNickname(currentUser.getNickName()); + entity.setUserAvatar(currentUser.getFace()); + + baseMapper.insert(entity); + if (StringUtils.isBlank(entity.getReplyId())) { + // 涓嶆槸鍥炲璇勮锛岄偅涔堝氨鏄富璇勮锛屼富璇勮鐨刴asterId璁剧疆涓鸿嚜宸辩殑id + entity.setMasterCommentId(entity.getId()); + } + baseMapper.updateById(entity); + return Result.ok("娣诲姞鎴愬姛"); + } + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + @Override + public Result remove(List<String> ids) { + baseMapper.deleteBatchIds(ids); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * id鍒犻櫎 + * @param id + * @return + */ + @Override + public Result removeById(String id) { + baseMapper.deleteById(id); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + @Override + public Result page(VideoCommentQuery query) { + IPage<VideoCommentVO> page = PageUtil.getPage(query, VideoCommentVO.class); + baseMapper.getPage(page, query); + return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + @Override + public Result detail(String id) { + VideoCommentVO vo = baseMapper.getById(id); + Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + return Result.ok().data(vo); + } + + /** + * 鍒楄〃 + * @return + */ + @Override + public Result all() { + List<VideoComment> entities = baseMapper.selectList(null); + List<VideoCommentVO> vos = entities.stream() + .map(entity -> VideoCommentVO.getVoByEntity(entity, null)) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } + + @Override + public Result wxPage(VideoCommentQuery query) { + IPage<VideoCommentVO> page = PageUtil.getPage(query, VideoCommentVO.class); + if (StringUtils.isNotBlank(query.getMasterCommentId())) { + // 鍔犺浇瀛愯瘎璁虹殑鎯呭喌 + baseMapper.replyCommentPage(page, query); + } else { + // 鍔犺浇涓昏瘎璁虹殑鎯呭喌銆備富璇勮id = masterCommentId + baseMapper.masterCommentPage(page, query); + } + return Result.ok().data(page.getRecords()); + } +} diff --git a/framework/src/main/resources/mapper/lmk/VideoCommentMapper.xml b/framework/src/main/resources/mapper/lmk/VideoCommentMapper.xml new file mode 100644 index 0000000..365fe5b --- /dev/null +++ b/framework/src/main/resources/mapper/lmk/VideoCommentMapper.xml @@ -0,0 +1,105 @@ +<?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.VideoCommentMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.VideoCommentVO"> + <id column="id" property="id"/> + <result column="video_id" property="videoId" /> + <result column="comment_content" property="commentContent" /> + <result column="reply_id" property="replyId" /> + <result column="reply_user_id" property="replyUserId" /> + <result column="reply_user_nickname" property="replyUserNickname" /> + <result column="master_comment_id" property="masterCommentId" /> + <result column="status" property="status" /> + <result column="create_by" property="userId" /> + <result column="user_nickname" property="userNickname" /> + <result column="user_avatar" property="userAvatar" /> + </resultMap> + + + + + + + + <select id="getById" resultMap="BaseResultMap"> + SELECT + LVC.video_id, + LVC.comment_content, + LVC.reply_id, + LVC.master_comment_id, + LVC.status, + LVC.id + FROM + lmk_video_comment LVC + WHERE + LVC.id = #{id} AND LVC.delete_flag = 0 + </select> + + + <select id="getPage" resultMap="BaseResultMap"> + SELECT + LVC.video_id, + LVC.comment_content, + LVC.reply_id, + LVC.master_comment_id, + LVC.status, + LVC.id + FROM + lmk_video_comment LVC + WHERE + LVC.delete_flag = 0 + </select> + + + <select id="masterCommentPage" resultMap="BaseResultMap"> + SELECT + LVC.video_id, + LVC.comment_content, + LVC.reply_id, + LVC.reply_user_id, + LVC.reply_user_nickname, + LVC.master_comment_id, + LVC.status, + LVC.id, + LVC.create_by, + LVC.user_nickname, + LVC.user_avatar + FROM + lmk_video_comment LVC + WHERE + LVC.id = LVC.master_comment_id + AND LVC.video_id = #{query.videoId} + AND LVC.status = 'normal' + AND LVC.delete_flag = 0 + ORDER BY + LVC.create_time DESC + </select> + + <select id="replyCommentPage" resultMap="BaseResultMap"> + SELECT + LVC.video_id, + LVC.comment_content, + LVC.reply_id, + LVC.reply_user_id, + LVC.reply_user_nickname, + LVC.master_comment_id, + LVC.status, + LVC.id, + LVC.create_by, + LVC.user_nickname, + LVC.user_avatar + FROM + lmk_video_comment LVC + WHERE + LVC.id = LVC.master_comment_id + AND LVC.video_id = #{query.videoId} + AND LVC.master_comment_id = #{query.masterCommentId} + AND LVC.status = 'normal' + AND LVC.delete_flag = 0 + ORDER BY + LVC.create_time ASC + </select> + +</mapper> -- Gitblit v1.8.0