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 +}