Files
work_cation/service/execFile.go
T

55 lines
1.1 KiB
Go

package service
import (
"encoding/json"
"gorm.io/gorm"
"os"
"path/filepath"
"work_cation/cfg"
"work_cation/global"
"work_cation/models"
"work_cation/pkg/utils"
"work_cation/repo"
)
type ExecFileService struct{}
var ExecFile = new(ExecFileService)
func (*ExecFileService) Create(info *models.ExecFiles, chooseDir string) error {
infoPath := filepath.Join(cfg.T.CardDir, info.UUID)
//if err := os.RemoveAll(infoPath); err != nil && !os.IsNotExist(err) {
// dialog.ShowInformation("删除失败", err.Error(), w)
// return
//}
if err := utils.File.CopyDir(chooseDir, infoPath); err != nil {
return err
}
fs, err := os.ReadDir(chooseDir)
if err != nil {
return err
}
for _, f := range fs {
info.Files = append(info.Files, f.Name())
}
jsonB, err := json.Marshal(info)
if err != nil {
return err
}
file, err := os.Create(filepath.Join(infoPath, cfg.T.CardInfo))
if err != nil {
return err
}
defer file.Close()
_, err = file.Write(jsonB)
if err != nil {
return err
}
return global.DB.Transaction(func(tx *gorm.DB) error {
var baseCard = info.BaseCard
return repo.BaseCard.Create(tx, &baseCard)
})
}