create messagegroup

This commit is contained in:
苏尹岚
2020-10-22 09:41:18 +08:00
parent bbf527d419
commit bd1ae5558c
6 changed files with 101 additions and 31 deletions

View File

@@ -127,17 +127,16 @@ func GetOperateEvents(ctx *jxcontext.Context, name string, apiFunctions []string
return pageInfo, err
}
func CreateMessageGroup(ctx *jxcontext.Context, userID, userID2 string) (messageGroupResult *dao.GetMessageGroupsResult, err error) {
func CreateMessageGroup(ctx *jxcontext.Context, userID, userID2, groupName string, dividePercentage int) (messageGroupResult *dao.GetMessageGroupsResult, err error) {
var (
db = dao.GetDB()
groupID int
)
if userID2 != "" {
messageGroups, err := dao.GetMessageGroups(db, userID, model.GroupMemberTypeNormal, userID2)
if len(messageGroups) > 0 && len(messageGroups[0].MessageGroupMembers) == 0 {
messageGroups, err := dao.GetMessageGroups(db, userID, model.GroupTypeSingle, true, userID2)
if len(messageGroups) > 0 && len(messageGroups[0].MessageGroupMembers) > 0 {
return messageGroups[0], err
}
fmt.Println(utils.Format4Output(messageGroups, false))
user, err := dao.GetUserByID(db, "user_id", userID2)
if err != nil {
return nil, err
@@ -156,9 +155,9 @@ func CreateMessageGroup(ctx *jxcontext.Context, userID, userID2 string) (message
}
}
messageGroup := &model.MessageGroup{
GroupID: groupID,
UserID: userID,
Name: user.Name,
GroupID: groupID,
UserID: userID,
// Name: user.Name,
Type: model.GroupTypeSingle,
MaxCount: 2,
}
@@ -172,9 +171,52 @@ func CreateMessageGroup(ctx *jxcontext.Context, userID, userID2 string) (message
dao.CreateEntity(db, messageGroup)
dao.CreateEntity(db, messageGroupMember)
if data, err := json.Marshal(messageGroup); err == nil {
json.Unmarshal(data, &messageGroup)
json.Unmarshal(data, &messageGroupResult)
messageGroupResult.Name = user.Name
messageGroupResult.MessageGroupMembers = append(messageGroupResult.MessageGroupMembers, messageGroupMember)
}
} else {
userMembers, err := dao.GetUserMember(db, userID, model.MemberTypeNormal)
if err != nil {
return nil, err
}
if len(userMembers) == 0 {
return nil, fmt.Errorf("抱歉,只有会员才能创建群聊!")
}
messageGroup := &model.MessageGroup{
GroupID: groupID,
UserID: userID,
Name: groupName,
Type: model.GroupTypeMulit,
MaxCount: 50,
DividePercentage: dividePercentage,
}
dao.WrapAddIDCULDEntity(messageGroup, ctx.GetUserName())
dao.CreateEntity(db, messageGroup)
messageGroupResult.MessageGroup = *messageGroup
}
return messageGroupResult, err
}
func GetMessageGroupByUser(ctx *jxcontext.Context, userID string) (messageGroupResult []*dao.GetMessageGroupsResult, err error) {
var (
db = dao.GetDB()
)
messageGroups, err := dao.GetMessageGroups(db, userID, 0, false, "")
for _, v := range messageGroups {
var messageMemberGroups []*model.MessageGroupMember
sql := `
SELECT * FROM message_member_group WHERE group_id = ?
`
sqlParams := []interface{}{v.GroupID}
if err = dao.GetRows(db, &messageMemberGroups, sql, sqlParams); err == nil {
if v.Type == model.GroupTypeSingle {
user, err := dao.GetUserByID(db, "user_id", messageMemberGroups[0].MemberUserID)
if err == nil {
v.Name = user.Name
}
}
}
}
return messageGroups, err
}