k.zhang hace 3 años
padre
commit
8072de92bb
Se han modificado 3 ficheros con 26 adiciones y 11 borrados
  1. 21 9
      apis/user/user.open.id.set.go
  2. 3 1
      models/mysql/user.go
  3. 2 1
      models/user/user.open.id.set.go

+ 21 - 9
apis/user/user.open.id.set.go

@@ -15,6 +15,7 @@ func OpenIdSet(c *gin.Context) {
 	var inData user.OpenIdSetRequest
 	var outData user.OpenIdSetResponse
 	var sqlData mysql.User
+	var sql1 mysql.User
 	//var wallet mysql.Wallet
 	err := c.ShouldBindJSON(&inData)
 	if err != nil {
@@ -49,15 +50,26 @@ func OpenIdSet(c *gin.Context) {
 	sqlData.OpenID = outData.OpenId
 	num := sqlData.GetNum()
 	if num == 0 {
-		//创建用户
-		sqlData.CreateTime = tools.GetCurrntTimeStr()
-		sqlData.UpdateTime = tools.GetCurrntTimeStr()
-		sqlData.Create()
-		//创建钱包
-		//wallet.CreateTime = tools.GetCurrntTimeStr()
-		//wallet.UpdateTime = tools.GetCurrntTimeStr()
-		//wallet.OpenID = outData.OpenId
-		//wallet.Create()
+		if inData.OpenId != "" { //有上级
+			sql1.OpenID = inData.OpenId
+			val, err := sql1.Get()
+			if err != nil {
+				app.Error(c, 500, err, err.Error())
+				return
+			}
+			//创建用户
+			sqlData.CreateTime = tools.GetCurrntTimeStr()
+			sqlData.UpdateTime = tools.GetCurrntTimeStr()
+			sqlData.OpenIdOne = inData.OpenId
+			sqlData.OpenIdTwo = val.OpenIdOne
+			sqlData.Create()
+		} else { //无上级用户
+			//创建用户
+			sqlData.CreateTime = tools.GetCurrntTimeStr()
+			sqlData.UpdateTime = tools.GetCurrntTimeStr()
+			sqlData.Create()
+		}
+
 	}
 
 	app.OK(c, outData, app.Success)

+ 3 - 1
models/mysql/user.go

@@ -13,6 +13,8 @@ type User struct {
 	UpdateTime string `gorm:"column:update_time" json:"updateTime"`
 	NickName   string `gorm:"column:nick_name" json:"nickName"`
 	AvatarUrl  string `gorm:"column:avatar_url" json:"avatarUrl"`
+	OpenIdOne  string `gorm:"column:open_id_1" json:"openIdOne"`
+	OpenIdTwo  string `gorm:"column:open_id_2" json:"openIdTwo"`
 }
 
 // TableName sets the insert table name for this struct type
@@ -30,7 +32,7 @@ func (u *User) GetNum() int {
 
 func (u *User) Get() (User, error) {
 	var doc User
-	err := orm.Eloquent.Select("pid,nick_name,avatar_url").Where("open_id = ? ", u.OpenID).Table(u.TableName()).First(&doc).Error
+	err := orm.Eloquent.Select("pid,nick_name,avatar_url,open_id_1,open_id_2").Where("open_id = ? ", u.OpenID).Table(u.TableName()).First(&doc).Error
 	if err != nil {
 		return doc, err
 	}

+ 2 - 1
models/user/user.open.id.set.go

@@ -1,7 +1,8 @@
 package user
 
 type OpenIdSetRequest struct {
-	Code string `json:"code"` //微信code
+	Code   string `json:"code"`   //微信code
+	OpenId string `json:"openId"` //邀请好友的openId
 }
 
 type OpenIdSetResponse struct {