Files
work_cation/service/baseCardService.go
T

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("完成 请去[我的]查看")
}