config.go 1.5 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
package serverService

import (
	"github.com/easysoft/zendata/src/model"
	"github.com/easysoft/zendata/src/server/repo"
	logUtils "github.com/easysoft/zendata/src/utils/log"
	stringUtils "github.com/easysoft/zendata/src/utils/string"
)

type ConfigService struct {
	configRepo *serverRepo.ConfigRepo
	resService *ResService
}

func (s *ConfigService) List() (list []*model.ZdConfig) {
	config := s.resService.LoadRes("config")
	list, _ = s.configRepo.List()

	s.saveResToDB(config, list)
	list, _ = s.configRepo.List()

	return
}

func (s *ConfigService) Get(id int) (config model.ZdConfig) {
	config, _ = s.configRepo.Get(uint(id))

	return
}

func (s *ConfigService) Save(config *model.ZdConfig) (err error) {
	err = s.configRepo.Save(config)

	return
}

func (s *ConfigService) Remove(id int) (err error) {
	err = s.configRepo.Remove(uint(id))
	if err != nil {
		return
	}

	config, _ := s.configRepo.Get(uint(id))
	logUtils.PrintTo(config.Path)
	//fileUtils.RemoveExist(config.Path)

	return
}

func (s *ConfigService) saveResToDB(config []model.ResFile, list []*model.ZdConfig) (err error) {
	names := make([]string, 0)
	for _, item := range list {
		names = append(names, item.Path)
	}

	for _, item := range config {
		if !stringUtils.FindInArrBool(item.Path, names) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
58
			config := model.ZdConfig{Title: item.Title, Name: item.Name, Desc: item.Desc, Field: item.Title, Path: item.Path, Note: item.Desc}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
59 60 61 62 63 64 65 66 67 68
			s.configRepo.Save(&config)
		}
	}

	return
}

func NewConfigService(configRepo *serverRepo.ConfigRepo) *ConfigService {
	return &ConfigService{configRepo: configRepo}
}