RedisReceiver.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package me.zhengjie.application.bank.mq;
  2. import com.alibaba.fastjson.JSONObject;
  3. import lombok.RequiredArgsConstructor;
  4. import me.zhengjie.base.util.FileUploadUtil;
  5. import me.zhengjie.dao.mybatis.ModelRepository;
  6. import me.zhengjie.dao.mybatis.OrderFileRepository;
  7. import me.zhengjie.dao.mybatis.ContractOrderRepository;
  8. import me.zhengjie.dao.mybatis.entity.ModelEntity;
  9. import me.zhengjie.dao.mybatis.entity.ContractOrderEntity;
  10. import me.zhengjie.dao.mybatis.entity.OrderFileEntity;
  11. import me.zhengjie.dao.mybatis.mapper.OrderFileMapper;
  12. import me.zhengjie.domain.model.ModelSynthesizerDomain;
  13. import org.apache.commons.lang3.StringUtils;
  14. import org.springframework.data.redis.connection.Message;
  15. import org.springframework.data.redis.connection.MessageListener;
  16. import org.springframework.stereotype.Component;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import java.util.Date;
  19. import java.util.List;
  20. @Component
  21. @RequiredArgsConstructor
  22. public class RedisReceiver implements MessageListener {
  23. private final OrderFileMapper orderFileMapper;
  24. private final ContractOrderRepository contractOrderRepository;
  25. private final ModelRepository modelRepository;
  26. private final OrderFileRepository orderFileRepository;
  27. private final ModelSynthesizerDomain modelSynthesizerDomain;
  28. @Override
  29. @Transactional(rollbackFor = Exception.class)
  30. public void onMessage(Message message, byte[] pattern) {
  31. System.out.println("Redis message receiver for generate common doc is beginnig ...");
  32. String text = new String(message.getBody());
  33. System.out.println(text);
  34. if (StringUtils.isNotBlank(text)) {
  35. JSONObject jsonObject = JSONObject.parseObject(text);
  36. generateCommonDoc(jsonObject);
  37. }
  38. System.out.println("Redis message receiver for generate common doc is end.");
  39. }
  40. public void generateCommonDoc(JSONObject jsonObject) {
  41. String userId = jsonObject.getString("userId");
  42. String businessNo = jsonObject.getString("businessNo");
  43. //
  44. ContractOrderEntity contractOrderEntity = contractOrderRepository.getContractOrderWithBizNo(businessNo);
  45. List<ModelEntity> models = modelRepository.getCommonModel(contractOrderEntity.getProdId(),contractOrderEntity.getContractType(), contractOrderEntity.getNotaryOfficeId());
  46. // 在保存之前先删除数据
  47. orderFileRepository.delFileWithBizNO(businessNo);
  48. for (ModelEntity m : models) {
  49. OrderFileEntity fileEntity = new OrderFileEntity();
  50. fileEntity.setBusinessNo(businessNo);
  51. fileEntity.setCode(m.getCode());
  52. fileEntity.setSortNum(m.getSort());
  53. String html = modelSynthesizerDomain.composeCommonTemplateWithData(businessNo, m.getContent(),"");
  54. String htmlPath = FileUploadUtil.saveHtml(html, businessNo);
  55. String pdfPath = FileUploadUtil.savePdf(html, businessNo);
  56. fileEntity.setHtmlUrl(htmlPath);
  57. fileEntity.setPdfUrl(pdfPath);
  58. fileEntity.setCreateTime(new Date());
  59. fileEntity.setCreatorId(Long.parseLong(userId));
  60. fileEntity.setFileName(m.getTitle());
  61. //
  62. orderFileMapper.insert(fileEntity);
  63. }
  64. }
  65. }