package dao import ( "github.com/gin-gonic/gin" "github.com/qiniu/qmgo" "github.com/qiniu/qmgo/operator" "service/dbstruct" ) const ( DBShare = "share" COLShareUrl = "share_url" ) // 商品表 func (m *Mongo) getColShareUrl() *qmgo.Collection { return m.clientMix.Database(DBShare).Collection(COLShareUrl) } // 获取有效的分享链接 func (m *Mongo) GetValidShareUrl(ctx *gin.Context) ([]*dbstruct.ShareUrl, error) { list := make([]*dbstruct.ShareUrl, 0) col := m.getColShareUrl() query := qmgo.M{ "status": dbstruct.ShareUrlStatusAvailable, } err := col.Find(ctx, query).All(&list) if err == qmgo.ErrNoSuchDocuments { err = nil return make([]*dbstruct.ShareUrl, 0), nil } if err != nil { return make([]*dbstruct.ShareUrl, 0), err } return list, nil } // 分享链接使用次数 +1 func (m *Mongo) IncShareUrlUseCnt(ctx *gin.Context, url string) error { col := m.getColShareUrl() up := qmgo.M{ operator.Inc: qmgo.M{ "use_cnt": 1, }, } err := col.UpdateId(ctx, url, up) if err == qmgo.ErrNoSuchDocuments { err = nil return nil } if err != nil { return err } return nil }