Browse Source

add dataset download_times

tags/v1.21.12.1
e 5 years ago
parent
commit
47361736b1
2 changed files with 44 additions and 3 deletions
  1. +28
    -0
      models/dataset.go
  2. +16
    -3
      routers/repo/attachment.go

+ 28
- 0
models/dataset.go View File

@@ -290,3 +290,31 @@ func GetOwnerDatasetByID(id int64, user *User) (*Dataset, error) {
}
return nil, errors.New("dataset not fount")
}

func IncreaseDownloadCount(datasetID int64, uid int64) error {
var err error
sess := x.NewSession()
defer sess.Close()
if err = sess.Begin(); err != nil {
return err
}

dataset := &Dataset{ID: datasetID, UserID: uid}
has, err := sess.Get(dataset)
if err != nil {
return err
} else if !has {
return errors.New("not found")
}

// Update download count.
if _, err := sess.Exec("UPDATE `dataset` SET download_times=download_times+1 WHERE id=?", datasetID); err != nil {
return fmt.Errorf("increase dataset count: %v", err)
}

if err = sess.Commit(); err != nil {
sess.Close()
return fmt.Errorf("Commit: %v", err)
}
return nil
}

+ 16
- 3
routers/repo/attachment.go View File

@@ -153,7 +153,7 @@ func GetAttachment(ctx *context.Context) {
return
}

if err := attach.IncreaseDownloadCount(); err != nil {
if err = increaseDownloadCount(attach, dataSet); err != nil {
ctx.ServerError("Update", err)
return
}
@@ -168,11 +168,10 @@ func GetAttachment(ctx *context.Context) {
}
defer fr.Close()

if err := attach.IncreaseDownloadCount(); err != nil {
if err = increaseDownloadCount(attach, dataSet); err != nil {
ctx.ServerError("Update", err)
return
}

if err = ServeData(ctx, attach.Name, fr); err != nil {
ctx.ServerError("ServeData", err)
return
@@ -180,3 +179,17 @@ func GetAttachment(ctx *context.Context) {
}

}

func increaseDownloadCount(attach *models.Attachment, dataSet *models.Dataset) error{
if err := attach.IncreaseDownloadCount(); err != nil {
return err
}

if dataSet != nil {
if err := models.IncreaseDownloadCount(dataSet.ID, dataSet.UserID); err != nil {
return err
}
}

return nil
}

Loading…
Cancel
Save