From 9861f7a774da57e5a330d911691cf5ddf0f746fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Wed, 21 Oct 2020 11:43:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=81=8A=E5=A4=A9=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/event/event.go | 4 ++++ business/model/dao/event.go | 39 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/business/jxstore/event/event.go b/business/jxstore/event/event.go index a28431256..bb989223a 100644 --- a/business/jxstore/event/event.go +++ b/business/jxstore/event/event.go @@ -132,6 +132,10 @@ func CreateMessageGroup(ctx *jxcontext.Context, userID, userID2 string) (err err groupID int ) if userID2 != "" { + messageGroups, err := dao.GetMessageGroups(db, userID, model.GroupMemberTypeNormal, userID2) + if len(messageGroups) > 0 && messageGroups[0].MessageGroupMembers != nil { + return err + } user, err := dao.GetUserByID(db, "user_id", userID2) if err != nil { return err diff --git a/business/model/dao/event.go b/business/model/dao/event.go index ad4cce5d6..fe0178976 100644 --- a/business/model/dao/event.go +++ b/business/model/dao/event.go @@ -170,3 +170,42 @@ func GetImMessageRecord(db *DaoDB, vendorOrderID, userID string, storeID, vendor err = GetRows(db, &msg, sql, sqlParams) return msg, err } + +type GetMessageGroupsResult struct { + model.MessageGroup + MessageGroupMembers []*model.MessageGroupMember `json:"messageGroupMembers"` +} + +func GetMessageGroups(db *DaoDB, userID string, groupType int, userID2 string) (messageGroupsResult []*GetMessageGroupsResult, err error) { + sql := ` + SELECT * + FROM message_group + WHERE deleted_at = ? + ` + sqlParams := []interface{}{utils.DefaultTimeValue} + if userID != "" { + sql += " AND user_id = ?" + sqlParams = append(sqlParams, userID) + } + if groupType != 0 { + sql += " AND type = ?" + sqlParams = append(sqlParams, groupType) + } + if err = GetRows(db, &messageGroupsResult, sql, sqlParams); err == nil { + for _, v := range messageGroupsResult { + var messageGroupMembers []*model.MessageGroupMember + sql2 := ` + SELECT * FROM message_group_member WHERE group_id = ? + ` + sqlParams2 := []interface{}{v.GroupID} + if userID2 != "" { + sql2 += ` AND user_id = ?` + sqlParams2 = append(sqlParams2, userID2) + } + if err = GetRows(db, &messageGroupMembers, sql2, sqlParams2); err == nil { + v.MessageGroupMembers = messageGroupMembers + } + } + } + return messageGroupsResult, err +}