ConvertHelper.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.yihu.quota.etl.convert;
  2. import com.yihu.quota.model.dimension.TjQuotaDimensionSlave;
  3. import com.yihu.quota.vo.FilterModel;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.context.annotation.Scope;
  6. import org.springframework.jdbc.core.JdbcTemplate;
  7. import org.springframework.stereotype.Component;
  8. import org.springframework.util.StringUtils;
  9. import java.lang.reflect.Method;
  10. import java.util.List;
  11. import java.util.Map;
  12. /**
  13. * Created by janseny on 2018/5/9.
  14. * 维度的key值转换器
  15. */
  16. @Component
  17. @Scope("prototype")
  18. public class ConvertHelper {
  19. @Autowired
  20. private JdbcTemplate jdbcTemplate;
  21. /**
  22. * 维度的key清洗到对应的slaveKey中
  23. * @param filterModel 过滤之后的model
  24. * @param tjQuotaDimensionSlave 维度
  25. * @return
  26. * @throws Exception
  27. */
  28. public FilterModel convert(FilterModel filterModel, TjQuotaDimensionSlave tjQuotaDimensionSlave) throws Exception {
  29. List<Map<String, Object>> data = filterModel.getDataList();
  30. String clazz = tjQuotaDimensionSlave.getConverClass();
  31. if (!StringUtils.isEmpty(clazz)) {
  32. //反射出对象并且调用convert方法去转换对应的slavekey
  33. Object obj = Class.forName(clazz).newInstance();
  34. Method method = obj.getClass().getMethod("convert", JdbcTemplate.class, List.class, TjQuotaDimensionSlave.class);
  35. data = (List<Map<String, Object>>) method.invoke(obj, jdbcTemplate, data, tjQuotaDimensionSlave);
  36. filterModel.setDataList(data);
  37. }
  38. return filterModel;
  39. }
  40. }