This commit is contained in:
孟帅
2023-09-06 17:28:16 +08:00
parent 9fa670e5c3
commit 5670aa9c82
22 changed files with 156 additions and 127 deletions

View File

@@ -8,11 +8,12 @@ package consts
// 碎片
const (
DemoTips = "演示系统已隐藏" // 演示系统敏感数据打码
NilJsonToString = "{}" // 空json初始化值
RegionSpilt = " / " // 地区分隔符
Unknown = "Unknown" // Unknown
SuperRoleKey = "super" // 超管角色唯一标识符,通过角色验证超管
DemoTips = "演示系统已隐藏" // 演示系统敏感数据打码
NilJsonToString = "{}" // 空json初始化值
RegionSpilt = " / " // 地区分隔符
Unknown = "Unknown" // Unknown
SuperRoleKey = "super" // 超管角色唯一标识符,通过角色验证超管
MaxServeLogContentLen = 2048 // 最大保留服务日志内容大小
)
// curd.

View File

@@ -7,5 +7,5 @@ package consts
// VersionApp HotGo版本
const (
VersionApp = "2.8.4"
VersionApp = "2.8.9"
)

View File

@@ -93,20 +93,20 @@ func LoggingServeLogHandler(ctx context.Context, in *glog.HandlerInput) {
var data entity.SysServeLog
data.TraceId = gctx.CtxId(ctx)
data.LevelFormat = in.LevelFormat
data.Content = in.Content
data.Content = gstr.StrLimit(in.Content, consts.MaxServeLogContentLen)
data.Stack = gjson.New(charset.ParseStack(in.Stack))
data.Line = strings.TrimRight(in.CallerPath, ":")
data.TriggerNs = in.Time.UnixNano()
data.Status = consts.StatusEnabled
if data.Stack.IsNil() {
data.Stack = gjson.New(consts.NilJsonToString)
}
if gstr.Contains(in.Content, `exception recovered`) {
data.LevelFormat = "PANI"
}
if data.Stack.IsNil() {
data.Stack = gjson.New(consts.NilJsonToString)
}
if conf.Queue {
err = queue.Push(consts.QueueServeLogTopic, data)
} else {
@@ -115,7 +115,7 @@ func LoggingServeLogHandler(ctx context.Context, in *glog.HandlerInput) {
})
if err != nil {
g.Dump("LoggingServeLogHandler err:%+v", err)
g.Dump("LoggingServeLogHandler err:", err)
}
}

View File

