package data_manage import ( "eta_gn/eta_api/global" "eta_gn/eta_api/utils" "time" ) // BaseFromSmmClassify SMM原始数据分类表 type BaseFromSmmClassify 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:"英文分类名称"` } // AddBaseFromSmmClassify 添加SMM原始数据分类 func AddBaseFromSmmClassify(item *BaseFromSmmClassify) (lastId int64, err error) { err = global.DmSQL["data"].Create(item).Error if err != nil { return } lastId = int64(item.ClassifyId) return } // GetBaseFromSmmClassifyCount 获取分类名称的个数 func GetBaseFromSmmClassifyCount(classifyName string, parentId int) (count int, err error) { o := global.DmSQL["data"] sql := `SELECT COUNT(1) AS count FROM base_from_smm_classify WHERE classify_name=? AND parent_id=? ` err = o.Raw(sql, classifyName, parentId).Scan(&count).Error return } // GetBaseFromSmmClassifyEnCount // @Description: 获取英文分类名称的个数 // @author: Roc // @datetime 2024-04-16 16:49:03 // @param classifyNameEn string // @param parentId int // @return count int // @return err error func GetBaseFromSmmClassifyEnCount(classifyNameEn string, parentId int) (count int, err error) { o := global.DmSQL["data"] sql := `SELECT COUNT(1) AS count FROM base_from_smm_classify WHERE classify_name_en = ? AND parent_id = ? ` err = o.Raw(sql, classifyNameEn, parentId).Scan(&count).Error return } // GetBaseFromSmmClassifyById 通过分类id的获取分类信息 func GetBaseFromSmmClassifyById(classifyId int) (item *BaseFromSmmClassify, err error) { o := global.DmSQL["data"] sql := `SELECT * FROM base_from_smm_classify WHERE classify_id=? ` err = o.Raw(sql, classifyId).Scan(&item).Error return } // EditBaseFromSmmClassify 修改SMM原始数据分类 func EditBaseFromSmmClassify(classifyId int, classifyName string) (err error) { o := global.DmSQL["data"] sql := `UPDATE base_from_smm_classify SET classify_name=?,modify_time=NOW() WHERE classify_id=? ` err = o.Exec(sql, classifyName, classifyId).Error return } // EditBaseFromSmmClassifyEn // @Description: 修改SMM原始数据英文分类 // @author: Roc // @datetime 2024-04-16 16:50:55 // @param classifyId int // @param classifyNameEn string // @return err error func EditBaseFromSmmClassifyEn(classifyId int, classifyNameEn string) (err error) { o := global.DmSQL["data"] sql := `UPDATE base_from_smm_classify SET classify_name_en = ?,modify_time=NOW() WHERE classify_id=? ` err = o.Exec(sql, classifyNameEn, classifyId).Error return } // UpdateBaseFromSmmClassifySort 修改SMM原始数据分类的排序 func UpdateBaseFromSmmClassifySort(classifyId int) (err error) { o := global.DmSQL["data"] sql := `UPDATE base_from_smm_classify SET sort=classify_id, modify_time=NOW() WHERE classify_id=? ` err = o.Exec(sql, classifyId).Error return } type BaseFromSmmClassifyItems struct { ClassifyId int `description:"分类ID"` BaseFromSmmIndexId int `description:"指标类型ID"` BaseFromSmmIndexCode string `description:"指标唯一编码"` ClassifyName string `description:"分类名称"` ClassifyNameEn string `description:"英文分类名称"` ParentId int `description:"父级id"` Level int `description:"层级"` Sort int `description:"排序字段,越小越靠前,默认值:10"` //UniqueCode string `description:"唯一编码"` //ModifyTime time.Time `description:"修改时间"` //CreateTime time.Time `description:"创建时间"` Children []*BaseFromSmmClassifyItems `gorm:"-" description:"下级"` } type BaseFromSmmClassifyNameItems struct { ClassifyId int `description:"分类ID"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` Children []*BaseFromSmmClassifyNameItems `gorm:"-" description:"下级"` } type BaseFromSmmClassifyResp struct { List []*BaseFromSmmClassifyItems } type BaseFromSmmClassifyNameResp struct { List []*BaseFromSmmClassifyNameItems } type BaseFromSmmClassifyItemsButton struct { AddButton bool `description:"是否可添加"` OpButton bool `description:"是否可编辑"` DeleteButton bool `description:"是否可删除"` MoveButton bool `description:"是否可移动"` } // GetBaseFromSmmClassifyByParentId 根据上级id获取当下的分类列表数据 func GetBaseFromSmmClassifyByParentId(parentId int) (items []*BaseFromSmmClassifyItems, err error) { o := global.DmSQL["data"] sql := ` SELECT * FROM base_from_smm_classify WHERE parent_id=? order by sort asc,classify_id asc` err = o.Raw(sql, parentId).Scan(&items).Error return } // GetBaseFromSmmClassifyByIds 根据id获取当下的分类列表数据 func GetBaseFromSmmClassifyByIds(classifyIds []int) (items []*BaseFromSmmClassifyItems, err error) { o := global.DmSQL["data"] sql := ` SELECT * FROM base_from_smm_classify WHERE parent_id > 0 and classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) order by sort asc, classify_id asc` err = o.Raw(sql, classifyIds).Scan(&items).Error return } // GetAllBaseFromSmmClassify 获取所有的分类列表数据 func GetAllBaseFromSmmClassify() (items []*BaseFromSmmClassifyItems, err error) { o := global.DmSQL["data"] sql := ` SELECT * FROM base_from_smm_classify WHERE parent_id <> 0 order by sort asc,classify_id asc` err = o.Raw(sql).Scan(&items).Error return } type DeleteBaseFromSmmClassifyReq struct { ClassifyId int `description:"分类id"` EdbInfoId int `description:"指标id"` } type BaseFromSmmClassifyListResp struct { AllNodes []*BaseFromSmmClassifyItems CanOpClassify bool `description:"是否允许操作分类"` } type BaseFromSmmClassifySimplify struct { ClassifyId int `description:"分类id"` ClassifyName string `description:"分类名称"` ParentId int } // MoveUpSmmIndexClassifyBySort 往上移动 func MoveUpSmmIndexClassifyBySort(parentId, nextSort, currentSort int) (err error) { sql := `update base_from_smm_classify set sort = sort + 1 where parent_id=? and sort >= ? and sort< ?` err = global.DmSQL["data"].Exec(sql, parentId, nextSort, currentSort).Error return } // MoveDownSmmIndexClassifyBySort 往下移动 func MoveDownSmmIndexClassifyBySort(parentId, prevSort, currentSort int) (err error) { o := global.DmSQL["data"] sql := `update base_from_smm_classify set sort = sort - 1 where parent_id=? and sort <= ? and sort> ? ` err = o.Exec(sql, parentId, prevSort, currentSort).Error return } // GetSmmIndexClassifyMinSort 获取最小不等于0的排序 func GetSmmIndexClassifyMinSort(parentId int) (sort int, err error) { sql := `select min(sort) from base_from_smm_classify where parent_id=? and sort <> 0 ` err = global.DmSQL["data"].Raw(sql, parentId).Scan(&sort).Error return } // Update 更新分类基础信息 func (BaseFromSmmClassify *BaseFromSmmClassify) Update(cols []string) (err error) { o := global.DmSQL["data"] err = o.Select(cols).Updates(BaseFromSmmClassify).Error return } type AddSmmClassifyResp struct { ClassifyId int } // DeleteSmmClassifyByClassifyId 根据分类id删除对应的指标分类 func DeleteSmmClassifyByClassifyId(classifyIdList []int) (err error) { o := global.DmSQL["data"] num := len(classifyIdList) if num <= 0 { return } //删除分类 sql := `DELETE FROM base_from_smm_classify WHERE classify_id IN (` + utils.GetOrmInReplace(num) + `) ` err = o.Exec(sql, classifyIdList).Error return } // AddSmmClassifyMulti 批量新增SMM类别 func AddSmmClassifyMulti(list []*BaseFromSmmClassify) (err error) { o := global.DmSQL["data"] err = o.CreateInBatches(list, utils.MultiAddNum).Error return } // InitSmmClassifySort 初始化sort值 func InitSmmClassifySort() (err error) { o := global.DmSQL["data"] sql := `UPDATE base_from_smm_classify SET modify_time=NOW(), sort = classify_id` err = o.Exec(sql).Error return } // InitSmmIndexClassifyId 历史数据的classifyId值 func InitSmmIndexClassifyId() (err error) { o := global.DmSQL["data"] sql := `UPDATE base_from_smm_index s LEFT JOIN ( SELECT c1.classify_id, CONCAT( c2.classify_name, c1.classify_name ) AS type_name FROM base_from_smm_classify c1 LEFT JOIN base_from_smm_classify c2 ON c1.parent_id = c2.classify_id ) AS t ON CONCAT( s.type_2, s.type_3 ) = t.type_name SET s.classify_id = t.classify_id, s.modify_time=NOW() where s.type_2 <>""` err = o.Exec(sql).Error return }