package cn.lili.listener;
|
|
import cn.lili.base.Result;
|
import cn.lili.cache.Cache;
|
import cn.lili.cache.CachePrefix;
|
import cn.lili.common.security.context.UserContext;
|
import cn.lili.modules.lmk.constant.RedisKeyExpireConstant;
|
import cn.lili.modules.lmk.domain.entity.ThumbsUpRecord;
|
import cn.lili.modules.lmk.domain.entity.VideoComment;
|
import cn.lili.modules.lmk.domain.form.ThumbsUpRecordForm;
|
import cn.lili.modules.lmk.service.ThumbsUpRecordService;
|
import cn.lili.modules.lmk.service.VideoCommentService;
|
import cn.lili.rocketmq.tags.CommentTagsEnum;
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.rocketmq.common.message.MessageExt;
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
import org.apache.rocketmq.spring.core.RocketMQListener;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Objects;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 评论消息消费者
|
*
|
* @author paulG
|
* @since 2020/12/9
|
**/
|
@Component
|
@Slf4j
|
@RocketMQMessageListener(topic = "${lili.data.rocketmq.comment-topic}", consumerGroup = "${lili.data.rocketmq.comment-group}")
|
public class CommentMessageListener implements RocketMQListener<MessageExt> {
|
|
@Autowired
|
private ThumbsUpRecordService thumbsUpRecordService;
|
|
@Autowired
|
private VideoCommentService videoCommentService;
|
|
/**
|
* 缓存
|
*/
|
@Autowired
|
private Cache<Object> cache;
|
|
@Override
|
public void onMessage(MessageExt messageExt) {
|
try {
|
String msg = new String(messageExt.getBody());
|
if (StringUtils.isBlank(msg)) {
|
log.error("comment msg is null, cant not consumer");
|
return;
|
}
|
switch (CommentTagsEnum.valueOf(messageExt.getTags())) {
|
case THUMBS_UP:
|
this.thumbsUp(msg);
|
break;
|
case CANCEL_THUMBS_UP:
|
this.cancelThumbsUp(msg);
|
break;
|
default:
|
log.error("comment msg not match correct tag, consumer err");
|
break;
|
}
|
} catch (Exception e) {
|
log.error("comment msg consumer err", e);
|
}
|
}
|
|
/**
|
* 评论点赞
|
*
|
* @param msg
|
*/
|
public void thumbsUp(String msg) {
|
ThumbsUpRecord record = JSON.parseObject(msg, ThumbsUpRecord.class);
|
videoCommentService.mqThumbsUp(record);
|
}
|
|
/**
|
* 评论取消点赞
|
*
|
* @param msg
|
*/
|
public void cancelThumbsUp(String msg) {
|
ThumbsUpRecordForm form = JSON.parseObject(msg, ThumbsUpRecordForm.class);
|
videoCommentService.mqCancelThumbsUp(form);
|
}
|
}
|