@@ -99,3 +99,61 @@ func InviteCodeUserInfo(c *gin.Context) { | |||||
e.OutSuc(c, res, nil) | e.OutSuc(c, res, nil) | ||||
return | return | ||||
} | } | ||||
// UserBindParent | |||||
// @Summary 绑定上级-要登陆的 | |||||
// @Tags 登录注册 | |||||
// @Description 绑定上级 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @Param req body md.InviteCodeUserInfoReq true "注册参数" | |||||
// @Success 200 {string} "具体数据" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/memberCenter/bindParent [post] | |||||
func UserBindParent(c *gin.Context) { | |||||
var req md.InviteCodeUserInfoReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = svc.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
if req.InviteCode == "" { | |||||
e.OutErr(c, 400, e.NewErr(400, "邀请码不能为空")) | |||||
return | |||||
} | |||||
userDb := implement.NewUserDb(db.Db) | |||||
user, err := userDb.UserGetOneByParams(map[string]interface{}{ | |||||
"key": "system_invite_code", | |||||
"value": req.InviteCode, | |||||
}) | |||||
if user == nil { | |||||
user, _ = userDb.UserGetOneByParams(map[string]interface{}{ | |||||
"key": "custom_invite_code", | |||||
"value": req.InviteCode, | |||||
}) | |||||
if user == nil { | |||||
e.OutErr(c, 400, e.NewErr(400, "用户不存在")) | |||||
return | |||||
} | |||||
} | |||||
ownUser := svc.GetUser(c) | |||||
if ownUser.ParentUid > 0 { | |||||
e.OutErr(c, 400, e.NewErr(400, "已有导师")) | |||||
return | |||||
} | |||||
if user.Id == ownUser.Id { | |||||
e.OutErr(c, 400, e.NewErr(400, "不能绑定自己")) | |||||
return | |||||
} | |||||
ownUser.ParentUid = user.Id | |||||
_, err = db.Db.Where("id=?", ownUser.Id).Cols("parent_uid").Update(ownUser) | |||||
if err != nil { | |||||
e.OutErr(c, 400, e.NewErr(400, "绑定失败,请重试")) | |||||
return | |||||
} | |||||
//TODO 绑定成功后 加群之类的怎么处理 | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} |
@@ -76,6 +76,7 @@ func route(r *gin.RouterGroup) { | |||||
r.Use(mw.Auth) // 以下接口需要JWT验证 | r.Use(mw.Auth) // 以下接口需要JWT验证 | ||||
rComm(r.Group("/comm")) | rComm(r.Group("/comm")) | ||||
r.POST("/advertising/check", hdl.AdvertisingCheck) //广告位判断能不能看 | r.POST("/advertising/check", hdl.AdvertisingCheck) //广告位判断能不能看 | ||||
rHomePage := r.Group("/homePage") | rHomePage := r.Group("/homePage") | ||||
{ | { | ||||
rHomePage.GET("/index", hdl.HomePage) // 主页 | rHomePage.GET("/index", hdl.HomePage) // 主页 | ||||
@@ -97,6 +98,7 @@ func route(r *gin.RouterGroup) { | |||||
rMemberCenter := r.Group("/memberCenter") | rMemberCenter := r.Group("/memberCenter") | ||||
{ | { | ||||
rMemberCenter.GET("/getBasic", hdl.MemberCenterGetBasic) // 会员中心-基础数据 | rMemberCenter.GET("/getBasic", hdl.MemberCenterGetBasic) // 会员中心-基础数据 | ||||
rMemberCenter.POST("/bindParent", hdl.UserBindParent) //绑定上级 | |||||
} | } | ||||
rPointsCenter := r.Group("/pointsCenter") // 积分中心 | rPointsCenter := r.Group("/pointsCenter") // 积分中心 | ||||
{ | { | ||||
@@ -1394,6 +1394,46 @@ const docTemplate = `{ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"/api/v1/memberCenter/bindParent": { | |||||
"post": { | |||||
"description": "绑定上级", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"登录注册" | |||||
], | |||||
"summary": "绑定上级-要登陆的", | |||||
"parameters": [ | |||||
{ | |||||
"description": "注册参数", | |||||
"name": "req", | |||||
"in": "body", | |||||
"required": true, | |||||
"schema": { | |||||
"$ref": "#/definitions/md.InviteCodeUserInfoReq" | |||||
} | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"type": "string" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/memberCenter/getBasic": { | "/api/v1/memberCenter/getBasic": { | ||||
"get": { | "get": { | ||||
"description": "基础数据(获取)", | "description": "基础数据(获取)", | ||||
@@ -3963,7 +4003,7 @@ const docTemplate = `{ | |||||
"type": "integer" | "type": "integer" | ||||
}, | }, | ||||
"to_user_ids": { | "to_user_ids": { | ||||
"description": "红包给到哪些用户(专属红包)", | |||||
"description": "红包给到哪些im用户id(专属红包)", | |||||
"type": "array", | "type": "array", | ||||
"items": { | "items": { | ||||
"type": "integer" | "type": "integer" | ||||
@@ -1387,6 +1387,46 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"/api/v1/memberCenter/bindParent": { | |||||
"post": { | |||||
"description": "绑定上级", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"登录注册" | |||||
], | |||||
"summary": "绑定上级-要登陆的", | |||||
"parameters": [ | |||||
{ | |||||
"description": "注册参数", | |||||
"name": "req", | |||||
"in": "body", | |||||
"required": true, | |||||
"schema": { | |||||
"$ref": "#/definitions/md.InviteCodeUserInfoReq" | |||||
} | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"type": "string" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/memberCenter/getBasic": { | "/api/v1/memberCenter/getBasic": { | ||||
"get": { | "get": { | ||||
"description": "基础数据(获取)", | "description": "基础数据(获取)", | ||||
@@ -3956,7 +3996,7 @@ | |||||
"type": "integer" | "type": "integer" | ||||
}, | }, | ||||
"to_user_ids": { | "to_user_ids": { | ||||
"description": "红包给到哪些用户(专属红包)", | |||||
"description": "红包给到哪些im用户id(专属红包)", | |||||
"type": "array", | "type": "array", | ||||
"items": { | "items": { | ||||
"type": "integer" | "type": "integer" | ||||
@@ -1019,7 +1019,7 @@ definitions: | |||||
description: 消息发送时间戳,精确到毫秒 | description: 消息发送时间戳,精确到毫秒 | ||||
type: integer | type: integer | ||||
to_user_ids: | to_user_ids: | ||||
description: 红包给到哪些用户(专属红包) | |||||
description: 红包给到哪些im用户id(专属红包) | |||||
items: | items: | ||||
type: integer | type: integer | ||||
type: array | type: array | ||||
@@ -2225,6 +2225,32 @@ paths: | |||||
summary: 登陆 | summary: 登陆 | ||||
tags: | tags: | ||||
- 登录注册 | - 登录注册 | ||||
/api/v1/memberCenter/bindParent: | |||||
post: | |||||
consumes: | |||||
- application/json | |||||
description: 绑定上级 | |||||
parameters: | |||||
- description: 注册参数 | |||||
in: body | |||||
name: req | |||||
required: true | |||||
schema: | |||||
$ref: '#/definitions/md.InviteCodeUserInfoReq' | |||||
produces: | |||||
- application/json | |||||
responses: | |||||
"200": | |||||
description: 具体数据 | |||||
schema: | |||||
type: string | |||||
"400": | |||||
description: 具体错误 | |||||
schema: | |||||
$ref: '#/definitions/md.Response' | |||||
summary: 绑定上级-要登陆的 | |||||
tags: | |||||
- 登录注册 | |||||
/api/v1/memberCenter/getBasic: | /api/v1/memberCenter/getBasic: | ||||
get: | get: | ||||
consumes: | consumes: | ||||