package data_manage import ( "eta/eta_api/global" "eta/eta_api/utils" "time" ) // BaseFromKplerClassify Kpler原始数据分类表 type BaseFromKplerClassify struct { ClassifyId int `orm:"column(classify_id);pk" gorm:"primaryKey"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` SysUserId int `description:"创建人id"` SysUserRealName string `description:"创建人姓名"` Level int `description:"层级"` Sort int `description:"排序字段,越小越靠前,默认值:10"` ModifyTime time.Time `description:"修改时间"` CreateTime time.Time `description:"创建时间"` ClassifyNameEn string `description:"英文分类名称"` ProductId int `description:"产品ID"` ProductName string `description:"产品名称"` LevelPath string `description:"层级路径"` } // AddBaseFromKplerClassify 添加Kpler原始数据分类 func AddBaseFromKplerClassify(item *BaseFromKplerClassify) (lastId int64, err error) { o := global.DbMap[utils.DbNameIndex] err = o.Create(item).Error return } // GetBaseFromKplerClassifyCount 获取分类名称的个数 func GetBaseFromKplerClassifyCount(classifyName string, parentId int) (count int, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT COUNT(1) AS count FROM base_from_kpler_classify WHERE classify_name=? AND parent_id=? ` err = o.Raw(sql, classifyName, parentId).Scan(&count).Error return } // GetBaseFromKplerClassifyById 通过分类id的获取分类信息 func GetBaseFromKplerClassifyById(classifyId int) (item *BaseFromKplerClassify, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id=? ` err = o.Raw(sql, classifyId).First(&item).Error return } // GetBaseFromKplerClassifyByIds 通过分类id的获取分类信息 func GetBaseFromKplerClassifyByIds(classifyIds []int) (items []*BaseFromKplerClassify, err error) { if len(classifyIds) == 0 { return } o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) order by level asc, sort asc, classify_id asc` err = o.Raw(sql, classifyIds).Find(&items).Error return } // GetBaseFromKplerClassifyItemsByIds 通过分类id的获取分类信息 func GetBaseFromKplerClassifyItemsByIds(classifyIds []int) (items []*BaseFromKplerClassifyItems, err error) { if len(classifyIds) == 0 { return } o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM base_from_kpler_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) ` err = o.Raw(sql, classifyIds).Find(&items).Error return } // EditBaseFromKplerClassify 修改Kpler原始数据分类 func EditBaseFromKplerClassify(classifyId int, classifyName string) (err error) { o := global.DbMap[utils.DbNameIndex] sql := `UPDATE base_from_kpler_classify SET classify_name=?,modify_time=NOW() WHERE classify_id=? ` err = o.Exec(sql, classifyName, classifyId).Error return } // UpdateBaseFromKplerClassifySort 修改Kpler原始数据分类的排序 func UpdateBaseFromKplerClassifySort(classifyId int) (err error) { o := global.DbMap[utils.DbNameIndex] sql := `UPDATE base_from_kpler_classify SET sort=classify_id, modify_time=NOW() WHERE classify_id=? ` err = o.Exec(sql, classifyId).Error return } type BaseFromKplerClassifyItems struct { ClassifyId int `description:"分类ID"` BaseFromKplerIndexId int `description:"指标类型ID"` IndexCode string `description:"指标唯一编码"` ClassifyName string `description:"分类名称"` ClassifyNameEn string `description:"英文分类名称"` UniqueCode string `description:"分类唯一编码"` ParentId int `description:"父级id"` Level int `description:"层级"` Sort int `description:"排序字段,越小越靠前,默认值:10"` ProductId int `description:"产品ID"` ProductName string `description:"产品名称"` Children []*BaseFromKplerClassifyItems `description:"子级" gorm:"-"` LevelPath string `description:"层级路径"` } type BaseFromKplerClassifyNameItems struct { ClassifyId int `description:"分类ID"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` } type BaseFromKplerClassifyResp struct { List []*BaseFromKplerClassifyItems } type BaseFromKplerClassifyNameResp struct { List []*BaseFromKplerClassifyNameItems } type BaseFromKplerClassifyItemsButton struct { AddButton bool `description:"是否可添加"` OpButton bool `description:"是否可编辑"` DeleteButton bool `description:"是否可删除"` MoveButton bool `description:"是否可移动"` } // GetBaseFromKplerClassifyByParentId 根据上级id获取当下的分类列表数据 func GetBaseFromKplerClassifyByParentId(parentId int) (items []*BaseFromKplerClassifyItems, err error) { o := global.DbMap[utils.DbNameIndex] sql := ` SELECT * FROM base_from_kpler_classify WHERE parent_id=? order by sort asc,classify_id asc` err = o.Raw(sql, parentId).Find(&items).Error return } // GetAllBaseFromKplerClassify 获取所有的分类列表数据 func GetAllBaseFromKplerClassify() (items []*BaseFromKplerClassifyItems, err error) { o := global.DbMap[utils.DbNameIndex] sql := ` SELECT * FROM base_from_kpler_classify order by parent_id asc, sort asc, classify_id asc` err = o.Raw(sql).Find(&items).Error return } // GetBaseFromKplerClassifyByKeyword 根据关键词获取分类列表数据 func GetBaseFromKplerClassifyByKeyword(keyword string) (items []*BaseFromKplerClassifyItems, err error) { o := global.DbMap[utils.DbNameIndex] sql := ` SELECT * FROM base_from_kpler_classify WHERE classify_name LIKE ? order by parent_id asc, sort asc, classify_id asc` err = o.Raw(sql, "%"+keyword+"%").Find(&items).Error return } type BaseFromKplerClassifyListResp struct { AllNodes []*BaseFromKplerClassifyItems CanOpClassify bool `description:"是否允许操作分类"` } type BaseFromKplerClassifySimplify struct { ClassifyId int `description:"分类id"` ClassifyName string `description:"分类名称"` ParentId int } // GetFirstBaseFromKplerClassify 获取当前分类下,且排序数相同 的排序第一条的数据 func GetFirstBaseFromKplerClassify() (item *BaseFromKplerClassify, err error) { o := global.DbMap[utils.DbNameIndex] sql := ` SELECT * FROM base_from_kpler_classify order by sort asc,classify_id asc limit 1` err = o.Raw(sql).First(&item).Error return } // GetKplerIndexClassifyMinSort 获取最小不等于0的排序 func GetKplerIndexClassifyMinSort(parentId int) (sort int, err error) { o := global.DbMap[utils.DbNameIndex] sql := `select min(sort) from base_from_kpler_classify where parent_id=? and sort <> 0 ` err = o.Raw(sql, parentId).Scan(&sort).Error return } // Update 更新分类基础信息 func (BaseFromKplerClassify *BaseFromKplerClassify) Update(cols []string) (err error) { o := global.DbMap[utils.DbNameIndex] err = o.Model(BaseFromKplerClassify).Select(cols).Updates(BaseFromKplerClassify).Error return } type AddKplerClassifyResp struct { ClassifyId int } // AddKplerClassifyMulti 批量新增Kpler类别 func AddKplerClassifyMulti(list []*BaseFromKplerClassify) (err error) { o := global.DbMap[utils.DbNameIndex] err = o.CreateInBatches(list, utils.MultiAddNum).Error return } func GetBaseFromKplerClassifyByLevelPath(levelPath string) (items []*BaseFromKplerClassify, err error) { sql := `SELECT * FROM base_from_kpler_classify where level_path like '` + levelPath + `%'` err = global.DbMap[utils.DbNameIndex].Raw(sql).Find(&items).Error return } func GetKplerClassifyAndIndex(parentId int) (items []*BaseFromKplerClassifyItems, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT 0 AS base_from_kpler_index_id, c.classify_id, c.classify_name, c.parent_id, c.sort, "" AS index_code FROM base_from_kpler_classify c WHERE c.parent_id = ? UNION ALL SELECT i.base_from_kpler_index_id, i.classify_id, i.index_name AS classify_name, 0 AS parent_id, i.sort, i.index_code FROM base_from_kpler_index i WHERE i.classify_id = ? ORDER BY sort ASC ` err = o.Raw(sql, parentId, parentId).Find(&items).Error return } func GetKplerClassifyByProductId(productIds []int) (items []*BaseFromKplerClassifyItems, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM base_from_kpler_classify WHERE product_id IN (?)` err = o.Raw(sql, productIds).Find(&items).Error return } func GetBaseFromKplerClassifyByProductName(productName string) (item *BaseFromKplerClassify, err error) { o := global.DbMap[utils.DbNameIndex] sql := `SELECT * FROM base_from_kpler_classify WHERE product_name=?` err = o.Raw(sql, productName).First(&item).Error return }