hotime/example/app/user.go
2022-05-02 15:39:50 +08:00

149 lines
3.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package app
import (
. "code.hoteas.com/golang/hotime"
. "code.hoteas.com/golang/hotime/common"
)
var User = Ctr{
//用户微信公众号或者小程序登录
"login": func(that *Context) {
acttoken := that.Req.FormValue("acttoken")
retoken := that.Req.FormValue("retoken")
appid := that.Req.FormValue("appid")
unionid := that.Req.FormValue("unionid")
openid := that.Req.FormValue("openid")
nickname := that.Req.FormValue("nickname")
avatar := that.Req.FormValue("avatar")
Type := ObjToInt(that.Req.FormValue("type"))
sn := that.Req.FormValue("sn")
if acttoken == "" || retoken == "" || appid == "" || unionid == "" || openid == "" || nickname == "" || avatar == "" || that.Req.FormValue("type") == "" {
that.Display(3, "请求参数异常,请校验参数")
return
}
wechat := that.Db.Get("wechat", "*", Map{"AND": Map{"openid": openid, "del_flag": 0}})
defer func() {
if sn == "" {
return
}
if wechat.GetCeilInt("user_id") == 0 {
return
}
salesman := that.Db.Get("salesman", "*", Map{"sn": sn})
if salesman.GetCeilInt("id") == 0 {
return
}
user := that.Db.Get("user", "*", Map{"id": wechat.GetCeilInt("user_id")})
if user == nil {
return
}
//用户都有企服人员关联
if user.GetCeilInt("salesman_id") != 0 {
return
}
//用户没有企服商id
that.Db.Update("user", Map{"salesman_id": salesman.GetCeilInt64("id")}, Map{"id": user.GetCeilInt64("id")})
}()
if wechat != nil {
//有用户直接返回
if wechat.GetCeilInt("user_id") != 0 {
that.Display(0, wechat)
return
}
//没有用户继续查询数据库看是否有其他unionid
wechat1 := that.Db.Get("wechat", "*", Map{"AND": Map{"unionid": unionid, "openid[!]": openid, "user_id[>]": 0, "del_flag": 0}})
//其他表有该数据,则更新当前表数据信息
if wechat1 != nil {
wechat["user_id"] = wechat1.GetCeilInt("user_id")
wechat["acttoken"] = acttoken
wechat["retoken"] = retoken
wechat["appid"] = appid
wechat["unionid"] = unionid
wechat["openid"] = openid
wechat["nickname"] = nickname
wechat["avatar"] = avatar
wechat["type"] = Type
that.Db.Update("wechat", wechat, Map{"id": wechat.GetCeilInt("id")})
that.Display(0, wechat)
return
}
//其他表也没有当前信息则生成user表并更新当前用户
user := Map{
"nick_name": nickname,
"avatar_name": avatar,
"del_flag": 0,
}
user["id"] = that.Db.Insert("user", user)
wechat["user_id"] = user.GetCeilInt("id")
wechat["acttoken"] = acttoken
wechat["retoken"] = retoken
wechat["appid"] = appid
wechat["unionid"] = unionid
wechat["openid"] = openid
wechat["nickname"] = nickname
wechat["avatar"] = avatar
wechat["type"] = Type
that.Db.Update("wechat", wechat, Map{"id": wechat.GetCeilInt("id")})
that.Display(0, wechat)
return
}
user := Map{
"nick_name": nickname,
"avatar_name": avatar,
"del_flag": 0,
}
user["id"] = that.Db.Insert("user", user)
wechat = Map{}
wechat["user_id"] = user.GetCeilInt("id")
wechat["acttoken"] = acttoken
wechat["retoken"] = retoken
wechat["appid"] = appid
wechat["unionid"] = unionid
wechat["openid"] = openid
wechat["nickname"] = nickname
wechat["avatar"] = avatar
wechat["type"] = Type
wechat["id"] = that.Db.Insert("wechat", wechat)
if wechat.GetCeilInt("id") == 0 {
that.Display(4, "创建用户失败")
return
}
that.Display(0, wechat)
},
"check": func(that *Context) {
openid := that.Req.FormValue("openid")
if openid == "" {
that.Display(3, "请求参数异常,请校验参数")
return
}
wechat := that.Db.Get("wechat", "*", Map{"AND": Map{"openid": openid, "user_id[!]": nil, "del_flag": 0}})
if wechat == nil {
that.Display(3, "找不到该用户")
return
}
that.Display(0, wechat)
},
}