Files
web_huakui_server/web/service/srv_richtextcontent/richtextcontent.go
T
rootandClaude Opus 4.7 85c0071fd8 feat: 从黄果 NET hgdjnet-server 9bfbafe 导入 HKDJ 官网后端
来源:hgdjnet-server 9bfbafe10d417deea959bd53117bc88a10e60a83
项目身份 HKDJ / JHA-216,独立官网仓库,Jenkins 守卫键 hkdjnet
测试目录 /server/hkdj_net,App/Web API 30331/30332

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-10-16 11:20:04 +08:00

72 lines
2.1 KiB
Go

package srv_richtextcontent
import (
"context"
"hkdj-web-server/pub/common/srvdef"
"hkdj-web-server/pub/models/richtextcontentmod"
"hkdj-web-server/pub/mongos"
"time"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo/options"
)
func GetRichTextContentList(ctx context.Context, req *GetRichTextContentListReq) (*GetRichTextContentResp, *srvdef.SrvErr) {
filter := bson.M{}
if req.Title != nil {
filter[richtextcontentmod.FN.RichTextContentModel.Title] = bson.M{"$regex": *req.Title, "$options": "i"}
}
if req.Status != nil {
filter[richtextcontentmod.FN.RichTextContentModel.Status] = *req.Status
}
total, err := richtextcontentmod.CountRichTextContentModelModels(ctx, filter)
if err != nil {
return nil, err
}
resp := &GetRichTextContentResp{}
if total == 0 {
return resp, nil
}
opts := &options.FindOptions{}
opts.SetSort(bson.M{richtextcontentmod.FN.RichTextContentModel.UpdatedAt: -1})
opts.SetLimit(req.PageSize)
opts.SetSkip((req.PageNum - 1) * req.PageSize)
list, err := richtextcontentmod.FindManyRichTextContentModelModel(ctx, filter, opts)
if err != nil {
return resp, err
}
resp.Total = total
resp.List = list
return resp, nil
}
func AddRichTextContent(ctx context.Context, ac *richtextcontentmod.RichTextContentModel) *srvdef.SrvErr {
ac.Id = mongos.Lid.HtmlText.Get()
now := time.Now()
ac.CreatedAt = now
ac.UpdatedAt = now
return richtextcontentmod.InsertOneRichTextContentModelModel(ctx, ac)
}
func UpdateRichTextContent(ctx context.Context, id int64, param *UpdateRichTextContentData) *srvdef.SrvErr {
now := time.Now()
param.UpdatedAt = now
adFilter := bson.M{richtextcontentmod.FN.RichTextContentModel.Id: id}
updateDoc := bson.M{"$set": param}
serr := richtextcontentmod.UpdateOneRichTextContentModelModel(ctx, adFilter, updateDoc)
if serr != nil {
return serr
}
return nil
}
func DelRichTextContent(ctx context.Context, req *DelRichTextContentReq) *srvdef.SrvErr {
_, err := richtextcontentmod.DelOneRichTextContentModelModel(ctx, bson.M{
richtextcontentmod.FN.RichTextContentModel.Id: req.Id,
})
return err
}