@@ -165,11 +165,12 @@ func (l *gCurd) loadView(ctx context.Context, in *CurdPreviewInput) (err error)
return
}
now := gtime.Now()
view.BindFuncMap(g.Map{
"NowYear": gtime.Now().Year, // 当前年
"ToLower": strings.ToLower, // 全部小写
"LcFirst": gstr.LcFirst, // 首字母小写
"UcFirst": gstr.UcFirst, // 首字母大写
"NowYear": now.Year, // 当前年
"ToLower": strings.ToLower, // 全部小写
"LcFirst": gstr.LcFirst, // 首字母小写
"UcFirst": gstr.UcFirst, // 首字母大写
})
dictOptions, err := l.generateWebModelDictOptions(ctx, in)
@@ -199,10 +200,11 @@ func (l *gCurd) loadView(ctx context.Context, in *CurdPreviewInput) (err error)
componentPrefix = "addons/" + in.In.AddonName + "/" + componentPrefix
}
nowTime := now.Format("Y-m-d H:i:s")
view.Assigns(gview.Params{
"templateGroup": in.options.TemplateGroup, // 生成模板分组名称
"servFunName": l.parseServFunName(in.options.TemplateGroup, in.In.VarName), // 业务服务名称
"nowTime": gtime.Now().Format("Y-m-d H:i:s"), // 当前时间
"nowTime": nowTime, // 当前时间
"version": runtime.Version(), // GO 版本
"hgVersion": consts.VersionApp, // HG 版本
"varName": in.In.VarName, // 实体名称
@@ -220,6 +222,7 @@ func (l *gCurd) loadView(ctx context.Context, in *CurdPreviewInput) (err error)
"apiPrefix": in.options.ApiPrefix, // api前缀
"componentPrefix": componentPrefix, // vue子组件前缀
})
in.view = view
return
}
@@ -241,25 +244,42 @@ func (l *gCurd) DoBuild(ctx context.Context, in *CurdBuildInput) (err error) {
}
}
var needExecSql bool
for _, vi := range preview.Views {
// 处理sql文件
handleSqlFile := func(vi *sysin.GenFile) (err error) {
// 无需生成
if vi.Meth != consts.GenCodesBuildMethCreate && vi.Meth != consts.GenCodesBuildMethCover {
continue
}
if gstr.Str(vi.Path, `.`) == ".sql" && !gfile.Exists(vi.Path) {
needExecSql = true
return
}
if err = gfile.PutContents(vi.Path, strings.TrimSpace(vi.Content)); err != nil {
return gerror.Newf("writing content to '%s' failed: %v", vi.Path, err)
}
if gstr.Str(vi.Path, `.`) == ".sql" && needExecSql {
if err = ImportSql(ctx, vi.Path); err != nil {
return err
}
// 导入失败将sql文件删除
if err = ImportSql(ctx, vi.Path); err != nil {
_ = gfile.Remove(vi.Path)
}
return
}
// 将sql文件提取出来优先处理
// sql执行过程出错是高概率事件后期在执行前要进行预效验尽量减少在执行过程中出错的可能性
sqlGenFile, ok := preview.Views["source.sql"]
if ok {
delete(preview.Views, "source.sql")
if err = handleSqlFile(sqlGenFile); err != nil {
return
}
}
for _, vi := range preview.Views {
// 无需生成
if vi.Meth != consts.GenCodesBuildMethCreate && vi.Meth != consts.GenCodesBuildMethCover {
continue
}
if err = gfile.PutContents(vi.Path, strings.TrimSpace(vi.Content)); err != nil {
return gerror.Newf("writing content to '%s' failed: %v", vi.Path, err)
}
if gstr.Str(vi.Path, `.`) == ".go" {
@@ -400,7 +420,7 @@ func (l *gCurd) generateInputContent(ctx context.Context, in *CurdPreviewInput)
func (l *gCurd) generateControllerContent(ctx context.Context, in *CurdPreviewInput) (err error) {
var (
name = "controller.go"
tplData = g.Map{"name": "test generateControllerContent..."}
tplData = g.Map{}
genFile = new(sysin.GenFile)
)

View File

@@ -28,6 +28,10 @@ func (server *Server) startCron() {
// 心跳超时检查
if gcron.Search(server.getCronKey(CronHeartbeatVerify)) == nil {
_, _ = gcron.AddSingleton(server.ctx, "@every 300s", func(ctx context.Context) {
server.mutexConns.Lock()
defer server.mutexConns.Unlock()
if server == nil || server.clients == nil {
return
}
@@ -43,6 +47,10 @@ func (server *Server) startCron() {
// 认证检查
if gcron.Search(server.getCronKey(CronAuthVerify)) == nil {
_, _ = gcron.AddSingleton(server.ctx, "@every 300s", func(ctx context.Context) {
server.mutexConns.Lock()
defer server.mutexConns.Unlock()
if server == nil || server.clients == nil {
return
}

View File

@@ -153,12 +153,16 @@ func (s *sSysDictData) Select(ctx context.Context, in *sysin.DataSelectInp) (lis
if err = mod.Order("sort asc,id desc").Scan(&list); err != nil {
err = gerror.Wrap(err, consts.ErrorORM)
return list, err
return
}
for k, v := range list {
list[k].Value = consts.ConvType(v.Value, v.ValueType)
list[k].Key = list[k].Value
}
return list, err
if len(list) == 0 {
list = make(sysin.DataSelectModel, 0)
}
return
}

View File

@@ -160,7 +160,7 @@ type ProvincesSelectData struct {
Label string `json:"label" description:"地区名称"`
Value int64 `json:"value" description:"地区ID"`
Level int `json:"level" description:"地区等级"`
IsLeaf bool `json:"isLeaf" description:"是否还有下一级"`
IsLeaf bool `json:"isLeaf" description:"是否是最后一个节点"`
}
// ProvincesCityLabelInp 获取指定城市标签

View File

@@ -33,12 +33,12 @@ func (q *qServeLog) GetTopic() string {
func (q *qServeLog) Handle(ctx context.Context, mqMsg queue.MqMsg) error {
var data entity.SysServeLog
if err := json.Unmarshal(mqMsg.Body, &data); err != nil {
g.Dump("ServeLog Handle Unmarshal err:%+v", err)
g.Dump("ServeLog Handle Unmarshal err:", err)
return nil
}
if err := service.SysServeLog().RealWrite(ctx, data); err != nil {
g.Dump("ServeLog Handle Write err:%+v", err)
g.Dump("ServeLog Handle Write err:", err)
return nil
}
return nil