package models import ( "crypto/md5" "encoding/hex" "strings" "time" ) // AdminUser 平台管理员信息表 yz_system_admin_user type AdminUser struct { ID uint64 `orm:"column(id);pk;auto" json:"id"` Account string `orm:"column(account);size(64)" json:"account"` Password string `orm:"column(password);size(32)" json:"-"` Name *string `orm:"column(name);size(32);null" json:"name"` Phone *string `orm:"column(phone);size(18);null" json:"phone"` Email *string `orm:"column(email);size(255);null" json:"email"` Qq *string `orm:"column(qq);size(16);null" json:"qq"` Sex uint8 `orm:"column(sex);default(0)" json:"sex"` Avatar *string `orm:"column(avatar);size(255);null" json:"avatar"` RoleID uint64 `orm:"column(role_id)" json:"rid"` LoginCount uint64 `orm:"column(login_count);default(0)" json:"login_count"` LastLoginIP *string `orm:"column(last_login_ip);size(255);null" json:"last_login_ip"` Status uint8 `orm:"column(status);default(1)" json:"status"` CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"` UpdateTime *time.Time `orm:"column(update_time);type(datetime);auto_now;null" json:"update_time"` DeleteTime *time.Time `orm:"column(delete_time);type(datetime);null" json:"delete_time"` } func (m *AdminUser) TableName() string { return "yz_system_admin_user" } func md5Hex(s string) string { sum := md5.Sum([]byte(s)) return hex.EncodeToString(sum[:]) } func NormalizeAccount(s string) string { return strings.TrimSpace(s) } // CreateAdminUser 创建平台管理员用户(password 会被 md5) func CreateAdminUser(account, password string, name, phone, email, qq, avatar *string, sex uint8, roleID uint64, status uint8) (uint64, error) { u := &AdminUser{ Account: NormalizeAccount(account), Password: md5Hex(strings.TrimSpace(password)), Name: name, Phone: phone, Email: email, Qq: qq, Avatar: avatar, Sex: sex, RoleID: roleID, Status: status, } id, err := Orm.Insert(u) return uint64(id), err } func GetAdminUserByID(id uint64) (*AdminUser, error) { u := &AdminUser{ID: id} if err := Orm.Read(u); err != nil { return nil, err } return u, nil } // UpdateAdminUser 更新用户基础信息(不含 password) func UpdateAdminUser(id uint64, fields map[string]interface{}) error { _, err := Orm.QueryTable(new(AdminUser)).Filter("id", id).Update(fields) return err } func DeleteAdminUser(id uint64) error { _, err := Orm.QueryTable(new(AdminUser)).Filter("id", id).Delete() return err } func ChangeAdminUserPassword(id uint64, newPassword string) error { _, err := Orm.QueryTable(new(AdminUser)).Filter("id", id).Update(map[string]interface{}{ "password": md5Hex(strings.TrimSpace(newPassword)), }) return err } func ListAdminUsers() ([]AdminUser, int64, error) { var rows []AdminUser total, err := Orm.QueryTable(new(AdminUser)).Count() if err != nil { return nil, 0, err } _, err = Orm.QueryTable(new(AdminUser)).OrderBy("-id").All(&rows) return rows, total, err }