From 842b5e59bb2633859b67912649ffc84490cdafe7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 24 Nov 2020 14:29:42 +0800 Subject: [PATCH] poped --- business/jxstore/cms/user2.go | 82 ++++++++++++++++++++++++--------- business/model/dao/dao_user.go | 4 +- controllers/user2_controller.go | 14 ++++++ 3 files changed, 78 insertions(+), 22 deletions(-) diff --git a/business/jxstore/cms/user2.go b/business/jxstore/cms/user2.go index aa3b77716..9875ca694 100644 --- a/business/jxstore/cms/user2.go +++ b/business/jxstore/cms/user2.go @@ -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 +} diff --git a/business/model/dao/dao_user.go b/business/model/dao/dao_user.go index 4f0bbeaec..959645bdb 100644 --- a/business/model/dao/dao_user.go +++ b/business/model/dao/dao_user.go @@ -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{}{ diff --git a/controllers/user2_controller.go b/controllers/user2_controller.go index 4737df21b..4140ff5a5 100644 --- a/controllers/user2_controller.go +++ b/controllers/user2_controller.go @@ -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"