package servicer import ( "errors" 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, "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.ServicerRoleId, "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.Servicer) } 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.Servicer) } func Password(id int, form form.Password) error { if err := admin.Password(id, form); err != nil { return err } return admin.ClearToken(id, adminParam.Entry.Servicer) }