Executable
+80
@@ -0,0 +1,80 @@
|
||||
package immessageser
|
||||
|
||||
import (
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models/cache/immessagedata"
|
||||
"91porn-server/models/commod"
|
||||
"91porn-server/models/v/imgroupmembermod"
|
||||
"91porn-server/models/v/immessagemod"
|
||||
"time"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
)
|
||||
|
||||
type AppQueryListReq struct {
|
||||
GroupId int64 `json:"groupId" form:"groupId" binding:"required"`
|
||||
commod.Page
|
||||
}
|
||||
|
||||
type AppListRes struct {
|
||||
Total int64 `json:"total"`
|
||||
HasNext bool `json:"hasNext"`
|
||||
List []*immessagemod.ImMessageInfo `json:"list"`
|
||||
}
|
||||
|
||||
// GetList 获取列表
|
||||
func (p *AppQueryListReq) GetList() AppListRes {
|
||||
var res AppListRes
|
||||
var err error
|
||||
filter := bson.M{
|
||||
"groupId": p.GroupId,
|
||||
}
|
||||
|
||||
sort := bson.D{{"_id", -1}}
|
||||
// 获取列表
|
||||
var data []immessagemod.ImMessage
|
||||
data, res.Total, res.HasNext, err = immessagemod.GetList(filter, int64(p.Skip()), int64(p.Limit()), sort)
|
||||
if err != nil {
|
||||
log.Error("获取im消息列表数据错误", log.Any("Params", *p), log.E(err))
|
||||
return res
|
||||
}
|
||||
res.List = immessagedata.FormatAppDataList(data)
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
type SendReq struct {
|
||||
GroupId int64 `json:"groupId" form:"groupId" binding:"required"` // 群组id
|
||||
Content string `json:"content" form:"content"` // 消息内容
|
||||
Image string `json:"image" form:"image"` // 图片
|
||||
}
|
||||
|
||||
// Create 发布数据
|
||||
func (p *SendReq) Create(uid uint64) error {
|
||||
// 判断是否是群成员
|
||||
member, err := imgroupmembermod.GetInfoByCond(bson.M{"groupId": p.GroupId, "uid": uid})
|
||||
if err != nil {
|
||||
log.Error("发送群组消息失败", log.Any("params", *p), log.E(err))
|
||||
return stderr.NewCustomErr(stderr.Failure, "发送失败")
|
||||
}
|
||||
if member.ID.IsZero() || member.Status == 2 {
|
||||
return stderr.NewCustomErr(stderr.Failure, "发送失败,您还未加入群组")
|
||||
}
|
||||
if member.Status == 0 {
|
||||
return stderr.NewCustomErr(stderr.Failure, "发送失败,您已经被该群禁言")
|
||||
}
|
||||
data := immessagemod.ImMessage{
|
||||
GroupId: p.GroupId,
|
||||
Uid: uid,
|
||||
Content: p.Content,
|
||||
Image: p.Image,
|
||||
CreatedAt: time.Now(),
|
||||
}
|
||||
|
||||
// 创建数据
|
||||
if _, err = immessagemod.Insert(nil, data); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user