12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package edb_info
- import (
- "hongze/hongze_yb/global"
- "hongze/hongze_yb/utils"
- )
- // GetEdbInfoById 主键获取指标信息
- func GetEdbInfoById(edbInfoId int) (item *EdbInfo, err error) {
- err = global.MYSQL["data"].Where("edb_info_id = ? ", edbInfoId).First(&item).Error
- return
- }
- // GetEdbInfoAllCalculateByEdbInfoIdList 根据指标id集合 获取基础指标对应的所有计算指标
- func GetEdbInfoAllCalculateByEdbInfoIdList(edbInfoIdList []int) (list []*EdbInfo, err error) {
- num := len(edbInfoIdList)
- if num <= 0 {
- return
- }
- sql := ` SELECT b.* FROM edb_info_calculate_mapping AS a
- INNER JOIN edb_info AS b ON a.edb_info_id=b.edb_info_id
- WHERE a.from_edb_info_id IN (?)
- GROUP BY a.edb_info_id
- ORDER BY a.edb_info_id ASC `
- err = global.MYSQL["data"].Raw(sql, edbInfoIdList).Scan(&list).Error
- return
- }
- // GetEdbInfoByIdList 根据指标id集合 获取 指标列表
- func GetEdbInfoByIdList(edbInfoIdList []int) (items []*EdbInfo, err error) {
- num := len(edbInfoIdList)
- if num <= 0 {
- return
- }
- sql := ` SELECT * FROM edb_info WHERE edb_info_id IN (?) `
- err = global.MYSQL["data"].Raw(sql, edbInfoIdList).Scan(&items).Error
- return
- }
- // GetRefreshEdbInfoFromBase 查询基础指标
- func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
- calculateList, err := GetEdbInfoCalculateMap(edbInfoId)
- if err != nil && err != utils.ErrNoRow {
- return
- }
- for _, item := range calculateList {
- if item.EdbInfoId == edbInfoId { // 如果查出来关联的指标就是自己的话,那么就过滤
- continue
- }
- if item.EdbType == 1 {
- baseEdbInfoArr = append(baseEdbInfoArr, item)
- } else {
- calculateInfoArr = append(calculateInfoArr, item)
- newBaseEdbInfoArr, newCalculateInfoArr, _ := GetRefreshEdbInfoFromBase(item.EdbInfoId, item.Source)
- baseEdbInfoArr = append(baseEdbInfoArr, newBaseEdbInfoArr...)
- calculateInfoArr = append(calculateInfoArr, newCalculateInfoArr...)
- }
- }
- return
- }
- // GetEdbInfoCalculateMap 获取计算指标关联信息
- func GetEdbInfoCalculateMap(edbInfoId int) (list []*EdbInfo, err error) {
- sql := ` SELECT b.* FROM edb_info_calculate_mapping AS a
- INNER JOIN edb_info AS b ON a.from_edb_info_id=b.edb_info_id
- WHERE a.edb_info_id=? ORDER BY sort ASC `
- err = global.MYSQL["data"].Raw(sql, edbInfoId).Scan(&list).Error
- return
- }
- // GetPredictEdbInfoAllCalculate 根据基础预测指标id集合 获取 所有的普通指标列表数据
- func GetPredictEdbInfoAllCalculate(edbInfoIdList []int) (list []*EdbInfo, err error) {
- num := len(edbInfoIdList)
- if num <= 0 {
- return
- }
- sql := ` SELECT b.* FROM predict_edb_conf AS a
- INNER JOIN edb_info AS b ON a.source_edb_info_id=b.edb_info_id
- WHERE a.predict_edb_info_id IN (?)
- GROUP BY a.source_edb_info_id
- ORDER BY a.source_edb_info_id ASC `
- err = global.MYSQL["data"].Raw(sql, edbInfoIdList).Scan(&list).Error
- return
- }
- type EdbInfoSearchData struct {
- DataTime string `description:"数据日期"`
- Value float64 `description:"数据"`
- }
|