@@ -0,0 +1,127 @@
|
||||
package feedbackmod
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"91porn-server/common"
|
||||
"91porn-server/common/db"
|
||||
"91porn-server/common/log"
|
||||
"91porn-server/common/stderr"
|
||||
"91porn-server/models"
|
||||
"91porn-server/models/commod"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
)
|
||||
|
||||
var mdb *db.MongoDB
|
||||
|
||||
const table = models.FeedBack
|
||||
|
||||
func coll(t *db.MongoTool) *db.MongoTool {
|
||||
if t == nil {
|
||||
return mdb.Coll(table)
|
||||
}
|
||||
return t.Coll(table)
|
||||
}
|
||||
|
||||
func initIndex() {
|
||||
many := []mongo.IndexModel{ //batch set indexes //value is the type 1 or -1
|
||||
{
|
||||
Keys: bson.D{{Key: "uid", Value: 1}},
|
||||
},
|
||||
{
|
||||
Keys: bson.D{{Key: "createdAt", Value: 1}},
|
||||
},
|
||||
}
|
||||
if _, err := coll(nil).CreateIndex(many); err != nil {
|
||||
panic(fmt.Sprintf("%s model set index err ==>[%+v]", table, err))
|
||||
}
|
||||
}
|
||||
|
||||
// FeedBackInsert 新增反馈意见
|
||||
func FeedBackInsert(f FeedBack) (code stderr.Code, err error) {
|
||||
f.CreatedAt = time.Now()
|
||||
f.UpdatedAt = time.Now()
|
||||
if _, err = coll(nil).InsertOne(f); err != nil {
|
||||
code = stderr.ErrDbInsertError
|
||||
log.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "FeedBackInsert", table, "InsertOne", err))
|
||||
return
|
||||
}
|
||||
return stderr.Success, nil
|
||||
}
|
||||
|
||||
// FeedBackUpdate 修改反馈意见
|
||||
func FeedBackUpdate(id primitive.ObjectID, doc FeedBackUpdateDoc) (err error) {
|
||||
doc.UpdatedAt = time.Now()
|
||||
if _, err = coll(nil).UpdateOne(bson.M{"_id": id}, bson.M{
|
||||
"$set": doc,
|
||||
}); err != nil {
|
||||
log.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "FeedBackUpdate", table, "UpdateOne", err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// FeedBackDelete 批量删除反馈意见
|
||||
func FeedBackDelete(ids []primitive.ObjectID) (err error) {
|
||||
if _, err = coll(nil).DeleteMany(bson.M{"_id": bson.M{"$in": ids}}); err != nil {
|
||||
log.ZapLog.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "FeedBackDelete", table, "DeleteMany", err))
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func GetFeedBackList(size, page uint64, uid uint64) (data []FeedBack, hasNext bool, err error) {
|
||||
var feedBack []FeedBack
|
||||
std := commod.StdQuery{
|
||||
Page: &commod.PageBy{
|
||||
CheckNext: true,
|
||||
Num: page,
|
||||
Size: size,
|
||||
},
|
||||
Order: &[]commod.OrderBy{{Key: "_id", Desc: true}},
|
||||
}
|
||||
if err = coll(nil).Find(&feedBack, bson.M{"uid": uid}, commod.ConvertToListQuery(std)); err != nil {
|
||||
log.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "List", table, "Find", err))
|
||||
return
|
||||
}
|
||||
|
||||
if uint64(len(feedBack)) > size {
|
||||
hasNext = true
|
||||
feedBack = feedBack[:size]
|
||||
}
|
||||
|
||||
return feedBack, hasNext, nil
|
||||
}
|
||||
|
||||
// FeedBackList 根据类别条件 获反馈列表
|
||||
func FeedBackList(param ListParam) (data WebResp, err error) {
|
||||
var feedBack []FeedBack
|
||||
std := commod.StdQuery{
|
||||
Page: &commod.PageBy{
|
||||
CheckNext: false,
|
||||
Num: param.PageNumber,
|
||||
Size: param.PageSize,
|
||||
},
|
||||
Order: &[]commod.OrderBy{{Key: "updatedAt", Desc: true}},
|
||||
}
|
||||
query, _ := common.ToBsonM(param.ListFilter)
|
||||
if param.Content != "" {
|
||||
query["content"] = bson.M{"$regex": param.Content, "$options": "i"}
|
||||
}
|
||||
total, err := coll(nil).Count(query)
|
||||
if err != nil {
|
||||
log.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "List", table, "Count", err))
|
||||
return
|
||||
}
|
||||
if err = coll(nil).Find(&feedBack, query, commod.ConvertToListQuery(std)); err != nil {
|
||||
log.Error(fmt.Sprintf("[METHOD-%s]==> Model %s %s fail error:%+v:", "List", table, "Find", err))
|
||||
return
|
||||
}
|
||||
data.List = feedBack
|
||||
data.Total = total
|
||||
return data, nil
|
||||
}
|
||||
Reference in New Issue
Block a user