// 设置值 func (this *Member) SetValue(v *member.ValueMember) error { v.Usr = this._value.Usr if err := this.validate(v); err != nil { return err } this._value.Address = v.Address this._value.Birthday = v.Birthday this._value.Qq = v.Qq this._value.Email = v.Email this._value.LastLoginTime = v.LastLoginTime this._value.Phone = v.Phone this._value.Pwd = v.Pwd this._value.Name = v.Name this._value.Sex = v.Sex this._value.RegFrom = v.RegFrom if v.Avatar != "" { this._value.Avatar = v.Avatar } if len(this._value.InvitationCode) == 0 { this._value.InvitationCode = v.InvitationCode } if len(v.TradePwd) == 0 { this._value.TradePwd = v.TradePwd } if len(this._value.Qq) != 0 && len(this._value.Email) != 0 && len(this._value.Birthday) != 0 && len(this._value.Address) != 0 && len(this._value.Phone) != 0 && len(this._value.Avatar) != 0 && this._value.Sex != 0 { this.notifyOnProfileComplete() } return nil }
func (this *Member) validate(v *member.ValueMember) error { v.Usr = strings.ToLower(strings.TrimSpace(v.Usr)) // 小写并删除空格 v.Name = strings.TrimSpace(v.Name) v.Email = strings.ToLower(strings.TrimSpace(v.Email)) v.Phone = strings.TrimSpace(v.Phone) if len([]rune(v.Usr)) < 6 { return member.ErrUserLength } if !userRegex.MatchString(v.Usr) { return member.ErrUserValidErr } if this.GetAggregateRootId() != 0 && len([]rune(v.Name)) < 2 { return member.ErrPersonName } if len(v.Email) != 0 && !emailRegex.MatchString(v.Email) { return member.ErrEmailValidErr } if len(v.Phone) != 0 && !phoneRegex.MatchString(v.Phone) { return member.ErrPhoneValidErr } if len(v.Qq) != 0 && !qqRegex.MatchString(v.Qq) { return member.ErrQqValidErr } return nil }
// 注册 func (this *MemberC) Register(ctx *web.Context) { if this.BaseC.Requesting(ctx) { r := ctx.Request var result dto.MessageResult var err error var partnerId int = this.GetPartnerId(ctx) var invMemberId int // 邀请人 var usr string = r.FormValue("usr") var pwd string = r.FormValue("pwd") var phone string = r.FormValue("phone") var registerFrom string = r.FormValue("reg_from") // 注册来源 var invitationCode string = r.FormValue("invitation_code") // 推荐码 var regIp string if i := strings.Index(r.RemoteAddr, ":"); i != -1 { regIp = r.RemoteAddr[:i] } if err = dps.PartnerService.CheckRegisterMode(partnerId, invitationCode); err != nil { result.Message = err.Error() ctx.Response.JsonOutput(result) return } //fmt.Println(usr, pwd, "REGFROM:", registerFrom, "INVICODE:", invitationCode) // 检验 if len(invitationCode) != 0 { invMemberId = dps.MemberService.GetMemberIdByInvitationCode(invitationCode) if invMemberId == 0 { result.Message = "1011:推荐码错误" ctx.Response.JsonOutput(result) return } } var member member.ValueMember member.Usr = usr member.Pwd = domain.MemberSha1Pwd(pwd) member.RegIp = regIp member.Phone = phone member.RegFrom = registerFrom memberId, err := dps.MemberService.SaveMember(&member) if err == nil { result.Result = true err = dps.MemberService.SaveRelation(memberId, "-", invMemberId, partnerId) } if err != nil { result.Message = err.Error() } ctx.Response.JsonOutput(result) } }