|
@@ -187,7 +187,7 @@ func (this *UserCommonController) PcLogin() {
|
|
|
isAdd = true
|
|
|
} else {
|
|
|
br.Msg = "登陆失败"
|
|
|
- br.ErrMsg = "根据邮箱获取用户信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "根据手机号获取用户信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
}
|
|
@@ -255,16 +255,43 @@ func (this *UserCommonController) PcLogin() {
|
|
|
user.CreatedTime = time.Now()
|
|
|
user.FirstLogin = 1
|
|
|
user.Enabled = 1
|
|
|
+ user.Email = req.Email
|
|
|
+ user.Mobile = req.Mobile
|
|
|
+ if req.LoginType == 1 {
|
|
|
+ user.BindAccount = user.Mobile
|
|
|
+ } else {
|
|
|
+ user.BindAccount = user.Email
|
|
|
+ }
|
|
|
user.RegisterTime = time.Now()
|
|
|
user.LoginTime = time.Now()
|
|
|
user.IsFreeLogin = req.IsFreeLogin
|
|
|
+ user.RegisterPlatform=2
|
|
|
lastId, err := models.AddWxUser(user)
|
|
|
if err != nil {
|
|
|
br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "登录失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "登录失败,新增客户信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
userId = int(lastId)
|
|
|
+
|
|
|
+ timeUnix := time.Now().Unix()
|
|
|
+ timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
+ token := utils.MD5(strconv.Itoa(userId)) + utils.MD5(timeUnixStr)
|
|
|
+ //新增session
|
|
|
+ {
|
|
|
+ session := new(models.Session)
|
|
|
+ session.UserId = userId
|
|
|
+ session.CreatedTime = time.Now()
|
|
|
+ session.LastUpdatedTime = time.Now()
|
|
|
+ session.ExpireTime = time.Now().AddDate(0, 1, 0)
|
|
|
+ session.AccessToken = token
|
|
|
+ err = models.AddSession(session)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,新增用户session信息失败:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
err = models.ModifyLoginTime(userId, req.IsFreeLogin)
|
|
|
if err != nil {
|
|
@@ -278,24 +305,6 @@ func (this *UserCommonController) PcLogin() {
|
|
|
br.ErrMsg = "登录失败,id为 0"
|
|
|
return
|
|
|
}
|
|
|
- timeUnix := time.Now().Unix()
|
|
|
- timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
- token := utils.MD5(strconv.Itoa(userId)) + utils.MD5(timeUnixStr)
|
|
|
- //新增session
|
|
|
- {
|
|
|
- session := new(models.Session)
|
|
|
- session.UserId = userId
|
|
|
- session.CreatedTime = time.Now()
|
|
|
- session.LastUpdatedTime = time.Now()
|
|
|
- session.ExpireTime = time.Now().AddDate(1, 0, 0)
|
|
|
- session.AccessToken = token
|
|
|
- err = models.AddSession(session)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "登录失败,新增用户session信息失败:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
userPermission, err := services.CheckUserPermission(userId)
|
|
|
if err != nil {
|
|
@@ -309,14 +318,57 @@ func (this *UserCommonController) PcLogin() {
|
|
|
br.ErrMsg = "登录失败,判断权限失败:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- newUser, _ := models.GetWxUserItemByUserId(userId)
|
|
|
- checkPermissionCount, err := models.GetCustomPermission(newUser.CompanyId)
|
|
|
- if err != nil {
|
|
|
+ var token string
|
|
|
+ tokenItem, err := models.GetTokenByUid(userId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "登录失败"
|
|
|
- br.ErrMsg = "校验提示权限信息失败 Err:" + err.Error()
|
|
|
+ br.ErrMsg = "登录失败,获取token失败:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ if tokenItem == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
|
|
|
+ timeUnix := time.Now().Unix()
|
|
|
+ timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
+ token = utils.MD5(strconv.Itoa(userId)) + utils.MD5(timeUnixStr)
|
|
|
+ //新增session
|
|
|
+ {
|
|
|
+ session := new(models.Session)
|
|
|
+ session.UserId = userId
|
|
|
+ session.CreatedTime = time.Now()
|
|
|
+ session.LastUpdatedTime = time.Now()
|
|
|
+ session.ExpireTime = time.Now().AddDate(0, 1, 0)
|
|
|
+ session.AccessToken = token
|
|
|
+ err = models.AddSession(session)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,新增用户session信息失败:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ token = tokenItem.AccessToken
|
|
|
+ }
|
|
|
+
|
|
|
+ cp, err := models.GetCompanyProductsByUserId(userId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,获取客户信息失败:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyName, status, endDate, productName string
|
|
|
+ for _, v := range cp {
|
|
|
+ companyName = v.CompanyName
|
|
|
+ if status != "" {
|
|
|
+ status = status + "/" + v.Status
|
|
|
+ endDate = endDate + "/" + v.EndDate
|
|
|
+ productName = productName + "/" + v.ProductName
|
|
|
+ } else {
|
|
|
+ status = v.Status
|
|
|
+ endDate = v.EndDate
|
|
|
+ productName = v.ProductName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ newUser, _ := models.GetWxUserItemByUserId(userId)
|
|
|
resp := new(models.LoginResp)
|
|
|
resp.UserId = newUser.UserId
|
|
|
resp.UserPermission = userPermission
|
|
@@ -324,10 +376,10 @@ func (this *UserCommonController) PcLogin() {
|
|
|
resp.Headimgurl = newUser.Headimgurl
|
|
|
resp.Mobile = newUser.Mobile
|
|
|
resp.Email = newUser.Email
|
|
|
-
|
|
|
- if checkPermissionCount <= 0 {
|
|
|
- resp.IsTips = true
|
|
|
- }
|
|
|
+ resp.CompanyName = companyName
|
|
|
+ resp.EndDate = endDate
|
|
|
+ resp.Status = status
|
|
|
+ resp.ProductName = productName
|
|
|
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -353,8 +405,12 @@ func (this *UserController) PcBind() {
|
|
|
br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- openId := this.User.OpenId
|
|
|
+ unionId := this.User.UnionId
|
|
|
userId := this.User.UserId
|
|
|
+
|
|
|
+ utils.FileLog.Info("绑定unionId:%s", unionId)
|
|
|
+ utils.FileLog.Info("userId:%d", userId)
|
|
|
+
|
|
|
var newUserId int
|
|
|
if req.BindType == 1 { //手机号
|
|
|
if req.Mobile == "" {
|
|
@@ -383,7 +439,10 @@ func (this *UserController) PcBind() {
|
|
|
br.Msg = "手机验证码错误,请重新输入"
|
|
|
return
|
|
|
}
|
|
|
- newUserId, err = models.BindMobile(openId, req.Mobile, userId, req.BindType)
|
|
|
+ fmt.Println("bind")
|
|
|
+ fmt.Println(unionId, req.Mobile, userId, req.BindType)
|
|
|
+
|
|
|
+ newUserId, err = models.PcBindMobile(unionId, req.Mobile, userId, req.BindType)
|
|
|
if err != nil {
|
|
|
br.ErrMsg = "绑定失败"
|
|
|
br.Msg = "绑定失败,Err:" + err.Error()
|
|
@@ -421,7 +480,7 @@ func (this *UserController) PcBind() {
|
|
|
br.Msg = "邮箱证码错误,请重新输入"
|
|
|
return
|
|
|
}
|
|
|
- newUserId, err = models.BindMobile(openId, req.Mobile, userId, req.BindType)
|
|
|
+ newUserId, err = models.PcBindMobile(unionId, req.Email, userId, req.BindType)
|
|
|
if err != nil {
|
|
|
br.ErrMsg = "绑定失败"
|
|
|
br.Msg = "绑定失败,Err:" + err.Error()
|
|
@@ -432,24 +491,37 @@ func (this *UserController) PcBind() {
|
|
|
br.ErrMsg = "无效的绑定方式,bindType:" + strconv.Itoa(req.BindType)
|
|
|
return
|
|
|
}
|
|
|
- timeUnix := time.Now().Unix()
|
|
|
- timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
- token := utils.MD5(strconv.Itoa(userId)) + utils.MD5(timeUnixStr)
|
|
|
- //新增session
|
|
|
- {
|
|
|
- session := new(models.Session)
|
|
|
- session.UserId = userId
|
|
|
- session.CreatedTime = time.Now()
|
|
|
- session.LastUpdatedTime = time.Now()
|
|
|
- session.ExpireTime = time.Now().AddDate(1, 0, 0)
|
|
|
- session.AccessToken = token
|
|
|
- err = models.AddSession(session)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "绑定失败"
|
|
|
- br.ErrMsg = "绑定失败,新增用户session信息失败:" + err.Error()
|
|
|
- return
|
|
|
+
|
|
|
+ var token string
|
|
|
+ tokenItem, err := models.GetTokenByUid(newUserId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,获取token失败:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if tokenItem == nil || (err != nil && err.Error() == utils.ErrNoRow()) {
|
|
|
+ timeUnix := time.Now().Unix()
|
|
|
+ timeUnixStr := strconv.FormatInt(timeUnix, 10)
|
|
|
+ token = utils.MD5(strconv.Itoa(newUserId)) + utils.MD5(timeUnixStr)
|
|
|
+ //新增session
|
|
|
+ {
|
|
|
+ session := new(models.Session)
|
|
|
+ session.UserId = newUserId
|
|
|
+ session.CreatedTime = time.Now()
|
|
|
+ session.LastUpdatedTime = time.Now()
|
|
|
+ session.ExpireTime = time.Now().AddDate(0, 1, 0)
|
|
|
+ session.AccessToken = token
|
|
|
+ err = models.AddSession(session)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,新增用户session信息失败:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ token = tokenItem.AccessToken
|
|
|
}
|
|
|
+
|
|
|
userPermission, err := services.CheckUserPermission(newUserId)
|
|
|
if err != nil {
|
|
|
br.Msg = "绑定失败"
|
|
@@ -462,10 +534,46 @@ func (this *UserController) PcBind() {
|
|
|
br.ErrMsg = "绑定失败,判断权限失败:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ cp, err := models.GetCompanyProductsByUserId(newUserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "登录失败,获取客户信息失败:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyName, status, endDate, productName string
|
|
|
+ for _, v := range cp {
|
|
|
+ companyName = v.CompanyName
|
|
|
+ if status != "" {
|
|
|
+ status = status + "/" + v.Status
|
|
|
+ endDate = endDate + "/" + v.EndDate
|
|
|
+ productName = productName + "/" + v.ProductName
|
|
|
+ } else {
|
|
|
+ status = v.Status
|
|
|
+ endDate = v.EndDate
|
|
|
+ productName = v.ProductName
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ newUser, err := models.GetWxUserItemByUserId(newUserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "获取客户信息失败 GetWxUserItemByUserId:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
resp := new(models.LoginResp)
|
|
|
resp.UserId = newUserId
|
|
|
resp.UserPermission = userPermission
|
|
|
resp.Authorization = token
|
|
|
+ resp.Email = newUser.Email
|
|
|
+ resp.Headimgurl = newUser.Headimgurl
|
|
|
+ resp.Mobile = newUser.Mobile
|
|
|
+ resp.CompanyName = companyName
|
|
|
+ resp.EndDate = endDate
|
|
|
+ resp.Status = status
|
|
|
+ resp.ProductName = productName
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Data = resp
|
|
@@ -474,7 +582,7 @@ func (this *UserController) PcBind() {
|
|
|
|
|
|
// @Title 校验免登陆
|
|
|
// @Description 校验免登陆
|
|
|
-// @Success Ret=200 绑定成功
|
|
|
+// @Success 200 {object} models.CheckLoginResp
|
|
|
// @router /pc/check/login [get]
|
|
|
func (this *UserController) CheckLogin() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
@@ -495,37 +603,83 @@ func (this *UserController) CheckLogin() {
|
|
|
br.Ret = 408
|
|
|
}
|
|
|
}
|
|
|
+ authorization := this.Ctx.Input.Header("Authorization")
|
|
|
+ if authorization == "" {
|
|
|
+ cookie := this.Ctx.GetCookie("rddp_access_token")
|
|
|
+ utils.FileLog.Info("authorization:%s,cookie:%s", authorization, cookie)
|
|
|
+ authorization = cookie
|
|
|
+ }
|
|
|
br.IsSendEmail = false
|
|
|
+ //判断token是否过期
|
|
|
+ if br.Ret == 408 {
|
|
|
+ tokenCount, err := models.GetSessionCountByToken(authorization)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Ret = 408
|
|
|
+ } else {
|
|
|
+ br.ErrMsg = "登录失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "登录失败"
|
|
|
+ br.IsSendEmail = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if tokenCount > 0 {
|
|
|
+ br.Ret = 600
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp := new(models.CheckLoginResp)
|
|
|
+ if br.Ret == 600 {
|
|
|
+ checkPermissionCount, err := models.GetCustomPermission(this.User.CompanyId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "登录失败"
|
|
|
+ br.ErrMsg = "校验提示权限信息失败 Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if checkPermissionCount <= 0 && this.User.CompanyId > 1 {
|
|
|
+ resp.IsTips = true
|
|
|
+ }
|
|
|
+
|
|
|
+ if this.User.Mobile == "" && this.User.Email == "" {
|
|
|
+ resp.IsBind = true
|
|
|
+ }
|
|
|
+ }
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
-var (
|
|
|
- searcher = riot.New("zh")
|
|
|
-)
|
|
|
-
|
|
|
-func init() {
|
|
|
- fmt.Sprintf("start")
|
|
|
- data := types.DocData{Content: `I wonder how, I wonder why
|
|
|
- , I wonder where they are`}
|
|
|
- data1 := types.DocData{Content: "所以, 你好, 再见"}
|
|
|
- data2 := types.DocData{Content: "没有理由"}
|
|
|
- data3 := types.DocData{Content: "你好,中国"}
|
|
|
- data4 := types.DocData{Content: "晚上好"}
|
|
|
-
|
|
|
- searcher.Index("1", data)
|
|
|
- searcher.Index("2", data1)
|
|
|
- searcher.IndexDoc("3", data2)
|
|
|
- searcher.IndexDoc("4", data3)
|
|
|
- searcher.IndexDoc("5", data4)
|
|
|
- searcher.Flush()
|
|
|
-
|
|
|
- req := types.SearchReq{Text: "你好"}
|
|
|
- search := searcher.Search(req)
|
|
|
- jsonStr,_:=json.Marshal(search)
|
|
|
- fmt.Println(string(jsonStr))
|
|
|
- utils.FileLog.Info("%s",string(jsonStr))
|
|
|
- fmt.Sprintf("end")
|
|
|
-}
|
|
|
-*/
|
|
|
+//
|
|
|
+//var (
|
|
|
+// searcher = riot.New("zh")
|
|
|
+//)
|
|
|
+//
|
|
|
+//func init() {
|
|
|
+// fmt.Sprintf("start")
|
|
|
+// data := types.DocData{Content: `I wonder how, I wonder why
|
|
|
+// , I wonder where they are`}
|
|
|
+// data1 := types.DocData{Content: "所以, 你好, 再见"}
|
|
|
+// data2 := types.DocData{Content: "没有理由"}
|
|
|
+// data3 := types.DocData{Content: "你好,中国"}
|
|
|
+// data4 := types.DocData{Content: "晚上好"}
|
|
|
+// data5 := types.DocData{Content: "中国人民,你好啊,2020年"}
|
|
|
+// data6 := types.DocData{Content: "中国的新冠疫情算基本得到了有效的控制,随着各地的纷纷复工,甚至有些省市已经开始了复学,大量的外籍华人、旅居的、留学的平时召唤都召唤不来的那些人纷纷回国,这都说明了我们伟大的中国,伟大的中国人民战胜了这次肆虐全球的瘟疫。\n\n 在这这次的抗击新冠疫情中,我们的白衣天使们,我们的专家、学者、科学家们,纷纷的冲在了抗疫第一线。看着84岁高龄的钟南山院士坐在高铁座位上睡着的照片,看着73岁的第一个提出武汉封城的李兰娟院士数次往返于武汉,脸上那一道道的长时间佩戴口罩和护目镜留下的压痕,看着一个个的花季少女剪掉秀发只是为了更好的穿戴防护装备,看着一车车的物资涌向武汉,看着一张张按着手印的奔赴疫区申请书,听着一句句熟悉而又温暖的入党誓词,感动无不充盈心腔,眼泪也从未吝啬。对最美逆行者的赞美是多么的诚挚!"}
|
|
|
+// data7 := types.DocData{Content: "在此,我除了表达对他们由衷的感动,还想说:我们中国千万万的普普通通的老百姓也是最伟大、最可爱的人。从来没有一个朝代,从来没有一个国家,像我们中国的老百姓这样如此的对待疫情。平凡的老百姓节衣缩食,也要将物资援助最需要的地方,宁愿几个月不出门,也不给国家增加一分的负担。试问世界上有哪个国家的人民有我们中国的人民对国家如母亲般的感情呢?\n\n 近期看到的最多的新闻就是国外疫情的泛滥,不说在抗疫中每个国家的责任和力量,就说普通的百姓不戴口罩到处跑的,一只狗被遛了三十二次的,最硬核的就是用棍棒打腿的,这些都说明了他们的意识,他们面对疫情的态度和我们的同胞不是一个层次,他们对待国家的情感是不能和我们比拟的!当然,我们国家也不排除有个别的另类出现,但一定会收到最严厉的惩戒。\n\n 中国人民在这次的抗击新冠疫情的战役中表现出来的智慧、勇气、精神,都使我感到作为一个中国人是多么幸运。"}
|
|
|
+//
|
|
|
+// searcher.Index("1", data)
|
|
|
+// searcher.Index("2", data1)
|
|
|
+// searcher.IndexDoc("3", data2)
|
|
|
+// searcher.IndexDoc("4", data3)
|
|
|
+// searcher.IndexDoc("5", data4)
|
|
|
+// searcher.IndexDoc("6", data5)
|
|
|
+// searcher.IndexDoc("7", data6)
|
|
|
+// searcher.IndexDoc("8", data7)
|
|
|
+// searcher.Flush()
|
|
|
+//
|
|
|
+// req := types.SearchReq{Text: "中国人民",Orderless: false,CountDocsOnly: false}
|
|
|
+// search := searcher.Search(req)
|
|
|
+// jsonStr,_:=json.Marshal(search)
|
|
|
+// fmt.Println(string(jsonStr))
|
|
|
+// utils.FileLog.Info("%s",string(jsonStr))
|
|
|
+// fmt.Sprintf("end")
|
|
|
+//}
|
|
|
+//
|