package admin

import (
	"github.com/beego/beego/v2/client/orm"
	"time"
)

type Admin struct {
	AdminId                 int    `orm:"column(admin_id);pk" description:"系统用户id"`
	AdminName               string `description:"系统用户名称"`
	RealName                string `description:"系统用户姓名"`
	Password                string `json:"-"`
	LastUpdatedPasswordTime string `json:"-"`
	Enabled                 int
	Email                   string `description:"系统用户邮箱"`
	LastLoginTime           string
	CreatedTime             time.Time
	LastUpdatedTime         string
	Role                    string `description:"系统用户角色"`
	Mobile                  string `description:"手机号"`
	RoleType                int    `description:"角色类型:1需要录入指标,0:不需要"`
	RoleId                  int    `description:"角色ID"`
	RoleName                string `description:"角色名称"`
	RoleTypeCode            string `description:"角色类型编码"`
	DepartmentId            int    `description:"部门id"`
	DepartmentName          string `description:"部门名称"`
	GroupId                 int    `description:"分组id"`
	GroupName               string `description:"分组名称"`
	Authority               int    `description:"管理权限，0：无，1：部门负责人，2：小组负责人，3：超级管理员"`
	Position                string `description:"职位"`
}

// AddAdmin 新增用户
func AddAdmin(item *Admin) (err error) {
	o := orm.NewOrm()
	_, err = o.Insert(item)
	return
}

// GetSysAdminCountByMobile 查询系统中是否存在该手机号（如果有传入用户id，那么排除该用户）
func GetSysAdminCountByMobile(mobile string) (count int, err error) {
	sql := `SELECT COUNT(1) AS count FROM admin WHERE mobile=? `
	o := orm.NewOrm()
	err = o.Raw(sql, mobile).QueryRow(&count)
	return
}

// GetByAdminId 查询系统中是否存在该手机号（如果有传入用户id，那么排除该用户）
func GetByAdminId(adminId int) (item *Admin, err error) {
	sql := `SELECT * FROM admin WHERE admin_id=? `
	o := orm.NewOrm()
	err = o.Raw(sql, adminId).QueryRow(&item)
	return
}
