package worker import ( "errors" "zhiyuan/pkg/db" "zhiyuan/pkg/utils" "zhiyuan/services/form" ) func CheckLogin(phone string, password string) (int, error) { where := map[string]interface{}{} where["phone"] = phone where["password"] = utils.MD5(password) where["state"] = 1 worker, err := GetOne(where, nil, nil) if err != nil || worker == nil { return 0, errors.New("用户名或密码错误") } if worker.State != 1 { return 0, errors.New("用户未审核") } return worker.ID, nil } func Login(form form.WorkLogin) (string, error) { workerMap := make(map[string]interface{}) if form.LoginType == 1 { workerMap = map[string]interface{}{ "`openid`": form.OpenID, "`nickname`": form.NickName, "`sex`": form.Sex, "`headimgurl`": form.HeadImgUrl, } if worker, _ := GetOne(map[string]interface{}{"openid": form.OpenID}, nil, nil); worker != nil { db.Update(Worker.TableName(), map[string]interface{}{"id": worker.ID}, workerMap) return UpdateToken(worker.ID) } } workerID, err := CheckLogin(form.Phone, form.Password) if err != nil { return "", errors.New("用户不存在") } if form.LoginType == 1 { db.Update(Worker.TableName(), map[string]interface{}{"id": workerID}, workerMap) } return UpdateToken(workerID) } func Logout(id int) error { worker, err := GetInfoByID(id, []string{"id"}, nil) if err != nil || worker == nil { return errors.New("invalid access_token") } return ClearToken(worker.ID) } func UnBindWeixin(id int) error { workerMap := map[string]interface{}{ "`openid`": "", "`nickname`": "", "`headimgurl`": "", "`sex`": 0, } db.Update(Worker.TableName(), map[string]interface{}{"id": id}, workerMap) return Logout(id) } func Password(id int, form form.Password) error { workerInfo, err := GetInfoByID(id, []string{"id", "password"}, nil) if err != nil || workerInfo == nil { return errors.New("登录状态有误") } if form.NewPassword != form.NewPasswordRepeat { return errors.New("两次输入的新密码不一致") } if workerInfo.Password != utils.MD5(form.OldPassword) { return errors.New("原密码有误") } db.Update(Worker.TableName(), map[string]interface{}{"id": id}, map[string]interface{}{"password": utils.MD5(form.NewPassword)}) ClearToken(id) return nil }