Преглед изворни кода

es mapping 数据逻辑处理保存

jkzlzhoujie пре 6 година
родитељ
комит
1b9a74720c

+ 11 - 0
src/main/java/com/yihu/quota/service/cube/CubeMemberMappingService.java

@ -66,4 +66,15 @@ public class CubeMemberMappingService extends BaseJpaService<CubeMemberMapping,
        List<CubeMemberMappingModel> cubeMemberMappingModels = jdbcTemplate.query(sql, new BeanPropertyRowMapper(CubeMemberMappingModel.class), param);
        return cubeMemberMappingModels;
    }
    public CubeMemberMapping findCubeMemberMappingPrimary(int cubeMappingId){
        String[] fields = {"cubeMappingId","isPrimarykey"};
        Object[] values = {cubeMappingId,1};
        List<CubeMemberMapping> cubeMemberMappings = findByFields(fields,values);
        if(cubeMemberMappings != null && cubeMemberMappings.size() > 0){
            return cubeMemberMappings.get(0);
        }else {
            return null;
        }
    }
}

+ 11 - 7
src/main/java/com/yihu/quota/service/cube/ElasticSearchDataProcessService.java

@ -8,6 +8,7 @@ import com.yihu.ehr.util.datetime.DateUtil;
import com.yihu.quota.etl.formula.AgeGroupFunc;
import com.yihu.quota.etl.formula.DictFunc;
import com.yihu.quota.etl.formula.DivisionFunc;
import com.yihu.quota.model.cube.CubeMemberMapping;
import com.yihu.quota.util.ElasticSearchHandler;
import com.yihu.quota.vo.CubeMappingModel;
import com.yihu.quota.vo.CubeMemberMappingModel;
@ -38,7 +39,6 @@ public class ElasticSearchDataProcessService {
    private static String id_k = "_id";
    private static String rowKey_k = "rowkey";
    private static String profileId_k = "profile_id";
    private static String subRowKey_k = "subRowkey";
    private static String action_k = "action";
    @Autowired
@ -131,11 +131,14 @@ public class ElasticSearchDataProcessService {
                List<CubeMemberMappingModel> cubeMemberMappingModels = cubeMemberMappingService.findCubeMemberMappingModels(table,hbaseColCode);
                if(cubeMemberMappingModels != null && cubeMemberMappingModels.size() > 0){
                    for(CubeMemberMappingModel cubeMemberMappingModel :cubeMemberMappingModels){
                        CubeMemberMapping primaryCubeMember = cubeMemberMappingService.findCubeMemberMappingPrimary(cubeMemberMappingModel.getCubeMappingId());
                        String index = cubeMemberMappingModel.getIndexName();
                        String type = cubeMemberMappingModel.getIndexType();
                        String primaryKey = primaryCubeMember.getDimensionCode();
                        String subRowKey = rowKey;
                        if(action.contains(action_put)){
                            //维度成员数据扩展保存
                            source = dimensionMemberDataExtendToMap(cubeMemberMappingModel,keyValue,rowKey,profileId);
                            source = dimensionMemberDataExtendToMap(cubeMemberMappingModel,keyValue,subRowKey,profileId,primaryKey);
                            saveElasticSearchData(index, type,profileId,source);
                        }
                    }
@ -189,7 +192,8 @@ public class ElasticSearchDataProcessService {
     * @param subRowKey
     * @return
     */
    public Map<String,Object> dimensionMemberDataExtendToMap(CubeMemberMappingModel cubeMemberMappingModel,String cloumnValue,String subRowKey,String profileId) throws Exception {
    public Map<String,Object> dimensionMemberDataExtendToMap(CubeMemberMappingModel cubeMemberMappingModel,String cloumnValue,String subRowKey
            ,String profileId,String primaryKey) throws Exception {
        Map<String, Object> source  = new HashMap<>();
        String cloumnCode = cubeMemberMappingModel.getDimensionCode();
        String parentCode = cubeMemberMappingModel.getParentCode();
@ -222,8 +226,8 @@ public class ElasticSearchDataProcessService {
                if(childList != null && childList.size() > 0){
                    boolean isexist = false;
                    for(Map<String, Object> map : childList){
                        if(subRowKey.equals(map.get(subRowKey_k).toString())){
                            map.put(subRowKey_k,subRowKey);
                        if(subRowKey.equals(map.get(primaryKey).toString())){
                            map.put(primaryKey,subRowKey);
                            map.put(cloumnCode,dataConver(dataType,cloumnValue));
                            if(StringUtils.isNotEmpty(dict)){
                                map = extendDictData(map,cloumnCode,dict,cloumnValue);
@ -236,7 +240,7 @@ public class ElasticSearchDataProcessService {
                    }
                    if( !isexist){
                        Map<String,Object> map = new HashMap<>();
                        map.put(subRowKey_k,subRowKey);
                        map.put(primaryKey,subRowKey);
                        map.put(cloumnCode,dataConver(dataType,cloumnValue));
                        if(StringUtils.isNotEmpty(dict)){
                            map = extendDictData(map,cloumnCode,dict,cloumnValue);
@ -248,7 +252,7 @@ public class ElasticSearchDataProcessService {
                    source.put(parentCode, nestedList);
                }else{
                    Map<String,Object> map = new HashMap<>();
                    map.put(subRowKey_k,subRowKey);
                    map.put(primaryKey,subRowKey);
                    map.put(cloumnCode,dataConver(dataType,cloumnValue));
                    nestedList.add(map);
                    source.put(parentCode, nestedList);