46 lines
941 B
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
|
||
|
}
|