52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package service
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"path/filepath"
|
|
"work_cation/cfg"
|
|
"work_cation/global"
|
|
"work_cation/models"
|
|
"work_cation/repo"
|
|
)
|
|
|
|
type ErlangCardService struct{}
|
|
|
|
var ErlangCard = &ErlangCardService{}
|
|
|
|
func (*ErlangCardService) Create(erlangCard *models.ErlangCards) error {
|
|
err := os.Mkdir(filepath.Join(cfg.T.CardDir, erlangCard.UUID), os.ModeDir)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
info, err := os.Create(filepath.Join(cfg.T.CardDir, erlangCard.UUID, cfg.T.CardInfo))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
jsonB, err := json.Marshal(erlangCard)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
_, err = info.Write(jsonB)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = repo.ErlangCardRepo.Create(global.DB, erlangCard)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (*ErlangCardService) GetInfoPath(erlangCard *models.ErlangCards) string {
|
|
return filepath.Join(cfg.T.CardDir, erlangCard.UUID, cfg.T.CardInfo)
|
|
}
|
|
|
|
func (*ErlangCardService) GetImageDir(erlangCard *models.ErlangCards) []string {
|
|
var coverPaths []string
|
|
for _, cover := range erlangCard.Covers {
|
|
coverPaths = append(coverPaths, filepath.Join(cfg.T.CardDir, erlangCard.UUID, cover))
|
|
}
|
|
return coverPaths
|
|
}
|