CubeMappingService.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package com.yihu.quota.service.cube;
  2. import com.yihu.ehr.query.BaseJpaService;
  3. import com.yihu.quota.dao.cube.CubeDao;
  4. import com.yihu.quota.dao.cube.CubeMappingDao;
  5. import com.yihu.quota.model.cube.Cube;
  6. import com.yihu.quota.model.cube.CubeMapping;
  7. import com.yihu.quota.vo.CubeMappingModel;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  10. import org.springframework.stereotype.Service;
  11. import java.util.List;
  12. /**
  13. * 多维数据集的维度 service
  14. * Created by janseny on 2018/9/10.
  15. * @author janseny
  16. */
  17. @Service
  18. public class CubeMappingService extends BaseJpaService<CubeMapping, CubeMappingDao> {
  19. @Autowired
  20. private CubeMappingDao cubeMappingDao;
  21. /**
  22. * 保存接口
  23. * @param cubeMapping
  24. * @return 保存之后的id
  25. */
  26. public Integer saveOlapCubeMapping(CubeMapping cubeMapping) {
  27. cubeMapping = cubeMappingDao.save(cubeMapping);
  28. return cubeMapping.getId();
  29. }
  30. public void deleteOlapcubeMapping(Integer id) {
  31. cubeMappingDao.delete(id);
  32. }
  33. public CubeMapping findOne(Integer id) {
  34. return cubeMappingDao.findOne(id);
  35. }
  36. /**
  37. * 根据数据集 查询对应的维度信息
  38. * @param cubeId
  39. * @return
  40. */
  41. public List<CubeMappingModel> findCubeMappingModelsByCubeId(int cubeId) {
  42. String sql = "SELECT ocm.*,od.data_type,od.dict from olap_cube_mapping ocm ,olap_dimension od " +
  43. " where ocm.dimension_id = od.id AND ocm.cube_id = ? order by ocm.id asc";
  44. List<CubeMappingModel> cubeMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMappingModel.class), cubeId);
  45. return cubeMappingModels;
  46. }
  47. /**
  48. * 根据表编码和字段编码 查询对应的维度信息
  49. * @param fieldCode
  50. * @param tableCode
  51. * @return
  52. */
  53. public List<CubeMappingModel> findCubeMappingModelsByFieldCode(String tableCode,String fieldCode) {
  54. String sql = "SELECT ocm.*,oc.index_name,oc.index_type,odstf.field_code,od.dict,od.data_type,od.`algorithm`,od.parm from olap_cube_mapping ocm " +
  55. " LEFT JOIN olap_data_sources_table_field odstf ON ocm.data_field_id = odstf.id "+
  56. " LEFT JOIN olap_data_sources_table odst ON odst.id = odstf.table_id " +
  57. " LEFT JOIN olap_cube oc ON oc.id = ocm.cube_id " +
  58. " LEFT JOIN olap_dimension od ON ocm.dimension_id = od.id where odstf.field_code = ? and odst.table_code = ? ";
  59. String param[] = {fieldCode,tableCode};
  60. List<CubeMappingModel> cubeMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMappingModel.class), param);
  61. return cubeMappingModels;
  62. }
  63. }