64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
|
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
|
||
|
}
|