| | |
| | | |
| | | } |
| | | |
| | | func (sv *UserService) Login(phoneNum, code string) (bool,*vo.UserInfo,error) { |
| | | func (sv *UserService) Login(phoneNum, code, cid string) (bool,*vo.UserInfo,error) { |
| | | if verifyCode(phoneNum, code) { |
| | | carSv := NewCarService() |
| | | |
| | | var tmpUser models.User |
| | | err := tmpUser.SelectByPhoneNum(phoneNum) |
| | | fmt.Println("login err:", err) |
| | | if err != nil { //用户不存在,则新增 |
| | | //先判断此手机号是否在海康平台中 |
| | | hikPersons := carSv.GetHikPersonList() |
| | | found := false |
| | | hikPersonId := "" |
| | | if hikPersons != nil { |
| | | for _,hikP := range hikPersons { |
| | | if hikP.PhoneNo == phoneNum { |
| | | found = true |
| | | hikPersonId = hikP.PersonId |
| | | } |
| | | //先判断此手机号是否在海康平台中 |
| | | hikPersons := carSv.GetHikPersonList() |
| | | found := false |
| | | hikPersonId := "" |
| | | if hikPersons != nil { |
| | | for _,hikP := range hikPersons { |
| | | if hikP.PhoneNo == phoneNum { |
| | | found = true |
| | | hikPersonId = hikP.PersonId |
| | | } |
| | | } |
| | | if !found { |
| | | return false, nil, errors.New("请联系停车场管理员") |
| | | } |
| | | } |
| | | if !found { |
| | | return false, nil, errors.New("请联系停车场管理员") |
| | | } |
| | | |
| | | var tmpUser models.User |
| | | err := tmpUser.SelectById(hikPersonId) |
| | | fmt.Println("login err:", err) |
| | | if err != nil { //用户不存在,则新增 |
| | | u := models.User{ |
| | | Id: hikPersonId, |
| | | PhoneNum: phoneNum, |
| | |
| | | plateNos = append(plateNos, up.PlateNo) |
| | | } |
| | | } |
| | | //客户端cid绑定别名 |
| | | if cid != "" { |
| | | go func() { |
| | | var uc models.UserClient |
| | | ucList := uc.GetByCid(cid) |
| | | if ucList != nil && len(ucList) >0 { |
| | | if len(ucList) >1 || ucList[0].PhoneNum != phoneNum { |
| | | unbindB, unE := UnbindAlias(cid) |
| | | fmt.Println("unbindB:", unbindB, "err:", unE) |
| | | } |
| | | } |
| | | if !uc.ExistByCid(phoneNum, cid) { |
| | | new := models.UserClient{ |
| | | Id:uuid.NewV4().String(), |
| | | PhoneNum: phoneNum, |
| | | ClientId: cid, |
| | | BindTime: time.Now().Format("2006-01-02 15:04:05"), |
| | | } |
| | | new.Insert() |
| | | bindR, bindE := BindAlias(cid, phoneNum) |
| | | fmt.Println("bind cid:",cid, "phoneNum:",phoneNum,"result:", bindR, "err:", bindE) |
| | | } |
| | | }() |
| | | } |
| | | return true, &vo.UserInfo{ |
| | | UserId: u.Id, |
| | | PhoneNum: phoneNum, |
| | |
| | | return false, nil, errors.New("注册失败") |
| | | } |
| | | } else { //用户已存在 |
| | | if phoneNum != tmpUser.PhoneNum { |
| | | tmpUser.UpdatePhoneNum(phoneNum, hikPersonId) |
| | | } |
| | | var plateNos = make([]string, 0) |
| | | hikVehicles := carSv.GetVehicleListByPerson(tmpUser.Id) |
| | | hikVehicles := carSv.GetVehicleListByPerson(hikPersonId) |
| | | |
| | | if hikVehicles != nil { |
| | | for _,up := range hikVehicles { |
| | | plateNos = append(plateNos, up.PlateNo) |
| | | } |
| | | } |
| | | //客户端cid绑定别名 |
| | | if cid != "" { |
| | | go func() { |
| | | var uc models.UserClient |
| | | ucList := uc.GetByCid(cid) |
| | | if ucList != nil && len(ucList) >0 { |
| | | if len(ucList) >1 || ucList[0].PhoneNum != phoneNum { |
| | | unbindB, unE := UnbindAlias(cid) |
| | | fmt.Println("unbindB:", unbindB, "err:", unE) |
| | | } |
| | | } |
| | | if !uc.ExistByCid(phoneNum, cid) { |
| | | new := models.UserClient{ |
| | | Id:uuid.NewV4().String(), |
| | | PhoneNum: phoneNum, |
| | | ClientId: cid, |
| | | BindTime: time.Now().Format("2006-01-02 15:04:05"), |
| | | } |
| | | new.Insert() |
| | | bindR, bindE := BindAlias(cid, phoneNum) |
| | | fmt.Println("bind cid:",cid, "phoneNum:",phoneNum,"result:", bindR, "err:", bindE) |
| | | } |
| | | }() |
| | | } |
| | | return true, &vo.UserInfo{ |
| | | UserId: tmpUser.Id, |
| | |
| | | } |
| | | |
| | | func NewVerifyCode(phoneNum string) error { |
| | | var tmpUser models.User |
| | | err := tmpUser.SelectByPhoneNum(phoneNum) |
| | | if err != nil { //用户不存在,注册获取验证码,此手机号必须在育英海康平台中 |
| | | carSv := NewCarService() |
| | | personList := carSv.GetHikPersonList() |
| | | found := false |
| | | if personList ==nil { |
| | | return errors.New("手机号不存在,请联系停车场管理员") |
| | | } else { |
| | | for _,p := range personList { |
| | | if p.PhoneNo == phoneNum { |
| | | found = true |
| | | } |
| | | carSv := NewCarService() |
| | | personList := carSv.GetHikPersonList() |
| | | found := false |
| | | if personList ==nil { |
| | | return errors.New("手机号不存在,请联系停车场管理员") |
| | | } else { |
| | | for _,p := range personList { |
| | | if p.PhoneNo == phoneNum { |
| | | found = true |
| | | } |
| | | } |
| | | if !found { |
| | | return errors.New("手机号不存在,请联系停车场管理员") |
| | | } |
| | | } |
| | | if !found { |
| | | return errors.New("手机号不存在,请联系停车场管理员") |
| | | } |
| | | //var tmpUser models.User |
| | | //err := tmpUser.SelectByPhoneNum(phoneNum) |
| | | //if err != nil { //用户不存在,注册获取验证码,此手机号必须在育英海康平台中 |
| | | // |
| | | //} |
| | | |
| | | regionId := "cn-hangzhou" |
| | | accessKeyId := "LTAIkHFaStA1JKk5" |
| | |
| | | request.PhoneNumbers = phoneNum |
| | | request.TemplateParam = "{\"code\":"+verifyCode+"}" |
| | | response, err := client.SendSms(request) |
| | | fmt.Println("sendSms err:", err) |
| | | fmt.Println("sendSms err:", err, "phoneNum:", phoneNum, "cod:", verifyCode) |
| | | if err != nil { |
| | | return errors.New("发送短信验证码失败,请联系管理员") |
| | | } |