diff --git a/example/app/user.go b/example/app/user.go new file mode 100644 index 0000000..c483e17 --- /dev/null +++ b/example/app/user.go @@ -0,0 +1,148 @@ +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) + + }, +}