61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package service
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/data/binding"
|
|
"fyne.io/fyne/v2/dialog"
|
|
"fyne.io/fyne/v2/widget"
|
|
"gorm.io/gorm"
|
|
"os"
|
|
"path/filepath"
|
|
"work_cation/cfg"
|
|
"work_cation/global"
|
|
"work_cation/models"
|
|
"work_cation/repo"
|
|
)
|
|
|
|
type BaseCardService struct{}
|
|
|
|
var BaseCard = &BaseCardService{}
|
|
|
|
func (*BaseCardService) Create(db *gorm.DB, baseCard models.BaseCard) {
|
|
repo.BaseCard.CreateOrSave(db, &baseCard)
|
|
}
|
|
|
|
func (*BaseCardService) Update(db *gorm.DB, updateCard models.BaseCard) {
|
|
|
|
}
|
|
|
|
func (*BaseCardService) Delete(db *gorm.DB, deleteCard models.BaseCard) error {
|
|
fileDir := filepath.Join(cfg.T.CardDir, deleteCard.UUID)
|
|
err := os.RemoveAll(fileDir)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = db.Model(&models.BaseCard{}).Where("uuid = ?", deleteCard.UUID).Delete(&deleteCard).Error
|
|
return err
|
|
}
|
|
|
|
func (*BaseCardService) DownloadCard(w fyne.Window, baseCardCopy models.BaseCard, online *models.Online) {
|
|
progress := binding.NewFloat()
|
|
progress.Set(0)
|
|
progressBar := widget.NewProgressBarWithData(progress)
|
|
progressBar.Max = 120
|
|
smaillWin := dialog.NewCustom("下载中", "关闭", progressBar, w)
|
|
smaillWin.Show()
|
|
err := Client.Download(online, baseCardCopy.UUID, progress)
|
|
if err != nil {
|
|
smaillWin.SetDismissText("失败")
|
|
return
|
|
}
|
|
// 修改数据
|
|
progress.Set(110)
|
|
err = repo.BaseCard.CreateOrSave(global.DB, &baseCardCopy)
|
|
if err != nil {
|
|
smaillWin.SetDismissText("失败")
|
|
return
|
|
}
|
|
progress.Set(120)
|
|
smaillWin.SetDismissText("完成 请去[我的]查看")
|
|
}
|