v1.0.0
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
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)
|
||||
|
||||
// }
|
||||
Reference in New Issue
Block a user