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.CreateOrSave(tx, &baseCard) }) }