Files
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

78 lines
1.6 KiB
Go

package tonemod
import (
"fmt"
"time"
"91porn-server/common"
"91porn-server/common/db"
"91porn-server/models"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
var mdb *db.MongoDB
const table = models.Tone
func coll(t *db.MongoTool) *db.MongoTool {
if t == nil {
return mdb.Coll(table)
}
return t.Coll(table)
}
// InitIndex 设置index
func initIndex() {
many := []mongo.IndexModel{
{
Keys: bson.D{{Key: "types", Value: 1}},
Options: options.Index().SetUnique(true),
},
{
Keys: bson.D{{Key: "sortKey", Value: 1}},
},
{
Keys: bson.D{{Key: "createdAt", Value: -1}},
},
{
Keys: bson.D{{Key: "updatedAt", Value: -1}},
},
}
if _, err := coll(nil).CreateIndex(many); err != nil {
panic(fmt.Sprintf("%s model set index err ==>[%+v]", table, err))
}
}
// UpdateTo
func UpdateTo(id ObjectID, doc ToneDoc) error {
now := time.Now()
doc.UpdatedAt = &now
update, err := common.ToBsonM(doc)
if err != nil {
return fmt.Errorf("coll:%s UpdateTo ToBsonM fail, error:%+v ", models.Tone, err)
}
if _, err := coll(nil).UpdateOne(M{"_id": id}, bson.M{"$set": update}); err != nil {
return fmt.Errorf("coll:%s UpdateTo fail, error:%+v id:%+v update:%+v", models.Tone, err, id, update)
}
return nil
}
// TonePages TonePages
func TonePages(sort D, skip int64, limit int64) (page TonePage, err error) {
list, err := List(sort, skip, limit)
if err != nil {
return TonePage{}, err
}
count, err := Count()
if err != nil {
return TonePage{}, err
}
return TonePage{
int(count),
list,
}, nil
}