()
| 78 | } |
| 79 | |
| 80 | func (this *CommonController) LoginBindWechat() { |
| 81 | form := &WechatBindForm{} |
| 82 | err := this.ParseForm(form) |
| 83 | if err != nil { |
| 84 | this.Response(http.StatusBadRequest, err.Error()) |
| 85 | } |
| 86 | |
| 87 | if form.Username == "" || form.Password == "" || form.Sess == "" { |
| 88 | this.Response(http.StatusBadRequest, messageBadRequest) |
| 89 | } |
| 90 | |
| 91 | we, err := models.NewWechat().GetUserBySess(form.Sess) |
| 92 | if err != nil && err != orm.ErrNoRows { |
| 93 | beego.Error(err) |
| 94 | this.Response(http.StatusInternalServerError, messageInternalServerError) |
| 95 | } |
| 96 | |
| 97 | if we.Id == 0 { |
| 98 | this.Response(http.StatusBadRequest, messageBadRequest) |
| 99 | } |
| 100 | |
| 101 | member := &models.Member{} |
| 102 | if we.MemberId > 0 { // 已经绑定过 |
| 103 | member, _ = member.Find(we.MemberId) |
| 104 | this.login(*member) |
| 105 | } |
| 106 | |
| 107 | if form.Nickname != "" || form.Email != "" || form.RePassword != "" { //只要有其中任意一项不为空,则表示新注册 |
| 108 | if form.Password != form.RePassword { |
| 109 | this.Response(http.StatusBadRequest, messageNotEqualTwicePassword) |
| 110 | } |
| 111 | if form.Nickname == "" || form.Email == "" || form.RePassword == "" { |
| 112 | this.Response(http.StatusBadRequest, messageBadRequest) |
| 113 | } |
| 114 | if we.AvatarURL == "" { |
| 115 | we.AvatarURL = conf.GetDefaultAvatar() |
| 116 | } |
| 117 | member = &models.Member{ |
| 118 | Account: form.Username, |
| 119 | Password: form.Password, |
| 120 | Nickname: form.Nickname, |
| 121 | Avatar: we.AvatarURL, |
| 122 | Email: form.Email, |
| 123 | Status: 0, |
| 124 | Role: conf.MemberGeneralRole, |
| 125 | } |
| 126 | err = member.Add() |
| 127 | if err != nil { |
| 128 | this.Response(http.StatusBadRequest, err.Error()) |
| 129 | } |
| 130 | // 执行绑定 |
| 131 | we.Bind(we.Openid, member.MemberId) |
| 132 | } else { |
| 133 | *member, _ = models.NewMember().GetByUsername(form.Username) |
| 134 | |
| 135 | if member.MemberId == 0 { |
| 136 | this.Response(http.StatusBadRequest, "您要绑定的用户不存在") |
| 137 | } |
nothing calls this directly
no test coverage detected