Files
ppgo_job/models/auth.go
2018-07-13 17:53:34 +08:00

93 lines
2.1 KiB
Go

/**********************************************
** @Des: 权限因子
** @Author: haodaquan
** @Date: 2017-09-09 20:50:36
** @Last Modified by: haodaquan
** @Last Modified time: 2017-09-17 21:42:08
***********************************************/
package models
import (
"fmt"
"github.com/astaxie/beego/orm"
)
type Auth struct {
Id int
AuthName string
AuthUrl string
UserId int
Pid int
Sort int
Icon string
IsShow int
Status int
CreateId int
UpdateId int
CreateTime int64
UpdateTime int64
}
func (a *Auth) TableName() string {
return TableName("uc_auth")
}
func AuthGetList(page, pageSize int, filters ...interface{}) ([]*Auth, int64) {
offset := (page - 1) * pageSize
list := make([]*Auth, 0)
query := orm.NewOrm().QueryTable(TableName("uc_auth"))
if len(filters) > 0 {
l := len(filters)
for k := 0; k < l; k += 2 {
query = query.Filter(filters[k].(string), filters[k+1])
}
}
total, _ := query.Count()
query.OrderBy("pid", "sort").Limit(pageSize, offset).All(&list)
return list, total
}
func AuthGetListByIds(authIds string, userId int) ([]*Auth, error) {
list1 := make([]*Auth, 0)
var list []orm.Params
//list:=[]orm.Params
var err error
if userId == 1 {
//超级管理员
_, err = orm.NewOrm().Raw("select id,auth_name,auth_url,pid,icon,is_show from pp_uc_auth where status=? order by pid asc,sort asc", 1).Values(&list)
} else {
_, err = orm.NewOrm().Raw("select id,auth_name,auth_url,pid,icon,is_show from pp_uc_auth where status=1 and id in("+authIds+") order by pid asc,sort asc", authIds).Values(&list)
}
for k, v := range list {
fmt.Println(k, v)
}
fmt.Println(list)
return list1, err
}
func AuthAdd(auth *Auth) (int64, error) {
return orm.NewOrm().Insert(auth)
}
func AuthGetById(id int) (*Auth, error) {
a := new(Auth)
err := orm.NewOrm().QueryTable(TableName("uc_auth")).Filter("id", id).One(a)
if err != nil {
return nil, err
}
return a, nil
}
func (a *Auth) Update(fields ...string) error {
if _, err := orm.NewOrm().Update(a, fields...); err != nil {
return err
}
return nil
}