package dao import ( "github.com/gin-gonic/gin" "github.com/qiniu/qmgo" "github.com/qiniu/qmgo/operator" vasproto "service/api/proto/vas/proto" "service/dbstruct" "time" ) // 订单操作历史 func (m *Mongo) AddOplogOrder(ctx *gin.Context, doc *dbstruct.OplogOrder) error { col := m.getColOplogOrder(doc.OrderId) _, err := col.InsertOne(ctx, doc) return err } // 金币订单操作历史 func (m *Mongo) AddOplogCoinOrder(ctx *gin.Context, doc *dbstruct.OplogCoinOrder) error { col := m.getColOplogCoinOrder(doc.OrderId) _, err := col.InsertOne(ctx, doc) return err } // 用户增值信息 func (m *Mongo) GetUserVasInfoByMid(ctx *gin.Context, mid int64) (*dbstruct.UserVasInfo, error) { doc := new(dbstruct.UserVasInfo) col := m.getColUserVasInfo() query := qmgo.M{ "_id": mid, } err := col.Find(ctx, query).One(&doc) if err == qmgo.ErrNoSuchDocuments { err = nil return nil, nil } return doc, nil } func (m *Mongo) UpdateUserVasInfo(ctx *gin.Context, req *vasproto.UpdateWechatReq) error { col := m.getColUserVasInfo() _, err := col.Bulk().UpsertOne( qmgo.M{ "_id": req.Mid, }, qmgo.M{ operator.SetOnInsert: qmgo.M{ "ct": time.Now().Unix(), }, operator.Set: qmgo.M{ "wechat_lock_type": req.WechatLockType, "wechat_contact": req.WechatContact, "wechat_coin_price": req.WechatCoinPrice, "wechat_ut": time.Now().Unix(), }, }, ).Run(ctx) if err != nil { return err } return err }