diff --git a/cmd/make.go b/cmd/make.go index bd0ee9b..4175bac 100644 --- a/cmd/make.go +++ b/cmd/make.go @@ -24,8 +24,9 @@ var ( {Name: "id", Short: "i", Brief: "活动id"}, {Name: "name", Short: "n", Brief: "服务文件名"}, }, - Examples: "make -m act -i 1: 创建活动1的接口与服务文件 \n" + - "make -m logic -n test: 创建test的服务文件", + Examples: "make -m act -i 1: 创建活动1的接口与服务文件 \n" + + "make -m logic -n test: 创建test的服务文件 \n" + + "make -m config -n test: 创建配置文件", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { //g.Dump(parser.GetOptAll(), parser.GetArgAll()) @@ -46,6 +47,12 @@ var ( return } err = this.Logic(name) + case "config": + var name = parser.GetOpt("name").String() + if name == "" { + return + } + err = this.Config(name) } return @@ -93,3 +100,19 @@ func (c *cMake) Logic(name string) (err error) { return } + +func (c *cMake) Config(name string) (err error) { + var filePath = fmt.Sprintf("utility/config/%s.go", name) + //生成文件不覆盖 + if !gfile.Exists(filePath) { + get, _ := fs.ReadFile(ConfigFiles, "make/config") + fileStr := string(get) + fileStr = gstr.Replace(fileStr, "{name}", gstr.CaseCamel(name)) + fileStr = gstr.Replace(fileStr, "{cfg}", gstr.CaseCamel(name)) + fileStr = gstr.Replace(fileStr, "{mod}", gstr.CaseCamelLower(name)) + fileStr = gstr.Replace(fileStr, "{file}", name) + err = gfile.PutContents(filePath, fileStr) + } + + return +} diff --git a/cmd/make/config b/cmd/make/config new file mode 100644 index 0000000..3b473f7 --- /dev/null +++ b/cmd/make/config @@ -0,0 +1,51 @@ +package config + +import ( + "github.com/ayflying/utility_go" + "github.com/gogf/gf/v2/util/gutil" + "sync" +) + +type {cfg}Cfg struct { + Id int32 `json:"id" dc:"编号"` +} + +type {mod}Mod struct { + once sync.Once + lock sync.Mutex + cfgArr []*{cfg}Cfg + cfgMap map[int32]*{cfg}Cfg +} + +var {name} = &{mod}Mod{} + +func (c *{mod}Mod) Load(_cfg ...string) { + c.lock.Lock() + defer c.lock.Unlock() + c.cfgArr = make([]*{cfg}Cfg, 0) + data, err := utility_go.Config.GetFile("{file}") + err = data.Scan(&c.cfgArr) + if err != nil { + panic(err) + } + + c.cfgMap = make(map[int32]*{cfg}Cfg) + for _, v := range c.cfgArr { + c.cfgMap[v.Id] = v + } +} + +func (c *{mod}Mod) List() []*{cfg}Cfg { + var list = make([]*{cfg}Cfg, len(c.cfgArr)) + for k, v := range c.cfgArr { + list[k] = c.Get(v.Id) + } + return list +} + +func (c *{mod}Mod) Get(id int32) *{cfg}Cfg { + if data, ok := c.cfgMap[id]; ok { + return gutil.Copy(data).(*{cfg}Cfg) + } + return nil +}