From c6b1cadc0214c6791a5c5bcc62ab57601e38f457 Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期四, 13 八月 2020 11:31:08 +0800
Subject: [PATCH] add db restriction
---
service/userService.go | 124 +++++++++++++++++++++++++++++------------
1 files changed, 88 insertions(+), 36 deletions(-)
diff --git a/service/userService.go b/service/userService.go
index 731ee51..dc2f08b 100644
--- a/service/userService.go
+++ b/service/userService.go
@@ -16,30 +16,30 @@
}
-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,
@@ -54,6 +54,30 @@
plateNos = append(plateNos, up.PlateNo)
}
}
+ //瀹㈡埛绔痗id缁戝畾鍒悕
+ 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,
@@ -64,13 +88,40 @@
return false, nil, errors.New("娉ㄥ唽澶辫触")
}
} else { //鐢ㄦ埛宸插瓨鍦�
+ if phoneNum != tmpUser.PhoneNum {
+ tmpUser.UpdatePhoneNum(tmpUser.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)
}
+ }
+ //瀹㈡埛绔痗id缁戝畾鍒悕
+ 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,
@@ -101,25 +152,26 @@
}
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"
@@ -136,7 +188,7 @@
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("鍙戦�佺煭淇¢獙璇佺爜澶辫触锛岃鑱旂郴绠$悊鍛�")
}
--
Gitblit v1.8.0