1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- 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
- }
|