package com.yihu.quota.service.cube; import com.yihu.ehr.query.BaseJpaService; import com.yihu.quota.dao.cube.CubeMappingDao; import com.yihu.quota.dao.cube.CubeMemberMappingDao; import com.yihu.quota.model.cube.Cube; import com.yihu.quota.model.cube.CubeMapping; import com.yihu.quota.model.cube.CubeMemberMapping; import com.yihu.quota.vo.CubeMemberMappingModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Service; import java.util.List; /** * Created by janseny on 2018/9/10. * @author janseny */ @Service public class CubeMemberMappingService extends BaseJpaService { @Autowired private CubeMemberMappingDao cubeMemberMappingDao; /** * 保存接口 * @param cubeMemberMapping * @return 保存之后的id */ public Integer saveOlapCubeMemberMapping(CubeMemberMapping cubeMemberMapping) { cubeMemberMapping = cubeMemberMappingDao.save(cubeMemberMapping); return cubeMemberMapping.getId(); } public void deleteOlapcubeMemberMapping(Integer id) { cubeMemberMappingDao.delete(id); } /** * 根据数据集维度ID 查询对应的维度成员信息 * @param id * @return */ public List findCubeMemberMappingModelsById(Integer id) { String sql = "SELECT ocmm.*,odm.data_type from olap_cube_member_mapping ocmm ,olap_dimension_member odm " + " where ocmm.dimension_member_id = odm.id AND ocmm.cube_mapping_id = ? order by ocmm.id asc "; List cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), id); return cubeMemberMappingModels; } /** * 根据表编码和字段编码 查询对应的维度信息 * @param fieldCode * @return */ public List findCubeMemberMappingModels(String tableCode,String fieldCode) { String sql = "SELECT ocmm.*,ocm.dimension_code as parentCode,ocm.child_save_type,odstf.field_code,odm.dict,odm.data_type,odm.`algorithm`,odm.parm from olap_cube_member_mapping ocmm " + " LEFT JOIN olap_data_sources_table_field odstf ON ocmm.data_field_id = odstf.id " + " LEFT JOIN olap_data_sources_table odst ON odst.id = odstf.table_id " + " LEFT JOIN olap_dimension_member odm ON ocmm.dimension_member_id = odm.id " + " LEFT JOIN olap_cube_mapping ocm ON ocm.id = ocmm.cube_mapping_id " + " where odstf.field_code = ? and odst.table_code = ? "; String param[] = {fieldCode,tableCode}; List cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), param); return cubeMemberMappingModels; } }