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 }