package db import ( "applet/app/db/model" "applet/app/e" "applet/app/utils/logx" "github.com/gin-gonic/gin" "xorm.io/xorm" ) //UserLevelByID is 根据用户id 获取对应的等级信息 func UserLevelByID(Db *xorm.Engine, id interface{}) (*model.UserLevel, error) { m := new(model.UserLevel) has, err := Db.Where("id = ?", id).Get(m) if err != nil { return nil, logx.Warn(err) } if !has { return nil, logx.Error("Not found") } return m, nil } func UserLevelByIDWithSession(sess *xorm.Session, id interface{}) (*model.UserLevel, error) { m := new(model.UserLevel) has, err := sess.Where("id = ?", id).Get(m) if err != nil { return nil, logx.Warn(err) } if !has { return nil, logx.Error("Not found") } return m, nil } //UserLevelTop is 查询最高的等级 func UserLevelTop(Db *xorm.Engine) (*model.UserLevel, error) { m := new(model.UserLevel) has, err := Db.OrderBy("level_weight DESC").Get(m) if err != nil { return nil, logx.Warn(err) } if !has { return nil, logx.Error("Not found") } return m, nil } //UserLevelNext is 查询下一等级 func UserLevelNext(Db *xorm.Engine, curLevelWeight int) (*model.UserLevel, error) { m := new(model.UserLevel) has, err := Db.Where("level_weight > ? and before_hide=?", curLevelWeight, 0).OrderBy("level_weight ASC").Get(m) if err != nil { return nil, logx.Warn(err) } if !has { return nil, logx.Error("Not found") } return m, nil } // UserLevelByWeight is 根据权重获取对应的等级 func UserLevelByWeight(Db *xorm.Engine, w interface{}) (*model.UserLevel, error) { m := new(model.UserLevel) has, err := Db.Where("level_weight = ?", w).Get(m) if err != nil { return nil, logx.Warn(err) } if !has { return nil, logx.Warn("Not found") } return m, nil } //UserLevelInIDescByWeight is In 查询获取 权重最低 对应等级 func UserLevelInIDescByWeightLow(Db *xorm.Engine) ([]*model.UserLevel, error) { var ms []*model.UserLevel if err := Db.Asc("level_weight").Limit(1).Find(&ms); err != nil { return nil, err } return ms, nil } func UserLevelInIDescByWeightLowWithOne(Db *xorm.Engine) (*model.UserLevel, error) { var ms model.UserLevel has, err := Db.Asc("level_weight").Get(&ms) if err != nil { return nil, err } if has == false { return nil, e.NewErr(400, "等级不存在") } return &ms, nil } func UserLevelInIDescByWeightDescWithOne(Db *xorm.Engine) (*model.UserLevel, error) { var ms model.UserLevel has, err := Db.Desc("level_weight").Get(&ms) if err != nil { return nil, err } if has == false { return nil, e.NewErr(400, "等级不存在") } return &ms, nil } func UserLevelByWeightNext(Db *xorm.Engine, levelWeight int) (*model.UserLevel, error) { var ms model.UserLevel if has, err := Db.Where("level_weight>? and is_use=? and before_hide=?", levelWeight, 1, 0).Asc("level_weight").Get(&ms); err != nil || has == false { return nil, err } return &ms, nil } func UserLevelByWeightMax(Db *xorm.Engine) (*model.UserLevel, error) { var ms model.UserLevel if has, err := Db.Where("is_use=? and before_hide=?", 1, 0).Desc("level_weight").Get(&ms); err != nil || has == false { return nil, err } return &ms, nil } //UserLevelInIDescByWeight is In 查询获取对应等级 根据权重排序 func UserLevelInIDescByWeight(Db *xorm.Engine, ids []int) ([]*model.UserLevel, error) { var ms []*model.UserLevel if err := Db.In("id", ids).Desc("level_weight").Find(&ms); err != nil { return nil, err } return ms, nil } func UserLevelIDescByWeight(Db *xorm.Engine, id int) (*model.UserLevel, error) { var ms model.UserLevel if has, err := Db.Where("id=?", id).Get(&ms); err != nil || has == false { return nil, err } return &ms, nil } // UserLevlAll is 获取所有开启等级并且升序返回 func UserLevlAll(c *gin.Context, Db *xorm.Engine) ([]*model.UserLevel, error) { var m []*model.UserLevel err := Db.Where("is_use = ?", 1).Asc("level_weight").Find(&m) if err != nil { return nil, logx.Warn(err) } mm, err := sysModFormat(c, m) if err != nil { return nil, err } return mm.([]*model.UserLevel), nil } func UserLevlAllNew(c *gin.Context, Db *xorm.Engine) ([]*model.UserLevel, error) { var m []*model.UserLevel err := Db.Where("is_use = ? and before_hide=?", 1, 0).Asc("level_weight").Find(&m) if err != nil { return nil, logx.Warn(err) } mm, err := sysModFormat(c, m) if err != nil { return nil, err } return mm.([]*model.UserLevel), nil } // UserLevlEgAll is 获取所有开启等级并且升序返回 func UserLevlEgAll(Db *xorm.Engine) ([]*model.UserLevel, error) { var m []*model.UserLevel err := Db.Where("is_use = ?", 1).Asc("level_weight").Find(&m) if err != nil { return nil, logx.Warn(err) } return m, nil } func UserFindByLevel(eg *xorm.Engine, level int) []model.User { var data []model.User eg.Where("level=?", level).Find(&data) return data } // UserLevlAllByWeight is 获取所有等级并且权重升序返回 func UserLevlAllByWeight(c *gin.Context, Db *xorm.Engine) ([]*model.UserLevel, error) { var m []*model.UserLevel err := Db.Asc("level_weight").Find(&m) if err != nil { return nil, logx.Warn(err) } mm, err := sysModFormat(c, m) if err != nil { return nil, err } return mm.([]*model.UserLevel), nil } func UserLevelByAllMap(Db *xorm.Engine) map[int]*model.UserLevel { var maps = make(map[int]*model.UserLevel, 0) var m []*model.UserLevel err := Db.Where("is_use = ?", 1).Asc("level_weight").Find(&m) if err != nil { return maps } for _, v := range m { maps[v.Id] = v } return maps } func UserLevelByNotHideAllMap(Db *xorm.Engine) map[int]*model.UserLevel { var maps = make(map[int]*model.UserLevel, 0) var m []*model.UserLevel err := Db.Where("is_use = ? and before_hide=?", 1, 0).Asc("level_weight").Find(&m) if err != nil { return maps } for _, v := range m { maps[v.Id] = v } return maps }