IntegralDetailServiceImpl.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. package com.poteviohealth.cgp.integration.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.poteviohealth.cgp.common.filter.TokenContext;
  6. import com.poteviohealth.cgp.common.integrated.customer.model.CustomerIntegration;
  7. import com.poteviohealth.cgp.common.model.CommonPage;
  8. import com.poteviohealth.cgp.common.model.VaultsResponse;
  9. import com.poteviohealth.cgp.common.service.impl.BaseServiceImpl;
  10. import com.poteviohealth.cgp.integration.mapper.IntegralDetailMapper;
  11. import com.poteviohealth.cgp.integration.mapstruct.IntegralConverter;
  12. import com.poteviohealth.cgp.integration.model.IntegralDetail;
  13. import com.poteviohealth.cgp.integration.model.invo.web.IntegralDetailWebInDTO;
  14. import com.poteviohealth.cgp.integration.model.outvo.web.IntegralDetailWebOutDTO;
  15. import com.poteviohealth.cgp.integration.service.IIntegralDetailService;
  16. import lombok.extern.log4j.Log4j2;
  17. import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;
  18. import org.springframework.core.io.ClassPathResource;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. import java.sql.Connection;
  22. import java.sql.SQLException;
  23. import java.sql.Statement;
  24. import java.util.List;
  25. import java.util.Properties;
  26. /**
  27. * @PackageName:com.poteviohealth.cgp.integration.service.impl
  28. * @className:IntegralDetailServiceImpl
  29. * @Description:
  30. * @author: QIN
  31. * @date: 2020/9/1 15:46
  32. */
  33. @Service
  34. @Log4j2
  35. public class IntegralDetailServiceImpl extends BaseServiceImpl<IntegralDetailMapper, IntegralDetail> implements IIntegralDetailService {
  36. @Override
  37. @Transactional(rollbackFor = Exception.class)
  38. public VaultsResponse<String> createTable(Connection conn, Integer mark) {
  39. //获取yml配置文件
  40. StringBuilder stringBuilder = new StringBuilder();
  41. try {
  42. YamlPropertiesFactoryBean yamlMapFactoryBean = new YamlPropertiesFactoryBean();
  43. yamlMapFactoryBean.setResources(new ClassPathResource("integration-sql.yml"));
  44. Properties properties = yamlMapFactoryBean.getObject();
  45. properties.forEach((k, v) -> {
  46. //获取执行次数
  47. String tableName = k.toString().substring(0,k.toString().lastIndexOf('_')+1);
  48. tableName+= mark.toString();
  49. //执行替换
  50. String sql = v.toString().replace("$", mark.toString());
  51. Statement statement = null;
  52. try {
  53. statement = conn.createStatement();
  54. //执行创建表
  55. statement.executeUpdate("DROP TABLE IF EXISTS `"+tableName+"`");
  56. statement.executeUpdate(sql);
  57. } catch (SQLException e) {
  58. log.error("{createTable}创建表[" + k + "]时异常;");
  59. stringBuilder.append("创建表[" + k + "]时异常;");
  60. //break;
  61. } finally {
  62. if (statement != null) {
  63. try {
  64. statement.close();
  65. } catch (SQLException e) {
  66. log.error("close statement error", e);
  67. }
  68. }
  69. }
  70. });
  71. if (stringBuilder.length() == 0) {
  72. return VaultsResponse.success();
  73. }
  74. } catch (Exception e) {
  75. log.error("创建表失败", e);
  76. return VaultsResponse.failed(stringBuilder.toString());
  77. } finally {
  78. try {
  79. if (conn != null) {
  80. conn.close();
  81. }
  82. } catch (SQLException e) {
  83. log.error("close connection error", e);
  84. }
  85. }
  86. return VaultsResponse.success();
  87. }
  88. @Override
  89. public VaultsResponse<CommonPage<IntegralDetailWebOutDTO>> selectPage(IntegralDetailWebInDTO integralDetailWebInDTO) {
  90. CommonPage<IntegralDetail> pageOrder = selectOrderIPage(integralDetailWebInDTO);
  91. return VaultsResponse.success(IntegralConverter.INSTANCE.model2WebDTO(pageOrder));
  92. }
  93. @Override
  94. public VaultsResponse saveDetail(List<CustomerIntegration> customerIntegration) {
  95. return VaultsResponse.success(super.saveBatch(IntegralConverter.INSTANCE.model2FeginDTO(customerIntegration)));
  96. }
  97. private CommonPage<IntegralDetail> selectOrderIPage(IntegralDetailWebInDTO integralDetailWebInDTO) {
  98. IPage<IntegralDetail> page = new Page<>(integralDetailWebInDTO.getPageNum(), integralDetailWebInDTO.getPageSize());
  99. QueryWrapper<IntegralDetail> orderQueryWrapper = new QueryWrapper<>();
  100. orderQueryWrapper.eq("customer_id",integralDetailWebInDTO.getCustomerId());
  101. if (null != integralDetailWebInDTO.getStartDate()) {
  102. orderQueryWrapper.ge("created_date", integralDetailWebInDTO.getStartDate());
  103. }
  104. if (null != integralDetailWebInDTO.getEndDate()) {
  105. orderQueryWrapper.le("created_date", integralDetailWebInDTO.getEndDate());
  106. }
  107. orderQueryWrapper.orderByDesc("created_date");
  108. return super.commonPage(page, orderQueryWrapper);
  109. }
  110. }