框架优化

This commit is contained in:
hoteas
2022-03-13 17:02:19 +08:00
parent e426c285b0
commit cb0bcdb2d1
8 changed files with 96 additions and 66 deletions
+35 -33
View File
@@ -256,8 +256,8 @@ func (that *Application) SetConfig(configPath ...string) {
}
// SetConnectListener 连接判断,返回true继续传输至控制层,false则停止传输
func (that *Application) SetConnectListener(lis func(that *Context) bool) {
// SetConnectListener 连接判断,返回false继续传输至控制层,true则停止传输
func (that *Application) SetConnectListener(lis func(that *Context) (isFinished bool)) {
that.connectListener = append(that.connectListener, lis)
}
@@ -358,14 +358,13 @@ func (that *Application) handler(w http.ResponseWriter, req *http.Request) {
//访问拦截true继续false暂停
connectListenerLen := len(that.connectListener)
if connectListenerLen != 0 {
for i := 0; i < connectListenerLen; i++ {
if !that.connectListener[i](&context) {
for i := connectListenerLen - 1; i > 0; i-- {
context.View()
return
}
if that.connectListener[i](&context) {
context.View()
return
}
}
@@ -532,7 +531,7 @@ func Init(config string) Application {
SetDB(&appIns)
appIns.SetCache()
codeConfig := appIns.Config.GetMap("codeConfig")
codeConfig := appIns.Config.GetSlice("codeConfig")
if codeConfig != nil {
@@ -541,10 +540,15 @@ func Init(config string) Application {
if codeMake == nil {
continue
}
codeMake["table"] = k
//codeMake["table"] = k
if appIns.MakeCodeRouter == nil {
appIns.MakeCodeRouter = map[string]*code.MakeCode{}
}
if codeMake.GetString("name") == "" {
codeMake["name"] = codeMake.GetString("table")
}
if appIns.Config.GetInt("mode") > 0 {
appIns.MakeCodeRouter[codeMake.GetString("name")] = &code.MakeCode{}
appIns.MakeCodeRouter[codeMake.GetString("name")].Db2JSON(&appIns.Db, codeMake)
@@ -557,10 +561,6 @@ func Init(config string) Application {
appIns.Router = Router{}
}
if codeMake.GetString("name") == "" {
codeMake["name"] = k
}
appIns.Router[codeMake.GetString("name")] = TptProject
for k1, _ := range appIns.MakeCodeRouter[codeMake.GetString("name")].TableColumns {
appIns.Router[codeMake.GetString("name")][k1] = appIns.Router[codeMake.GetString("name")]["hotimeCommon"]
@@ -633,35 +633,36 @@ func SetSqliteDB(appIns *Application, config Map) {
}
func setMakeCodeLintener(name string, appIns *Application) {
appIns.SetConnectListener(func(context *Context) bool {
appIns.SetConnectListener(func(context *Context) (isFinished bool) {
if len(context.RouterString) < 2 || appIns.MakeCodeRouter[context.RouterString[0]] == nil {
return true
return isFinished
}
codeIns := appIns.MakeCodeRouter[name]
if len(context.RouterString) > 1 && context.RouterString[0] == name {
if context.RouterString[1] == "hotime" && context.RouterString[2] == "login" {
return true
return isFinished
}
if context.RouterString[1] == "hotime" && context.RouterString[2] == "logout" {
return true
return isFinished
}
if context.Session(name+"_id").Data == nil {
if context.Session(codeIns.FileConfig.GetString("table")+"_id").Data == nil {
context.Display(2, "你还没有登录")
return false
return true
}
}
//文件上传接口
if len(context.RouterString) == 1 && context.RouterString[0] == "file" && context.Req.Method == "POST" {
if context.Session(name+"_id").Data == nil {
if context.Session(codeIns.FileConfig.GetString("table")+"_id").Data == nil {
context.Display(2, "你还没有登录")
return false
return true
}
//读取网络文件
fi, fheader, err := context.Req.FormFile("file")
if err != nil {
context.Display(3, err)
return false
return true
}
filePath := context.Config.GetString("filePath")
@@ -673,43 +674,43 @@ func setMakeCodeLintener(name string, appIns *Application) {
e := os.MkdirAll(context.Config.GetString("tpt")+"/"+path, os.ModeDir)
if e != nil {
context.Display(3, e)
return false
return true
}
filePath = path + Md5(ObjToStr(RandX(100000, 9999999))) + fheader.Filename[strings.LastIndex(fheader.Filename, "."):]
newFile, e := os.Create(context.Config.GetString("tpt") + "/" + filePath)
if e != nil {
context.Display(3, e)
return false
return true
}
_, e = io.Copy(newFile, fi)
if e != nil {
context.Display(3, e)
return false
return true
}
context.Display(0, filePath)
return false
return true
}
if len(context.RouterString) < 2 || len(context.RouterString) > 3 ||
!(context.Router[context.RouterString[0]] != nil &&
context.Router[context.RouterString[0]][context.RouterString[1]] != nil) {
return true
return isFinished
}
//排除无效操作
if len(context.RouterString) == 2 &&
context.Req.Method != "GET" &&
context.Req.Method != "POST" {
return true
return isFinished
}
//列表检索
if len(context.RouterString) == 2 &&
context.Req.Method == "GET" {
if context.Router[context.RouterString[0]][context.RouterString[1]]["search"] == nil {
return true
return isFinished
}
context.Router[context.RouterString[0]][context.RouterString[1]]["search"](context)
}
@@ -723,14 +724,14 @@ func setMakeCodeLintener(name string, appIns *Application) {
}
if len(context.RouterString) == 3 &&
context.Req.Method == "POST" {
return true
return isFinished
}
//查询单条
if len(context.RouterString) == 3 &&
context.Req.Method == "GET" {
if context.Router[context.RouterString[0]][context.RouterString[1]]["info"] == nil {
return true
return isFinished
}
context.Router[context.RouterString[0]][context.RouterString[1]]["info"](context)
@@ -755,7 +756,8 @@ func setMakeCodeLintener(name string, appIns *Application) {
context.Router[context.RouterString[0]][context.RouterString[1]]["remove"](context)
}
context.View()
return false
return true
})
}