This commit is contained in:
苏尹岚
2020-11-24 14:29:42 +08:00
parent 126af8f857
commit 842b5e59bb
3 changed files with 78 additions and 22 deletions

View File

@@ -667,31 +667,71 @@ func UpdateUser(ctx *jxcontext.Context, payload map[string]interface{}) (err err
err = err2
if user2 != nil {
user2.PopCount++
//邀请过4人直接开通一个月会员并创建群组
if user2.PopCount >= 4 && user2.PopFlag == model.NO {
_, err = InvestMember(ctx, 1, user2.UserID, true)
//如果他已经有群了,被邀请人直接进群
//如果他没群,自动创一个群,所有被邀请人打上标志
messageGroupsResult, err3 := dao.GetMessageGroups(db, user2.UserID, 0, model.GroupTypeMulit, false, "")
err = err3
if len(messageGroupsResult) > 0 {
err = event.AddMessageGroup(ctx, messageGroupsResult[0].GroupID, user.UserID)
} else {
_, err = event.CreateMessageGroup(ctx, user2.UserID, "", "", 5, 100)
user.PopedFlag = model.YES
}
user2.PopFlag = model.YES
dao.UpdateEntity(db, user2, "PopFlag")
if users, _, err := dao.GetUsers(db, 0, "", user2.UserID, nil, nil, nil, 0, 999); err == nil {
for _, v := range users {
v.PopedFlag = model.YES
dao.UpdateEntity(db, v, "PopedFlag")
}
messageGroupsResult, err3 := dao.GetMessageGroups(db, user2.UserID, 0, model.GroupTypeMulit, false, "")
err = err3
//如果他已经有群了,被邀请人直接进群
//如果他没群在邀请到4个人的时候,自动创一个群,所有被邀请人打上标志
if len(messageGroupsResult) > 0 {
err = event.AddMessageGroup(ctx, messageGroupsResult[0].GroupID, user.UserID)
//邀请过4人直接开通一个月会员
if user2.PopCount%4 == 0 && user2.PopFlag == model.NO {
_, err = InvestMember(ctx, 1, user2.UserID, true)
user2.PopFlag = model.YES
dao.UpdateEntity(db, user2, "PopFlag")
}
} else {
dao.UpdateEntity(db, user2, "PopCount")
//邀请过4人直接开通一个月会员并创建群组
if user2.PopCount%4 == 0 && user2.PopFlag == model.NO {
_, err = InvestMember(ctx, 1, user2.UserID, true)
user2.PopFlag = model.YES
dao.UpdateEntity(db, user2, "PopFlag")
if users, _, err := dao.GetUsers(db, 0, "", user2.UserID, nil, nil, nil, 0, 999); err == nil {
for _, v := range users {
v.PopedFlag = model.YES
dao.UpdateEntity(db, v, "PopedFlag")
}
}
_, err = event.CreateMessageGroup(ctx, user2.UserID, "", "", 5, 100)
}
}
dao.UpdateEntity(db, user2, "PopCount")
}
}
return err
}
func AcceptAddGroup(ctx *jxcontext.Context, flag int) (err error) {
var (
db = dao.GetDB()
userID = ctx.GetUserID()
)
user, err := dao.GetUserByID(db, "user_id", userID)
if user == nil {
return fmt.Errorf("获取用户信息失败!")
}
if err != nil {
return err
}
if user.PopedFlag == model.NO {
return fmt.Errorf("获取用户邀请信息失败")
}
//同意加入
if flag == model.YES {
//1、找到这个人的邀请人
//2、这个邀请人有群就直接进没群就加入失败了
messageGroupsResult, err := dao.GetMessageGroups(db, user.PopUser, 0, model.GroupTypeMulit, false, "")
if err != nil {
return fmt.Errorf("获取邀请人群信息失败! %v", err)
}
if len(messageGroupsResult) > 0 {
err = event.AddMessageGroup(ctx, messageGroupsResult[0].GroupID, user.UserID)
} else {
return fmt.Errorf("获取邀请人群信息失败!")
}
}
//同步同意都清标志
user.PopedFlag = model.NO
dao.UpdateEntity(db, user, "PopedFlag")
return err
}

View File

@@ -23,6 +23,7 @@ type GetSelfInfoResult struct {
model.UserBill
WaitCashPrice int `json:"waitCashPrice"`
UserMembers []*model.UserMember `json:"userMembers"`
PopedUserName string `json:"popedUserName"`
}
func GetUserByID(db *DaoDB, fieldName, fieldValue string) (user *model.User, err error) {
@@ -43,9 +44,10 @@ func GetUserByID(db *DaoDB, fieldName, fieldValue string) (user *model.User, err
func GetUserByIDWithMembers(db *DaoDB, fieldName, fieldValue string) (getSelfInfoResult *GetSelfInfoResult, err error) {
sql := fmt.Sprintf(`
SELECT t1.*, t2.bill_id, t2.account_balance
SELECT t1.*, t2.bill_id, t2.account_balance, t3.name pop_user_name
FROM user t1
JOIN user_bill t2 ON t2.user_id = t1.user_id AND t2.deleted_at = ?
LEFT JOIN user t3 ON t3.user_id = t1.pop_user
WHERE t1.deleted_at = ? AND t1.status = ? AND t1.%s = ?
`, fieldName)
sqlParams := []interface{}{

View File

@@ -358,6 +358,20 @@ func (c *User2Controller) UpdateUser() {
})
}
// @Title 被邀请用户达到4人时同意或拒绝入群
// @Description 被邀请用户达到4人时同意或拒绝入群
// @Param token header string true "认证token"
// @Param flag formData int true "1为同意0为拒绝"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /AcceptAddGroup [post]
func (c *User2Controller) AcceptAddGroup() {
c.callAcceptAddGroup(func(params *tUser2AcceptAddGroupParams) (retVal interface{}, errCode string, err error) {
err = cms.AcceptAddGroup(params.Ctx, params.Flag)
return retVal, "", err
})
}
// @Title 获取用户管理城市
// @Description 获取用户管理城市
// @Param token header string true "认证token"