瀏覽代碼

bug修改

suqinyi 1 年之前
父節點
當前提交
a1db13682e

+ 5 - 0
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/config/DataSourceConfig.java

@ -75,6 +75,7 @@ public class DataSourceConfig {
    @Bean(name = "primaryReadWrite")
    @Primary//主库 默认不写名字用这个
    public DataSource primaryReadWriteDataSource(StatFilter statFilter) throws SQLException {
        System.out.println("主数据库配置==>"+primaryReadWriteUrl+"  账号==>"+primaryReadWriteUsername+"  密码==>"+primaryReadWritePassword);
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(primaryReadWriteUrl);
        datasource.setUsername(primaryReadWriteUsername);
@ -117,6 +118,8 @@ public class DataSourceConfig {
    @Bean(name = "primaryRead")
    public DataSource primaryReadDataSource(StatFilter statFilter) throws SQLException {
        System.out.println("从数据库配置==>"+primaryReadUrl+"  账号==>"+pprimaryReadUsername+"  密码==>"+primaryReadPassword);
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(primaryReadUrl);
        datasource.setUsername(pprimaryReadUsername);
@ -159,6 +162,8 @@ public class DataSourceConfig {
    @Bean(name = "imData")
    public DataSource imDataSource(StatFilter statFilter) throws SQLException {
        System.out.println("imData数据库配置==>"+imUrl+"  账号==>"+imUsername+"  密码==>"+imPassword);
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(imUrl);
        datasource.setUsername(imUsername);

+ 11 - 9
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/etl/extract/ExtractHelper.java

@ -54,43 +54,45 @@ public class ExtractHelper {
                timeSql = wlyyJobConfigVO.getSqlDay();
            }
            //如果为null 初始化
            if(StringUtils.isEmpty(timeSql)){
                timeSql="";
            if (StringUtils.isEmpty(timeSql)) {
                timeSql = "";
            }
            //设置时间
            String sql = initSql(wlyyJobConfigVO.getSql() + "  " + timeSql, year);
            String sqlCount = initSql(wlyyJobConfigVO.getSqlCount() + "  " + timeSql, year);
            logger.info(" sql: " + sql);
            logger.info(" sqlCount: " + sqlCount);
            Map<String,Object> params = new HashedMap();
            Map<String, Object> params = new HashedMap();
            params.put("startTime", startTime);
            params.put("endTime", endTime);
            /*params.put("startTime", DateUtil.strToDate(startTime,"yyyy-MM-dd HH:mm:ss"));
            params.put("endTime", DateUtil.strToDate(endTime,"yyyy-MM-dd HH:mm:ss"));*/
            //如果是数据库从数据库抽取
            if (StringUtils.isEmpty(wlyyJobConfigVO.getExtractType())||"1".equals(wlyyJobConfigVO.getExtractType())){
            if (StringUtils.isEmpty(wlyyJobConfigVO.getExtractType()) || "1".equals(wlyyJobConfigVO.getExtractType())) {
                //抽取数据库
                System.out.println("抽取数据库sql==>" + sql);
                return SpringUtil.getBean(DBExtract.class).extractByPage(
                        DataModel.class,
                        sql,
                        sqlCount,
                        true,
                        jdbcTemplate,params);
            }else if("2".equals(wlyyJobConfigVO.getExtractType())){
                        jdbcTemplate, params);
            } else if ("2".equals(wlyyJobConfigVO.getExtractType())) {
                //抽取ES
               return SpringUtil.getBean(ESExtract.class).extract(wlyyJobConfigVO);
                return SpringUtil.getBean(ESExtract.class).extract(wlyyJobConfigVO);
            }
        } catch (Exception e) {
            System.out.println("报错了");
            logger.error("extract error:" + e.getMessage());
            logger.error("quotaVO str:" + wlyyJobConfigVO.toString());
            e.printStackTrace();
        }
        return null;
    }
    public String initSql(String sql, String year) {
        return sql.replace("[year]", year).replace("[im]",imDatabaseName);
        return sql.replace("[year]", year).replace("[im]", imDatabaseName);
    }
}

+ 41 - 20
svr/svr-statistics-hlw/src/main/java/com/yihu/jw/statistics/util/hibernate/HibenateUtils.java

@ -1,5 +1,6 @@
package com.yihu.jw.statistics.util.hibernate;
import com.alibaba.fastjson.JSON;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
@ -45,7 +46,7 @@ public class HibenateUtils {
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
        if(page!=null&&size!=null){
        if (page != null && size != null) {
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
@ -58,6 +59,7 @@ public class HibenateUtils {
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     * 无分页
     *
     * @param sql
     * @return
     */
@ -73,10 +75,11 @@ public class HibenateUtils {
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     *
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @param page 第几页,1开始
     * @param size 每页记录数
     * @param page   第几页,1开始
     * @param size   每页记录数
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size) {
@ -87,7 +90,7 @@ public class HibenateUtils {
        //设置查询参数
        setSqlQueryByMap(query, params);
        if(page!=null&&size!=null){
        if (page != null && size != null) {
            query.setFirstResult((page - 1) * size);
            query.setMaxResults(size);
        }
@ -99,12 +102,26 @@ public class HibenateUtils {
     * 创建SQL查询,根据配置,获取数据库方言
     * sql为原生sql语句,查询,Oracle不区分大小写,返回值需要驼峰命名,字段别名需要加 双引号
     * 目前只支持通用的聚合函数,特有的聚合函数不支持
     *
     * @param sql
     * @param params 动态占位符入参,例如 like:name
     * @return
     */
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params) {
        Map<String, Object> entityProperties = entityManager.getProperties();
        Session session = (Session) entityManager.getDelegate();
        Map<String, Object> sessionProperties = session.getProperties();
//        System.out.println("----------------------------------------");
//        System.out.println("打印entityProperties");
//        for (Map.Entry<String, Object> entry : entityProperties.entrySet()) {
//            System.out.println(entry.getKey() + "   值==>" + JSON.toJSONString(entry.getValue()));
//        }
//        System.out.println("打印sessionProperties");
//        for (Map.Entry<String, Object> entry : sessionProperties.entrySet()) {
//            System.out.println(entry.getKey() + "   值==>" + JSON.toJSONString(entry.getValue()));
//        }
//        System.out.println("----------------------------------------");
        SQLQuery query = session.createSQLQuery(sql);
        query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
@ -117,6 +134,7 @@ public class HibenateUtils {
    /**
     * 设置查询参数
     *
     * @param sqlQuery
     * @param params
     * @return
@ -139,17 +157,18 @@ public class HibenateUtils {
    /**
     * 聚合函数类型装换
     *
     * @param obj
     * @return
     */
    public Long objTransformLong(Object obj){
    public Long objTransformLong(Object obj) {
        //Oracle count(1) 聚合函数类型装换
        if(obj instanceof BigDecimal){
        if (obj instanceof BigDecimal) {
            return ((BigDecimal) obj).longValue();
        //Mysql count(1) 聚合函数类型装换
        }else if(obj instanceof BigInteger){
            return ((BigInteger)obj).longValue();
        }else{
            //Mysql count(1) 聚合函数类型装换
        } else if (obj instanceof BigInteger) {
            return ((BigInteger) obj).longValue();
        } else {
            return 0L;
        }
    }
@ -157,6 +176,7 @@ public class HibenateUtils {
    /**
     * map - T
     *
     * @param map
     * @param clazz
     * @param <T>
@ -196,7 +216,8 @@ public class HibenateUtils {
    }
    /**
     *  List<Map> -- List<T>
     * List<Map> -- List<T>
     *
     * @param list
     * @param clazz
     * @param <T>
@ -204,7 +225,7 @@ public class HibenateUtils {
     * @throws Exception
     */
    public static <T> List<T> castMapToBean(List<Map<String, Object>> list, Class<T> clazz) throws Exception {
        if(list == null || list.size()==0) {
        if (list == null || list.size() == 0) {
            return null;
        }
        List<T> tList = new ArrayList<T>();
@ -212,23 +233,23 @@ public class HibenateUtils {
        Field[] fields = clazz.getDeclaredFields();
        T t;
        for(Map<String, Object> map : list) {
        for (Map<String, Object> map : list) {
            // 每次都先初始化一遍,然后再设置值
            t = clazz.newInstance();
            for(Field field : fields) {
            for (Field field : fields) {
                // 把序列化的字段去除掉
                if(!"serialVersionUID".equals(field.getName())){
                if (!"serialVersionUID".equals(field.getName())) {
                    // 由于Field都是私有属性,所有需要允许修改
                    field.setAccessible(true);
                    Object value = map.get(field.getName());
                    if (value!=null){
                        if("java.math.BigDecimal".equals(value.getClass().getName())){
                            value=Double.parseDouble(value.toString());
                    if (value != null) {
                        if ("java.math.BigDecimal".equals(value.getClass().getName())) {
                            value = Double.parseDouble(value.toString());
                        }
                        if(value.getClass().getName().equals("java.lang.Integer") && field.getName().equals("slaveKey1")){
                        if (value.getClass().getName().equals("java.lang.Integer") && field.getName().equals("slaveKey1")) {
                            value = value.toString();
                        }
                        if(field.getName().equals("slaveKey2")){
                        if (field.getName().equals("slaveKey2")) {
                            value = value.toString();
                        }
                    }