IntegralDetailServiceImpl.java 4.9 KB

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