user.go 717 B

1234567891011121314151617181920212223242526272829303132
  1. package user
  2. import (
  3. "zhiyuan/models"
  4. "zhiyuan/pkg/db"
  5. "zhiyuan/pkg/weixin/mp"
  6. "zhiyuan/services/weixin"
  7. )
  8. func Login(user mp.UserInfo) (string, error) {
  9. var weixinUser models.WeixinUser
  10. userMap := map[string]interface{}{
  11. "openid": user.OpenID,
  12. "nickname": user.NickName,
  13. "headimgurl": user.HeadImgUrl,
  14. }
  15. db.GetModel(map[string]interface{}{"openid": user.OpenID}, &weixinUser)
  16. userID := 0
  17. if weixinUser.ID == 0 {
  18. id, err := db.InsertModel(db.Type(models.WeixinUser{}), userMap)
  19. userID = int(id)
  20. if err != nil {
  21. return "", err
  22. }
  23. } else {
  24. db.UpdateModel(db.Type(models.WeixinUser{}), weixinUser.ID, userMap)
  25. userID = int(weixinUser.ID)
  26. }
  27. return weixin.UpdateToken(userID)
  28. }