Compare commits

...

2 Commits

Author SHA1 Message Date
ayflying
8c6be6f487 make方法增加创建配置文件 2025-02-26 16:09:08 +08:00
ayflying
915d474fea 格式导表兼容冒号 2025-02-26 12:21:18 +08:00
4 changed files with 83 additions and 4 deletions

View File

@@ -25,7 +25,8 @@ var (
{Name: "name", Short: "n", Brief: "服务文件名"},
},
Examples: "make -m act -i 1: 创建活动1的接口与服务文件 \n" +
"make -m logic -n test: 创建test的服务文件",
"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
}

51
cmd/make/config Normal file
View File

@@ -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
}

View File

@@ -16,6 +16,10 @@ import (
"time"
)
var (
shadiao = []string{",", ":"}
)
type FileItem struct {
Name string `json:"name" dc:"配置文件名"`
Filename string `json:"filename" dc:"文件名"`
@@ -131,7 +135,6 @@ func (s *Excel) sliceFormat(list []interface{}, Slice map[string]string) []inter
list[k2].(g.Map)[k3] = []string{}
continue
}
var parts []string
//断言是否成功
if get, ok := v3.(string); !ok {
@@ -139,6 +142,9 @@ func (s *Excel) sliceFormat(list []interface{}, Slice map[string]string) []inter
parts = []string{gconv.String(v3)}
continue
} else {
for _, v := range shadiao {
get = strings.ReplaceAll(get, v, "|")
}
parts = strings.Split(get, "|") // 分割字符串
}

View File

@@ -27,7 +27,6 @@ func Excel2Slice(filePath string, _sheet ...string) [][]string {
// 字符串转道具类型
func Spilt2Item(str string) (result [][]int64) {
var shadiao = []string{","}
for _, v := range shadiao {
str = strings.ReplaceAll(str, v, "|")
//parts = append(parts, strings.Split(str, v)...) // 分割字符串