create messagegroup
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user