123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- package data_manage
- import (
- "eta/eta_api/utils"
- "github.com/beego/beego/v2/client/orm"
- "github.com/rdlucklib/rdluck_tools/paging"
- "time"
- )
- type BaseFromHisugarClassify struct {
- BaseFromHisugarClassifyId int // 分类ID
- ClassifyName string // 分类名称
- ParentID int // 上级ID
- Level int // 层级
- Sort int // 排序
- CreateTime string // 创建时间
- ModifyTime string // 修改时间
- }
- type BaseFromHisugarIndex struct {
- BaseFromHisugarIndexId int // 主键ID
- IndexCode string // 指标编码
- IndexName string // 指标名称
- ClassifyId uint // 分类ID
- Unit string // 单位
- Frequency string // 频度
- Describe string // 指标描述
- Sort int // 排序
- CreateTime string // 创建时间
- ModifyTime string // 修改时间
- }
- type BaseFromHisugarData struct {
- BaseFromHisugarDataId int // 数据表ID
- BaseFromHisugarIndexId int // 指标ID
- IndexCode string // 指标编码
- DataTime string
- Value string
- CreateTime string
- ModifyTime string
- }
- func GetHisugarClassifyList() (list []*BaseFromHisugarClassify, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := "SELECT * FROM base_from_hisugar_classify ORDER BY sort ASC"
- _, err = o.Raw(sql).QueryRows(&list)
- return
- }
- type BaseFromHisugarIndexList struct {
- BaseFromHisugarIndexId int // 主键ID
- IndexCode string // 指标编码
- IndexName string // 指标名称
- ClassifyId int // 分类ID
- Unit string // 单位
- Frequency string // 频度
- Describe string // 指标描述
- Sort int // 排序
- CreateTime string // 创建时间
- ModifyTime string // 修改时间
- EdbExist int `description:"edb是否存在"`
- DataList []*BaseFromHisugarData
- Paging *paging.PagingItem `description:"分页数据"`
- EdbInfoId int `description:"指标库主键id"`
- }
- type BaseFromHisugarIndexListResp struct {
- List []*BaseFromHisugarIndexView
- Paging *paging.PagingItem `description:"分页数据"`
- }
- func GetHisugarIndexById(indexId int) (item *BaseFromHisugarIndex, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_index WHERE 1=1 base_from_hisugar_index_id = ? `
- sql += `ORDER BY base_from_hisugar_index_id ASC `
- err = o.Raw(sql, indexId).QueryRow(&item)
- return
- }
- func GetHisugarIndexByCode(indexCode string) (item *BaseFromHisugarIndexView, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT a.*,CASE WHEN e.edb_info_id IS NULL THEN 0 ELSE 1 END AS edb_exist,e.edb_info_id
- FROM base_from_hisugar_index as a
- LEFT JOIN edb_info AS e ON a.index_code=e.edb_code AND e.source=93
- WHERE 1=1 and a.index_code = ? `
- sql += `ORDER BY a.base_from_hisugar_index_id ASC `
- err = o.Raw(sql, indexCode).QueryRow(&item)
- return
- }
- func GetHisugarIndexList(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromHisugarIndex, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += `group BY index_code ASC order by create_time DESC LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- func GetHisugarIndexListCount(condition string, pars interface{}) (count int, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT COUNT(1) AS count FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func GetHisugarDataListCount(condition string, pars interface{}) (count int, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT COUNT(1) AS count FROM base_from_hisugar_data WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func GetHisugarIndexData(condition string, pars interface{}, startSize, pageSize int) (items []*BaseFromHisugarData, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_data WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` order by data_time DESC LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- // GetHisugarItemList 模糊查询泛糖科技数据库指标列表
- func GetHisugarItemList(keyword string) (items []*BaseFromHisugarIndex, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := "SELECT * FROM base_from_hisugar_index WHERE CONCAT(index_name,index_code) LIKE ? "
- _, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
- return
- }
- // HisugarDataBatchListReq 泛糖科技指标批量列表
- type HisugarDataBatchListReq struct {
- ClassifyId int `description:"分类id"`
- KeyWord string `description:"关键字"`
- SelectedId []int `description:"已选指标id, 为true时表示反选"`
- IsSelectAll bool `description:"是否查询全部, 默认false, true:全选, false:查询已选"`
- }
- // GetHisugarIndexByCondition 根据条件获取泛糖科技指标列表
- func GetHisugarIndexByCondition(condition string, pars []interface{}) (items []*BaseFromHisugarIndex, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY sort ASC, base_from_hisugar_index_id ASC`
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- // HisugarDataBatchAddCheckReq 泛糖科技指标批量添加校验
- type HisugarDataBatchAddCheckReq struct {
- IndexCodes []string `description:"指标编码"`
- }
- // GetHisugarIndexAndEdbInfoByCondition 根据条件获取泛糖科技index和指标库的信息
- func GetHisugarIndexAndEdbInfoByCondition(condition string, pars []interface{}) (items []*BaseFromHisugarIndexView, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT b.*, e.edb_info_id, e.unique_code, e.classify_id AS edb_classify_id FROM base_from_hisugar_index AS b LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=? WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY sort ASC `
- _, err = o.Raw(sql, utils.DATA_SOURCE_HISUGAR, pars).QueryRows(&items)
- return
- }
- type BaseFromHisugarIndexView struct {
- BaseFromHisugarIndexId int `orm:"pk"`
- EdbInfoId int `description:"指标库id"`
- ClassifyId int `description:"指标分类id"`
- IndexCode string `description:"指标编码"`
- IndexName string `description:"指标名称"`
- UniqueCode string `description:"唯一code"`
- Frequency string `description:"频度"`
- Unit string `description:"单位"`
- StartDate string `description:"开始日期"`
- EndDate string `description:"结束日期"`
- Sort int `description:"排序"`
- EdbExist int `description:"edb是否存在"`
- EdbClassifyId int `description:"edb分类id"`
- ModifyTime string
- DataTime string `description:"数据时间"`
- Value string `description:"值"`
- }
- // ExportHisugarExcelReq 导出泛糖科技excel指标
- type ExportHisugarExcelReq struct {
- KeyWord string `description:"关键字, 指标编码或指标ID"`
- IndexCode []string `description:"指标编码,全选时,表示反选"`
- IsSelectedAll bool `description:"是否全选:true:全选|false: 无"`
- ClassifyId int `description:"指标id"`
- }
- // GetHisugarIndexByConditionAndFrequency 根据条件获取泛糖科技指标列表
- func GetHisugarIndexByConditionAndFrequency(condition, frequency string, pars []interface{}) (items []*BaseFromHisugarIndex, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` AND frequency=?`
- sql += ` ORDER BY sort ASC, base_from_hisugar_index_id ASC`
- _, err = o.Raw(sql, pars, frequency).QueryRows(&items)
- return
- }
- func GetHisugarDataMaxCount(classifyId int) (count int, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := `SELECT MAX(t.num) AS count FROM (
- SELECT COUNT(1) AS num FROM base_from_hisugar_index AS a
- INNER JOIN base_from_hisugar_data AS b ON a.index_code=b.index_code
- WHERE a.classify_id=?
- GROUP BY a.base_from_hisugar_index_id
- )AS t `
- err = o.Raw(sql, classifyId).QueryRow(&count)
- return
- }
- func GetHisugarIndexDataByCode(indexCode string) (items []*BaseFromHisugarData, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_data WHERE index_code=? ORDER BY data_time DESC `
- _, err = o.Raw(sql, indexCode).QueryRows(&items)
- return
- }
- func GetHisugarFrequencyByCondition(condition string, pars []interface{}) (items []*string, err error) {
- sql := `SELECT DISTINCT frequency FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年','年度') `
- o := orm.NewOrmUsingDB("data")
- _, err = o.Raw(sql, pars...).QueryRows(&items)
- return
- }
- // GetHisugarIndexViewList 根据分类id获取泛糖科技指标列表
- func GetHisugarIndexViewList(condition string, pars []interface{}) (items []*BaseFromHisugarIndexView, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT b.*, e.edb_info_id,
- CASE WHEN e.edb_info_id IS NULL THEN 0 ELSE 1 END AS edb_exist
- FROM base_from_hisugar_index AS b
- LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=93
- WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY b.modify_time ASC `
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- // GetHisugarIndexViewListCount 根据分类id获取泛糖科技指标列表
- func GetHisugarIndexViewListCount(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT COUNT(1) AS count
- FROM base_from_hisugar_index AS b
- LEFT JOIN edb_info AS e ON b.index_code=e.edb_code AND e.source=93
- WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY b.modify_time ASC `
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- // GetHisugarDataViewList 根据指标id获取泛糖科技指标列表
- func GetHisugarDataViewList(indexIds []int) (items []*BaseFromHisugarData, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_data WHERE base_from_hisugar_index_id IN (` + utils.GetOrmInReplace(len(indexIds)) + `) ORDER BY data_time desc `
- _, err = o.Raw(sql, indexIds).QueryRows(&items)
- return
- }
- // GetHisugarDataDataTimeByIndexId 根据指标id获取指标数据的日期列表
- func GetHisugarDataDataTimeByIndexId(indexIdList []int) (items []string, err error) {
- if len(indexIdList) == 0 {
- return
- }
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT DISTINCT data_time FROM base_from_hisugar_data WHERE base_from_hisugar_index_id IN (` + utils.GetOrmInReplace(len(indexIdList)) + `) ORDER BY data_time DESC`
- _, err = o.Raw(sql, indexIdList).QueryRows(&items)
- return
- }
- type BaseFromHisugarClassifyItem struct {
- BaseFromHisugarClassifyId int `orm:"column(base_from_hisugar_classify_id);pk"`
- ClassifyName string `description:"分类名称"`
- ParentId int `description:"父级id"`
- Level int `description:"层级"`
- Sort int `description:"排序字段"`
- UniqueCode string `description:"唯一code"`
- ModifyTime time.Time `description:"修改时间"`
- CreateTime time.Time `description:"创建时间"`
- ClassifyNameEn string `description:"英文分类名称"`
- Children []*BaseFromHisugarClassifyItem `description:"子分类"`
- }
- // 获取所有分类
- func GetHisugarClassifyAll() (items []*BaseFromHisugarClassifyItem, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_classify ORDER BY sort ASC, base_from_hisugar_classify_id ASC`
- _, err = o.Raw(sql).QueryRows(&items)
- return
- }
- func GetHisugarIndex(condition string, pars interface{}) (items []*BaseFromHisugarIndexList, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY sort ASC, base_from_hisugar_index_id asc`
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- type HisugarIndexDataCountGroup struct {
- IndexCode string
- Count int
- }
- func GetHisugarIndexDataCountGroup(indexCodes []string) (items []*HisugarIndexDataCountGroup, err error) {
- if len(indexCodes) <= 0 {
- return
- }
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT COUNT(1) AS count, index_code FROM base_from_hisugar_data WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `) GROUP BY index_code`
- _, err = o.Raw(sql, indexCodes).QueryRows(&items)
- return
- }
- func GetHisugarIndexDataV2(indexCode string, startSize, pageSize int) (items []*BaseFromHisugarData, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
- _, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
- return
- }
- // GetHisugarIndexInfoCount 查询指标信息总数
- func GetHisugarIndexInfoCount(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT COUNT(1) AS count FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- type BaseFromHisugarIndexPage struct {
- List []*BaseFromHisugarIndex `description:"指标列表"`
- Paging *paging.PagingItem `description:"分页数据"`
- }
- // GetHisugarIndexInfoPage 分页查询指标信息
- func GetHisugarIndexInfoPage(condition string, pars []interface{}, size int, pageSize int) (items []*BaseFromHisugarIndex, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT * FROM base_from_hisugar_index WHERE 1=1 `
- if condition != "" {
- sql += condition
- }
- sql += ` ORDER BY base_from_hisugar_index_id asc LIMIT ?,?`
- _, err = o.Raw(sql, pars, size, pageSize).QueryRows(&items)
- return
- }
- // 获取所有分类
- func GetHisugarClassifyById(classifyId int) (ClassifyIds string, err error) {
- o := orm.NewOrmUsingDB("data")
- sql := ` SELECT GROUP_CONCAT(base_from_hisugar_classify_id) AS classify_ids FROM base_from_hisugar_classify WHERE base_from_hisugar_classify_id=? OR parent_id=?`
- err = o.Raw(sql,classifyId,classifyId).QueryRow(&ClassifyIds)
- return
- }
|