service/app/mix/dao/mongo_share.go

46 lines
941 B
Go

package dao
import (
"github.com/gin-gonic/gin"
"github.com/qiniu/qmgo"
"github.com/qiniu/qmgo/operator"
"service/dbstruct"
)
// 获取有效的分享链接
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
}