package data_manage import ( "eta/eta_hub/global" "eta/eta_hub/utils" "fmt" "strings" "time" ) // EdbClassify 指标分类 type EdbClassify struct { ClassifyId int `orm:"column(classify_id);pk"` ClassifyType uint8 `description:"分类类型,0:普通指标分类,1:预测指标分类"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` RootId int `description:"顶级id"` HasData int `description:"是否含有指标数据"` SysUserId int `description:"创建人id"` SysUserRealName string `description:"创建人姓名"` Level int `description:"层级"` UniqueCode string `description:"唯一编码"` Sort int `description:"排序字段,越小越靠前,默认值:10"` CreateTime time.Time `description:"创建时间"` ModifyTime time.Time `description:"修改时间"` } func (m *EdbClassify) GetItemsByCondition(cond string, pars []interface{}, fieldArr []string, orderRule string) (items []*EdbClassify, err error) { //o := orm.NewOrmUsingDB("data") fields := strings.Join(fieldArr, ",") if len(fieldArr) == 0 { fields = `*` } order := `ORDER BY create_time DESC` if orderRule != "" { order = ` ORDER BY ` + orderRule } sql := fmt.Sprintf(`SELECT %s FROM edb_classify WHERE 1=1 %s %s`, fields, cond, order) err = global.DbMap[utils.DbNameIndex].Raw(sql, pars).Find(&items).Error return } // EdbClassifyItem 指标分类信息 type EdbClassifyItem struct { ClassifyId int `description:"分类ID"` ClassifyName string `description:"分类名称"` UniqueCode string `description:"分类唯一编码"` ParentId int `description:"父级id"` Level int `description:"层级"` Sort int `description:"排序"` CreateTime string `description:"创建时间"` UpdateTime string `description:"更新时间"` Child []*EdbClassifyItem `description:"子分类"` } func FormatEdbClassify2Item(origin *EdbClassify) (item *EdbClassifyItem) { if origin == nil { return } item = new(EdbClassifyItem) item.ClassifyId = origin.ClassifyId item.ClassifyName = origin.ClassifyName item.UniqueCode = origin.UniqueCode item.ParentId = origin.ParentId item.Level = origin.Level item.Sort = origin.Sort item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime) item.UpdateTime = utils.TimeTransferString(utils.FormatDateTime, origin.ModifyTime) item.Child = make([]*EdbClassifyItem, 0) return } type EdbClassifyIdItems struct { ClassifyId int `description:"分类id" json:"-"` ClassifyName string //ClassifyNameEn string UniqueCode string `description:"唯一编码"` ParentId int `description:"父级分类id" json:"-"` Level int `description:"层级"` RootId int `description:"顶级分类id" json:"-"` //IsJoinPermission int `description:"是否加入权限管控,0:不加入;1:加入;默认:0" json:"-"` //HaveOperaAuth bool `description:"是否有该数据权限,默认:false"` } func GetEdbClassifyById(classifyId int) (item *EdbClassify, err error) { o := orm.NewOrmUsingDB("data") sql := `SELECT * FROM edb_classify WHERE classify_id=? ` err = o.Raw(sql, classifyId).QueryRow(&item) //err = global.DbMap[utils.DbNameIndex].Raw(sql, classifyId).First(&item).Error return } type EdbClassifyItems struct { ClassifyId int `description:"分类id"` EdbInfoId int `description:"指标id"` ClassifyName string ClassifyNameEn string ParentId int RootId int `description:"顶级id"` Level int `description:"层级"` Sort int `description:"排序字段,越小越靠前,默认值:10"` UniqueCode string `description:"唯一编码"` Source int `description:"来源id"` SourceName string `description:"来源名称"` SysUserId int `description:"创建人id"` SysUserRealName string `description:"创建人姓名"` StartDate string EdbCode string EdbType int `description:"指标类型:1:基础指标,2:计算指标"` Children []*EdbClassifyItems `gorm:"-"` //Button EdbClassifyItemsButton `description:"操作权限" gorm:"-"` IsJoinPermission int `description:"是否加入权限管控,0:不加入;1:加入;默认:0"` HaveOperaAuth bool `description:"是否有数据权限"` SelectDisable bool `description:"是否可以被选中 前端用"` } func GetEdbClassifyByRootIdLevel(rootId int, classifyType uint8, orderStr string) (items []*EdbClassifyItems, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM edb_classify WHERE root_id=? AND classify_type = ? ` if orderStr != "" { sql += orderStr } else { sql += ` order by level desc, sort asc, classify_id asc` } _, err = o.Raw(sql, rootId, classifyType).QueryRows(&items) //err = global.DbMap[utils.DbNameIndex].Raw(sql, rootId, classifyType).Find(&items).Error return }