package user import ( "zhiyuan/models" "zhiyuan/pkg/db" "zhiyuan/pkg/weixin/mp" "zhiyuan/services/weixin" ) func Login(user mp.UserInfo) (string, error) { var weixinUser models.WeixinUser userMap := map[string]interface{}{ "openid": user.OpenID, "nickname": user.NickName, "headimgurl": user.HeadImgUrl, } db.GetModel(map[string]interface{}{"openid": user.OpenID}, &weixinUser) userID := 0 if weixinUser.ID == 0 { id, err := db.InsertModel(db.Type(models.WeixinUser{}), userMap) userID = int(id) if err != nil { return "", err } } else { db.UpdateModel(db.Type(models.WeixinUser{}), weixinUser.ID, userMap) userID = int(weixinUser.ID) } return weixin.UpdateToken(userID) }