diff --git a/common/cool/initdb.go b/common/cool/initdb.go index 56288f9ef..6d49caf1b 100644 --- a/common/cool/initdb.go +++ b/common/cool/initdb.go @@ -61,33 +61,37 @@ func CreateTable(model IModel) error { } // FillInitData 数据库填充初始数据 -func FillInitData(ctx g.Ctx, moduleName string, model IModel) error { +func FillInitData(ctx g.Ctx, moduleName string, model IModel, ismod *bool) (bool, error) { mInit := g.DB("default").Model("base_sys_init") n, err := mInit.Clone().Where("group", model.GroupName()).Where("table", model.TableName()).Count() if err != nil { g.Log().Error(ctx, "读取表 base_sys_init 失败 ", err.Error()) - return err + return false, err } if n > 0 { g.Log().Debug(ctx, "分组", model.GroupName(), "中的表", model.TableName(), "已经初始化过,跳过本次初始化.") - return nil + return false, err } m := g.DB(model.GroupName()).Model(model.TableName()) jsonData, _ := gjson.LoadContent(gres.GetContent("modules/" + moduleName + "/resource/initjson/" + model.TableName() + ".json")) if jsonData.Var().Clone().IsEmpty() { g.Log().Debug(ctx, "分组", model.GroupName(), "中的表", model.TableName(), "无可用的初始化数据,跳过本次初始化.") - return nil + return false, err } _, err = m.Data(jsonData).Insert() if err != nil { g.Log().Error(ctx, err.Error()) - return err + return false, err } _, err = mInit.Insert(g.Map{"group": model.GroupName(), "table": model.TableName()}) if err != nil { g.Log().Error(ctx, err.Error()) - return err + return false, err } g.Log().Info(ctx, "分组", model.GroupName(), "中的表", model.TableName(), "初始化完成.") - return nil + if ismod != nil { + *ismod = true + } + + return true, err } diff --git a/login/internal/cmd/cmd.go b/login/internal/cmd/cmd.go index 442b233d3..472f39c75 100644 --- a/login/internal/cmd/cmd.go +++ b/login/internal/cmd/cmd.go @@ -12,7 +12,6 @@ import ( "github.com/gogf/gf/v2/net/ghttp" "github.com/gogf/gf/v2/os/gcmd" "github.com/gogf/gf/v2/os/gfile" - "github.com/gogf/gf/v2/os/glog" ) var ( @@ -46,6 +45,6 @@ var ( ) func beforeServeHook(r *ghttp.Request) { - glog.Debugf(r.GetCtx(), "beforeServeHook [is file:%v] URI:%s", r.IsFileRequest(), r.RequestURI) + //glog.Debugf(r.GetCtx(), "beforeServeHook [is file:%v] URI:%s", r.IsFileRequest(), r.RequestURI) r.Response.CORSDefault() } diff --git a/modules/base/base.go b/modules/base/base.go index b0722b526..706aba324 100644 --- a/modules/base/base.go +++ b/modules/base/base.go @@ -17,23 +17,36 @@ import ( "github.com/gogf/gf/v2/util/gconv" ) +// trueVal: 条件为 true 时返回的值 +// falseVal: 条件为 false 时返回的值 +// 返回值类型与 trueVal、falseVal 一致(需保证两者类型相同) +func If[T any](condition bool, trueVal, falseVal T) T { + if condition { + return trueVal + } + return falseVal +} + func init() { var ( ctx = gctx.GetInitCtx() ) g.Log().Debug(ctx, "module base init start ...") + var t bool + cool.FillInitData(ctx, "base", &model.BaseSysMenu{}, &t) + + cool.FillInitData(ctx, "base", &model.BaseSysUser{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysUserRole{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysRole{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysRoleMenu{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysDepartment{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysRoleDepartment{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysParam{}, &t) + cool.FillInitData(ctx, "base", &model.BaseSysConf{}, &t) + if t { + ResetAllSequences(ctx) + } - cool.FillInitData(ctx, "base", &model.BaseSysMenu{}) - //fmt.Println(err) - cool.FillInitData(ctx, "base", &model.BaseSysUser{}) - cool.FillInitData(ctx, "base", &model.BaseSysUserRole{}) - cool.FillInitData(ctx, "base", &model.BaseSysRole{}) - cool.FillInitData(ctx, "base", &model.BaseSysRoleMenu{}) - cool.FillInitData(ctx, "base", &model.BaseSysDepartment{}) - cool.FillInitData(ctx, "base", &model.BaseSysRoleDepartment{}) - cool.FillInitData(ctx, "base", &model.BaseSysParam{}) - cool.FillInitData(ctx, "base", &model.BaseSysConf{}) - ResetAllSequences(ctx) // g.DB("default").Exec(context.Background(), `CREATE OR REPLACE FUNCTION reset_all_sequences() // RETURNS void AS $$ // DECLARE diff --git a/modules/base/middleware/websocket.go b/modules/base/middleware/websocket.go index b92e5c007..ad18d95e1 100644 --- a/modules/base/middleware/websocket.go +++ b/modules/base/middleware/websocket.go @@ -43,7 +43,7 @@ func (c *Handler) OnOpen(socket *gws.Conn) { packlen, err := reader.Peek(4) if err != nil { - + socket.WriteClose(1000, nil) break LOOP } @@ -64,6 +64,7 @@ func (c *Handler) OnOpen(socket *gws.Conn) { //err = <-errChan if err != io.EOF { log.Println("proxy error:", err) + } } diff --git a/modules/dict/dict.go b/modules/dict/dict.go index f02230c6c..42b5b2832 100644 --- a/modules/dict/dict.go +++ b/modules/dict/dict.go @@ -17,7 +17,7 @@ func init() { ctx = gctx.GetInitCtx() ) g.Log().Debug(ctx, "module dict init start ...") - cool.FillInitData(ctx, "dict", &model.DictInfo{}) - cool.FillInitData(ctx, "dict", &model.DictType{}) + cool.FillInitData(ctx, "dict", &model.DictInfo{}, nil) + cool.FillInitData(ctx, "dict", &model.DictType{}, nil) g.Log().Debug(ctx, "module dict init finished ...") } diff --git a/modules/task/task.go b/modules/task/task.go index 8a1ecab5a..90726a00c 100644 --- a/modules/task/task.go +++ b/modules/task/task.go @@ -20,7 +20,7 @@ func init() { ctx = gctx.GetInitCtx() ) g.Log().Debug(ctx, "module task init start ...") - cool.FillInitData(ctx, "task", taskInfo) + cool.FillInitData(ctx, "task", taskInfo, nil) result, err := cool.DBM(taskInfo).Where("status", 1).All() if err != nil {