zwpanel/service/lib/jsonConfig/configModel.go
2023-11-08 21:53:07 +08:00

102 lines
2.6 KiB
Go

package jsonConfig
import (
"encoding/json"
"github.com/gin-gonic/gin"
)
type JsonConfiger interface {
GetImportData() error
// ExportFile()
}
type ConfigModel struct {
AppName string `json:"AppName"`
Ability string `json:"Ability"`
Version string `json:"Version"`
AbilityVersion string `json:"AbilityVersion"`
AppAllowLowVersion string `json:"AppAllowLowVersion"`
Data interface{} `json:"Data"`
}
var expoprtSuffix = ".lcn.json"
const (
ABILITY_MODE_EVENT_STYLE = "EventStyle" // 时间风格
ABILITY_MODE_SPECIAL_DAY = "SpecialDay" // 特殊的日期
)
// 生成输出文件
func BuildExportFile(cfgModel *ConfigModel) ([]byte, error) {
content, err := json.Marshal(cfgModel)
return content, err
}
func Write(ctx *gin.Context, fileName string, content []byte) {
ctx.Writer.Header().Add("Content-Type", "application/octet-stream")
ctx.Writer.Header().Add("Content-disposition", "attachment;filename="+fileName+expoprtSuffix)
ctx.Writer.Header().Add("Content-Transfer-Encoding", "binary")
ctx.Writer.Write(content)
}
func GetImportData(JsonConfiger) {
}
func NewConfigModel(ability, abilityVersion string) *ConfigModel {
return &ConfigModel{
AppName: "Li-Calendar",
Version: "1",
AppAllowLowVersion: "1",
Ability: ability,
AbilityVersion: abilityVersion,
}
}
// 验证配置模型数据是否相同
func ConfigModelCheck(data *ConfigModel, ability, abilityVersion string) bool {
newData := NewConfigModel(ability, abilityVersion)
if *data != *newData {
return false
}
return true
}
// func InportConfigFile(f multipart.FileHeader, eventStyle EventStyleModel) (EventStyleModel, error) {
// src, err := f.Open()
// defer src.Close()
// if err != nil {
// return err
// }
// contentByte, err := ioutil.ReadAll(src)
// if err != nil {
// return err
// }
// configFile := ConfigModel{}
// if err := json.Unmarshal(contentByte, &configFile); err != nil {
// return err
// }
// v, ok := configFile.Data.(EventStyleModel)
// return errors.New("格式")
// if !ok {
// return errors.New("格式错误")
// }
// if err := json.Unmarshal(contentByte, &configFile); err != nil {
// return err
// }
// fileExt := strings.ToLower(path.Ext(f.Filename))
// fileName := cmn.Md5(fmt.Sprintf("%s%s", f.Filename, time.Now().String()))
// fildDir := fmt.Sprintf("%s/%d/%d/%d/", configUpload, time.Now().Year(), time.Now().Month(), time.Now().Day())
// isExist, _ := cmn.PathExists(fildDir)
// if !isExist {
// os.MkdirAll(fildDir, os.ModePerm)
// }
// filepath := fmt.Sprintf("%s%s%s", fildDir, fileName, fileExt)
// }