Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+80
View File
@@ -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
}