package cn.lili.listener; import cn.lili.cache.Cache; import cn.lili.modules.lmk.domain.entity.ThumbsUpRecord; 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 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; /** * 评论消息消费者 * * @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 { @Autowired private ThumbsUpRecordService thumbsUpRecordService; @Autowired private VideoCommentService videoCommentService; /** * 缓存 */ @Autowired private Cache 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) { ThumbsUpRecord record = JSON.parseObject(msg, ThumbsUpRecord.class); videoCommentService.mqCancelThumbsUp(record); } }