MessageCallbackCustomer.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.tzld.piaoquan.api.mq;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.aliyun.openservices.ons.api.Action;
  4. import com.aliyun.openservices.ons.api.ConsumeContext;
  5. import com.aliyun.openservices.ons.api.Message;
  6. import com.aliyun.openservices.ons.api.MessageListener;
  7. import com.tzld.piaoquan.api.model.bo.ReplyInfo;
  8. import com.tzld.piaoquan.api.model.vo.CallbackParam;
  9. import com.tzld.piaoquan.growth.common.dao.mapper.PushMessageCallbackMapper;
  10. import com.tzld.piaoquan.growth.common.model.po.PushMessageCallback;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Component;
  15. import org.springframework.util.CollectionUtils;
  16. import java.util.ArrayList;
  17. import java.util.Date;
  18. import java.util.List;
  19. @Slf4j
  20. @Component
  21. public class MessageCallbackCustomer implements MessageListener {
  22. @Autowired
  23. private PushMessageCallbackMapper pushMessageCallbackMapper;
  24. @Override
  25. public Action consume(Message message, ConsumeContext consumeContext) {
  26. CallbackParam param = JSONObject.parseObject(new String(message.getBody()), CallbackParam.class);
  27. log.info("param = {}", param);
  28. if (CollectionUtils.isEmpty(param.getReplyInfo())) {
  29. log.error("CallbackParam replyInfo is empty {}", param);
  30. }
  31. PushMessageCallback pushMessageCallback = new PushMessageCallback();
  32. pushMessageCallback.setGhId(param.getGhId());
  33. pushMessageCallback.setTimestamp(param.getTimestamp());
  34. pushMessageCallback.setOpenId(param.getOpenId());
  35. pushMessageCallback.setCreateTime(new Date());
  36. List<PushMessageCallback> insertList = new ArrayList<>();
  37. if (!CollectionUtils.isEmpty(param.getReplyInfo())) {
  38. for (ReplyInfo replyInfo : param.getReplyInfo()) {
  39. PushMessageCallback insertPushMessageCallback = new PushMessageCallback();
  40. BeanUtils.copyProperties(pushMessageCallback, insertPushMessageCallback);
  41. insertPushMessageCallback.setMsgType(replyInfo.getMsgType());
  42. insertPushMessageCallback.setVideoId(replyInfo.getMiniVideoId());
  43. insertList.add(insertPushMessageCallback);
  44. }
  45. }
  46. try {
  47. if(!CollectionUtils.isEmpty(insertList)){
  48. pushMessageCallbackMapper.insertList(insertList);
  49. }
  50. } catch (Exception e) {
  51. log.error("PushMessageCallback newPushMessageCallbackMapper insert pushMessageCallback={}, error={}", pushMessageCallback, e.getMessage());
  52. return Action.ReconsumeLater;
  53. }
  54. return Action.CommitMessage;
  55. }
  56. }