diff --git a/code/base-project/base-go/.idea/base-farmework.iml b/code/base-project/base-go/.idea/base-go.iml
similarity index 100%
rename from code/base-project/base-go/.idea/base-farmework.iml
rename to code/base-project/base-go/.idea/base-go.iml
diff --git a/code/base-project/base-go/.idea/modules.xml b/code/base-project/base-go/.idea/modules.xml
index 76f5c7d8..3fa67754 100644
--- a/code/base-project/base-go/.idea/modules.xml
+++ b/code/base-project/base-go/.idea/modules.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/code/base-project/base-go/pkg/middleware/logger.go b/code/base-project/base-go/pkg/middleware/logger.go
index ac703de9..2f74ae3b 100644
--- a/code/base-project/base-go/pkg/middleware/logger.go
+++ b/code/base-project/base-go/pkg/middleware/logger.go
@@ -5,12 +5,35 @@ import (
"base-framework/pkg/router"
"base-framework/pkg/routinex"
"base-framework/pkg/utils/uid"
+ "time"
)
+// TrackTime 记录开始时间到现在时间的耗时
+func TrackTime(pre time.Time) time.Duration {
+ elapsed := time.Since(pre)
+
+ return elapsed
+}
+
func Logger() router.HandlerFunc {
return func(c *router.Context) {
- routinex.Set(logx.TrackID, uid.NextID())
+ start := time.Now() // 记录开始时间
- c.Next()
+ // 生成 trackID 并存入 routinex
+ trackID := uid.NextID()
+ routinex.Set(logx.TrackID, trackID)
+
+ c.Next() // 执行业务逻辑
+
+ // 请求结束后计算耗时
+ elapsed := TrackTime(start)
+
+ logx.Logger.Info("请求结束",
+ logx.String("logType", "request"),
+ logx.Uint64("trackID", trackID),
+ logx.String("path", c.Request.URL.Path),
+ logx.String("method", c.Request.Method),
+ logx.Duration("elapsed", elapsed),
+ )
}
}
diff --git a/code/base-project/base-go/pkg/routinex/routinex.go b/code/base-project/base-go/pkg/routinex/routinex.go
index b687b03c..6793a035 100644
--- a/code/base-project/base-go/pkg/routinex/routinex.go
+++ b/code/base-project/base-go/pkg/routinex/routinex.go
@@ -1,3 +1,7 @@
+/**
+保证多routine共用同一数据
+*/
+
package routinex
import (
@@ -7,7 +11,7 @@ import (
"sync"
)
-// ------------------- goroutine id -------------------
+// CurGID 获取 routine 的id
func CurGID() uint64 {
var buf [64]byte
n := runtime.Stack(buf[:], false)
@@ -25,6 +29,7 @@ var (
instanceOnce sync.Once
)
+// GetInstance 获取当前示例
func GetInstance() *RoutineLocal {
instanceOnce.Do(func() {
instance = &RoutineLocal{}
@@ -57,7 +62,7 @@ func Clear() {
GetInstance().data.Delete(CurGID())
}
-// Go 封装函数,自动继承父 goroutine 数据
+// Go 自动继承父 goroutine 数据,多 routine 的时候需要使用
func Go(f func()) {
parentGID := CurGID()
parentData, _ := GetInstance().data.Load(parentGID)
diff --git a/code/base-project/base-vue/test.html b/code/base-project/base-vue/test.html
index f85ee93a..904443c2 100644
--- a/code/base-project/base-vue/test.html
+++ b/code/base-project/base-vue/test.html
@@ -1,103 +1,109 @@
-
+
-
-
- Material ui 水波纹效果
-
-
-
+
+
+ 后台按钮渐深点击升级版
+
-
-
-
+
+
+
+
-
-
+ })
+
+
diff --git a/code/go-project/base-farmework/.idea/vcs.xml b/code/go-project/base-farmework/.idea/vcs.xml
new file mode 100644
index 00000000..c2365ab1
--- /dev/null
+++ b/code/go-project/base-farmework/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/code/go-project/base-farmework/.idea/workspace.xml b/code/go-project/base-farmework/.idea/workspace.xml
index 53b3ab30..65206bbd 100644
--- a/code/go-project/base-farmework/.idea/workspace.xml
+++ b/code/go-project/base-farmework/.idea/workspace.xml
@@ -4,7 +4,9 @@
-
+
+
+
@@ -32,26 +34,29 @@
-
{
- "keyToString": {
- "DefaultGoTemplateProperty": "Go File",
- "Go Build.go build base-framework/cmd/app.executor": "Run",
- "RunOnceActivity.ShowReadmeOnStart": "true",
- "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
- "RunOnceActivity.git.unshallow": "true",
- "RunOnceActivity.go.formatter.settings.were.checked": "true",
- "RunOnceActivity.go.migrated.go.modules.settings": "true",
- "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
- "git-widget-placeholder": "master",
- "go.import.settings.migrated": "true",
- "ignore.virus.scanning.warn.message": "true",
- "last_opened_file_path": "C:/Users/oneao",
- "node.js.detected.package.eslint": "true",
- "node.js.selected.package.eslint": "(autodetect)",
- "nodejs_package_manager_path": "npm",
- "settings.editor.selected.configurable": "com.goide.configuration.GoLibrariesConfigurableProvider"
+
+}]]>
@@ -81,8 +86,8 @@
-
-
+
+
diff --git a/code/go-project/demo-project/.idea/.gitignore b/code/go-project/demo-project/.idea/.gitignore
new file mode 100644
index 00000000..13566b81
--- /dev/null
+++ b/code/go-project/demo-project/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/code/go-project/demo-project/.idea/demo-project.iml b/code/go-project/demo-project/.idea/demo-project.iml
new file mode 100644
index 00000000..5e764c4f
--- /dev/null
+++ b/code/go-project/demo-project/.idea/demo-project.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/code/go-project/demo-project/.idea/modules.xml b/code/go-project/demo-project/.idea/modules.xml
new file mode 100644
index 00000000..298418bb
--- /dev/null
+++ b/code/go-project/demo-project/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/code/go-project/demo-project/.idea/vcs.xml b/code/go-project/demo-project/.idea/vcs.xml
new file mode 100644
index 00000000..c2365ab1
--- /dev/null
+++ b/code/go-project/demo-project/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/code/go-project/demo-project/go.mod b/code/go-project/demo-project/go.mod
new file mode 100644
index 00000000..3d0c6626
--- /dev/null
+++ b/code/go-project/demo-project/go.mod
@@ -0,0 +1 @@
+module demo-project
diff --git a/code/go-project/demo-project/main.go b/code/go-project/demo-project/main.go
new file mode 100644
index 00000000..df6b8ab2
--- /dev/null
+++ b/code/go-project/demo-project/main.go
@@ -0,0 +1,21 @@
+package main
+
+import (
+ "fmt"
+)
+
+//TIP To run your code, right-click the code and select Run.
Alternatively, click
+// the icon in the gutter and select the Run menu item from here.
+
+func main() {
+ //TIP Press when your caret is at the underlined text
+ // to see how GoLand suggests fixing the warning.
Alternatively, if available, click the lightbulb to view possible fixes.
+ s := "gopher"
+ fmt.Printf("Hello and welcome, %s!\n", s)
+
+ for i := 1; i <= 5; i++ {
+ //TIP To start your debugging session, right-click your code in the editor and select the Debug option.
We have set one breakpoint
+ // for you, but you can always add more by pressing .
+ fmt.Println("i =", 100/i)
+ }
+}
\ No newline at end of file