玩家数据拷贝
This commit is contained in:
parent
599d54dd62
commit
fa8430a604
@ -5,7 +5,4 @@ user:
|
||||
- account: "Daniela Cristina Schmitt"
|
||||
keys: "MergeData, cardName, GuideData, ChapterTip, DialogueData"
|
||||
keysType: "no_include" # keysType 不包含
|
||||
colunm: "key,en_US,pt_BR"
|
||||
- account: "admin" # 账号名
|
||||
keys: "MergeData, cardName, GuideData, ChapterTip, DialogueData" # 需要的键值列表,逗号分隔
|
||||
colunm: "key,en_US,pt_BR" # 需要翻译的列名
|
||||
colunm: "key,en_US,pt_BR"
|
||||
@ -66,3 +66,22 @@ func LanguageAdd(c *gin.Context) {
|
||||
}
|
||||
success(c, "添加成功")
|
||||
}
|
||||
|
||||
func LanguageDelete(c *gin.Context) {
|
||||
var request struct {
|
||||
Key string `json:"key"`
|
||||
}
|
||||
err := c.BindJSON(&request)
|
||||
if err != nil {
|
||||
failed(c, err.Error())
|
||||
return
|
||||
}
|
||||
admin := c.GetString("admin")
|
||||
langMod := &model.LanguageMod{}
|
||||
err = langMod.LanguageDelete(request.Key, admin)
|
||||
if err != nil {
|
||||
failed(c, err.Error())
|
||||
return
|
||||
}
|
||||
success(c, "删除成功")
|
||||
}
|
||||
|
||||
70
controller/operation.go
Normal file
70
controller/operation.go
Normal file
@ -0,0 +1,70 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"backend/util"
|
||||
"fmt"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func CopyUser(c *gin.Context) {
|
||||
CopyUser := struct {
|
||||
SrcAppID int `json:"src_app"`
|
||||
DstAppID int `json:"dst_app"`
|
||||
SrcUid int `json:"src_uid"`
|
||||
DstUid int `json:"dst_uid"`
|
||||
}{}
|
||||
if err := c.BindJSON(&CopyUser); err != nil {
|
||||
failed(c, "参数绑定失败: "+err.Error())
|
||||
return
|
||||
}
|
||||
err := CopyUserOperation(CopyUser.SrcAppID, CopyUser.DstAppID, CopyUser.SrcUid, CopyUser.DstUid)
|
||||
if err != nil {
|
||||
failed(c, "复制用户数据失败: "+err.Error())
|
||||
return
|
||||
}
|
||||
success(c, "复制用户数据成功")
|
||||
}
|
||||
|
||||
func CopyUserOperation(srcAppID, dstAppID, srcUid, dstUid int) error {
|
||||
if dstAppID == 0 {
|
||||
return fmt.Errorf("不能复制用户数据到正式环境")
|
||||
}
|
||||
type DbData struct {
|
||||
DwUin int `db:"dwUin"`
|
||||
MData string `db:"mData"`
|
||||
UpdateTime int `db:"updateTime"`
|
||||
}
|
||||
SrcAppConf, err := util.GetAppConfig(srcAppID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
DstDb := &util.Db{}
|
||||
SrcDb := util.MPool.GetMysqlDB(SrcAppConf, 1)
|
||||
if srcAppID == dstAppID {
|
||||
DstDb = SrcDb
|
||||
} else {
|
||||
DstAppConf, err := util.GetAppConfig(dstAppID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
DstDb = util.MPool.GetMysqlDB(DstAppConf, 1)
|
||||
}
|
||||
srcData := DbData{}
|
||||
|
||||
err = SrcDb.Get(&srcData, "SELECT dwUin, mData, updateTime FROM t_player_mod WHERE dwUin = ? LIMIT 1", srcUid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
dstData := DbData{}
|
||||
err = DstDb.Get(&dstData, "SELECT dwUin, mData, updateTime FROM t_player_mod WHERE dwUin = ? LIMIT 1", dstUid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = DstDb.Exec("UPDATE t_player_mod SET mData = ?, updateTime = ? WHERE dwUin = ?", srcData.MData, util.Now(), dstUid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// 复制 User 表
|
||||
return nil
|
||||
}
|
||||
BIN
data/data.db
BIN
data/data.db
Binary file not shown.
3
go.mod
3
go.mod
@ -53,12 +53,15 @@ require (
|
||||
github.com/json-iterator/go v1.1.12 // indirect
|
||||
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
|
||||
github.com/leodido/go-urn v1.4.0 // indirect
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible // indirect
|
||||
github.com/lestrrat-go/strftime v1.1.1 // indirect
|
||||
github.com/mattn/go-isatty v0.0.20 // indirect
|
||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||
github.com/oschwald/geoip2-golang v1.13.0 // indirect
|
||||
github.com/oschwald/maxminddb-golang v1.13.0 // indirect
|
||||
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/richardlehane/mscfb v1.0.4 // indirect
|
||||
github.com/richardlehane/msoleps v1.0.4 // indirect
|
||||
github.com/tiendc/go-deepcopy v1.7.1 // indirect
|
||||
|
||||
6
go.sum
6
go.sum
@ -159,6 +159,10 @@ github.com/larksuite/oapi-sdk-go/v3 v3.4.9 h1:ZzsPtdF2tsLbocQdKLNFwFCzWfwmKtD4kb
|
||||
github.com/larksuite/oapi-sdk-go/v3 v3.4.9/go.mod h1:ZEplY+kwuIrj/nqw5uSCINNATcH3KdxSN7y+UxYY5fI=
|
||||
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
|
||||
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible h1:Y6sqxHMyB1D2YSzWkLibYKgg+SwmyFU9dF2hn6MdTj4=
|
||||
github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible/go.mod h1:ZQnN8lSECaebrkQytbHj4xNgtg8CR7RYXnPok8e0EHA=
|
||||
github.com/lestrrat-go/strftime v1.1.1 h1:zgf8QCsgj27GlKBy3SU9/8MMgegZ8UCzlCyHYrUF0QU=
|
||||
github.com/lestrrat-go/strftime v1.1.1/go.mod h1:YDrzHJAODYQ+xxvrn5SG01uFIQAeDTzpxNVppCz7Nmw=
|
||||
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
|
||||
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
|
||||
@ -180,6 +184,8 @@ github.com/oschwald/maxminddb-golang v1.13.0 h1:R8xBorY71s84yO06NgTmQvqvTvlS/bnY
|
||||
github.com/oschwald/maxminddb-golang v1.13.0/go.mod h1:BU0z8BfFVhi1LQaonTwwGQlsHUEu9pWNdMfmq4ztm0o=
|
||||
github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM=
|
||||
github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
|
||||
|
||||
135
log/app.log
135
log/app.log
@ -47,20 +47,127 @@
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/11/24 - 10:26:33 | 401 | 1.5059ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:26:33 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/11/24 - 10:26:41 | 200 | 170.3997ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/11/24 - 10:26:41 | 200 | 0s | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/11/24 - 10:26:41 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/11/24 - 10:26:42 | 200 | 408.8869ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:26:46 | 200 | 424.6395ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:26:56 | 200 | 311.5028ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:27:00 | 200 | 441.821ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:27:07 | 200 | 420.9389ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:27:22 | 200 | 305.5606ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:27:26 | 200 | 438.839ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:27:36 | 200 | 303.5182ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/11/24 - 10:27:52 | 200 | 306.1256ms | ::1 | POST "/api/language/list"
|
||||
[GIN] 2025/12/11 - 10:25:13 | 401 | 0s | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 10:25:13 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 10:25:29 | 200 | 253.1365ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 10:25:29 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 10:25:29 | 200 | 397.7438ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 10:25:31 | 200 | 309.585ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 10:25:31 | 200 | 1.1419178s | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 10:27:09 | 200 | 347.354ms | ::1 | POST "/api/server/list"
|
||||
[GIN] 2025/12/11 - 10:27:09 | 200 | 661.8766ms | ::1 | POST "/api/log/order"
|
||||
[GIN] 2025/12/11 - 10:27:12 | 200 | 115.9295ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 10:27:13 | 200 | 711.928ms | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 10:30:23 | 200 | 444.7127ms | ::1 | POST "/api/server/list"
|
||||
[GIN] 2025/12/11 - 10:30:27 | 200 | 2.2220912s | ::1 | POST "/api/server/serverList"
|
||||
[GIN] 2025/12/11 - 10:30:29 | 200 | 5.3690768s | ::1 | POST "/api/server/serverList"
|
||||
[GIN] 2025/12/11 - 10:31:03 | 200 | 886.982ms | ::1 | POST "/api/server/serverList"
|
||||
[GIN] 2025/12/11 - 10:31:09 | 200 | 2.3555516s | ::1 | POST "/api/server/serverList"
|
||||
[GIN] 2025/12/11 - 11:33:28 | 200 | 395.5301ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:33:54 | 200 | 214.9095ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:34:30 | 200 | 305.7429ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:34:57 | 200 | 173.8177ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:35:17 | 200 | 217.7425ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:35:19 | 200 | 187.9784ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 11:35:20 | 200 | 921.4157ms | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 11:37:18 | 200 | 245.3772ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:37:45 | 200 | 517.2912ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:38:04 | 200 | 231.2394ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:38:20 | 200 | 280.0851ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:40:21 | 200 | 371.4347ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:40:23 | 200 | 518.4176ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 11:40:24 | 200 | 1.1721816s | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 11:41:08 | 200 | 132.7881ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:41:41 | 200 | 324.3031ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:43:29 | 200 | 376.0195ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:43:37 | 200 | 182.7374ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:43:48 | 200 | 203.6292ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:44:38 | 200 | 291.4693ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:44:57 | 200 | 234.8371ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:44:58 | 200 | 217.734ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 11:44:59 | 200 | 873.1764ms | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 11:45:45 | 200 | 105.532ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 11:45:47 | 200 | 890.5534ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 11:45:48 | 200 | 1.8967679s | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 11:46:17 | 200 | 253.1924ms | ::1 | POST "/api/server/list"
|
||||
[GIN] 2025/12/11 - 11:46:17 | 200 | 347.3486ms | ::1 | POST "/api/server/serverList"
|
||||
[GIN] 2025/12/11 - 11:46:57 | 200 | 498.5131ms | ::1 | POST "/api/server/list"
|
||||
[GIN] 2025/12/11 - 11:46:57 | 200 | 253.5674ms | ::1 | POST "/api/server/serverList"
|
||||
[GIN] 2025/12/11 - 11:57:22 | 200 | 296.8985ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:00:58 | 200 | 474.8772ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:01:17 | 200 | 209.8177ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:01:43 | 200 | 1.2960524s | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:04:05 | 200 | 1.2864048s | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:04:06 | 200 | 366.8252ms | ::1 | POST "/api/statistics/heat"
|
||||
[GIN] 2025/12/11 - 12:04:07 | 200 | 1.2401522s | ::1 | POST "/api/statistics/info"
|
||||
[GIN] 2025/12/11 - 12:30:05 | 200 | 636.1973ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:30:29 | 200 | 232.0374ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 12:30:39 | 200 | 315.6206ms | ::1 | GET "/api/user/info"
|
||||
2025/12/11 13:04:59 start statistics
|
||||
2025/12/11 13:05:01 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:01 remain 2025-12-11 success
|
||||
2025/12/11 13:05:03 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:03 remain 2025-12-10 success
|
||||
2025/12/11 13:05:05 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:05 remain 2025-12-09 success
|
||||
2025/12/11 13:05:06 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:06 remain 2025-12-08 success
|
||||
2025/12/11 13:05:08 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:08 remain 2025-12-07 success
|
||||
2025/12/11 13:05:10 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:10 remain 2025-12-06 success
|
||||
2025/12/11 13:05:11 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:11 remain 2025-12-05 success
|
||||
2025/12/11 13:05:13 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:13 remain 2025-12-04 success
|
||||
2025/12/11 13:05:14 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:14 remain 2025-12-03 success
|
||||
2025/12/11 13:05:17 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:17 remain 2025-12-02 success
|
||||
2025/12/11 13:05:21 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:21 remain 2025-12-01 success
|
||||
2025/12/11 13:05:24 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:24 remain 2025-11-30 success
|
||||
2025/12/11 13:05:26 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:26 remain 2025-11-29 success
|
||||
2025/12/11 13:05:29 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:29 remain 2025-11-28 success
|
||||
2025/12/11 13:05:31 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:31 remain 2025-11-27 success
|
||||
2025/12/11 13:05:33 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:33 remain 2025-11-26 success
|
||||
2025/12/11 13:05:35 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:35 remain 2025-11-25 success
|
||||
2025/12/11 13:05:37 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:37 remain 2025-11-24 success
|
||||
2025/12/11 13:05:40 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:40 remain 2025-11-23 success
|
||||
2025/12/11 13:05:42 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:42 remain 2025-11-22 success
|
||||
2025/12/11 13:05:44 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:44 remain 2025-11-21 success
|
||||
2025/12/11 13:05:46 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:46 remain 2025-11-20 success
|
||||
2025/12/11 13:05:49 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:49 remain 2025-11-19 success
|
||||
2025/12/11 13:05:51 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:51 remain 2025-11-18 success
|
||||
2025/12/11 13:05:53 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:53 remain 2025-11-17 success
|
||||
2025/12/11 13:05:55 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:55 remain 2025-11-16 success
|
||||
2025/12/11 13:05:57 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:05:57 remain 2025-11-15 success
|
||||
2025/12/11 13:06:00 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:06:00 remain 2025-11-14 success
|
||||
2025/12/11 13:06:02 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:06:02 remain 2025-11-13 success
|
||||
2025/12/11 13:06:04 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:06:04 remain 2025-11-12 success
|
||||
2025/12/11 13:06:06 failed to insert data: Error 1203 (42000): User root already has more than 'max_user_connections' active connections
|
||||
2025/12/11 13:06:06 remain 2025-11-11 success
|
||||
2025/12/11 13:06:06 end statistics
|
||||
|
||||
591
log/backend.2025-12-11.log
Normal file
591
log/backend.2025-12-11.log
Normal file
@ -0,0 +1,591 @@
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 14:54:03 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 14:54:03 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 14:54:09 | 200 | 259.3216ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 14:54:10 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 14:54:10 | 200 | 227.808ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 14:54:14 | 400 | 1.4234398s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 14:55:10 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 14:55:10 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 14:55:16 | 200 | 288.3883ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 14:55:16 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 14:55:17 | 200 | 310.8601ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 14:55:20 | 400 | 1.5287218s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:00:25 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:00:25 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:00:40 | 200 | 301.712ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:00:40 | 200 | 1.0159ms | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:00:40 | 200 | 287.9144ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 15:00:45 | 400 | 1.2076622s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:01:18 | 401 | 511.3µs | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:01:18 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:01:25 | 200 | 274.7293ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:01:25 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:01:26 | 200 | 1.4285956s | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 15:04:28 | 400 | 1m13s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:05:15 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:05:15 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:05:25 | 200 | 226.7111ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:05:25 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:05:25 | 200 | 311.7222ms | ::1 | GET "/api/user/info"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:08:17 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:08:17 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:08:24 | 200 | 277.7203ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:08:24 | 200 | 533.8µs | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:08:25 | 200 | 248.5945ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 15:08:36 | 200 | 8.6406657s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:09:48 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:09:48 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:09:56 | 200 | 171.9066ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:09:56 | 200 | 0s | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:09:56 | 200 | 221.5967ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 15:26:38 | 400 | 16m40s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:26:38 | 400 | 16m28s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:28:21 | 400 | 432.899ms | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:30:41 | 400 | 3.1169586s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:51:59 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:51:59 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:52:06 | 200 | 272.8968ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:52:06 | 200 | 2.1002ms | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:52:07 | 200 | 248.6532ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 15:52:16 | 200 | 6.062524s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:52:43 | 200 | 11.5860106s | ::1 | POST "/api/operation/copyUser"
|
||||
33
log/backend.2025-12-12.log
Normal file
33
log/backend.2025-12-12.log
Normal file
@ -0,0 +1,33 @@
|
||||
2025/12/12 08:04:59 start statistics
|
||||
2025/12/12 08:05:01 remain 2025-12-12 success
|
||||
2025/12/12 08:05:01 remain 2025-12-11 success
|
||||
2025/12/12 08:05:03 remain 2025-12-10 success
|
||||
2025/12/12 08:05:04 remain 2025-12-09 success
|
||||
2025/12/12 08:05:05 remain 2025-12-08 success
|
||||
2025/12/12 08:05:06 remain 2025-12-07 success
|
||||
2025/12/12 08:05:07 remain 2025-12-06 success
|
||||
2025/12/12 08:05:08 remain 2025-12-05 success
|
||||
2025/12/12 08:05:09 remain 2025-12-04 success
|
||||
2025/12/12 08:05:10 remain 2025-12-03 success
|
||||
2025/12/12 08:05:11 remain 2025-12-02 success
|
||||
2025/12/12 08:05:12 remain 2025-12-01 success
|
||||
2025/12/12 08:05:13 remain 2025-11-30 success
|
||||
2025/12/12 08:05:14 remain 2025-11-29 success
|
||||
2025/12/12 08:05:15 remain 2025-11-28 success
|
||||
2025/12/12 08:05:15 remain 2025-11-27 success
|
||||
2025/12/12 08:05:17 remain 2025-11-26 success
|
||||
2025/12/12 08:05:18 remain 2025-11-25 success
|
||||
2025/12/12 08:05:19 remain 2025-11-24 success
|
||||
2025/12/12 08:05:20 remain 2025-11-23 success
|
||||
2025/12/12 08:05:21 remain 2025-11-22 success
|
||||
2025/12/12 08:05:22 remain 2025-11-21 success
|
||||
2025/12/12 08:05:22 remain 2025-11-20 success
|
||||
2025/12/12 08:05:23 remain 2025-11-19 success
|
||||
2025/12/12 08:05:25 remain 2025-11-18 success
|
||||
2025/12/12 08:05:26 remain 2025-11-17 success
|
||||
2025/12/12 08:05:26 remain 2025-11-16 success
|
||||
2025/12/12 08:05:27 remain 2025-11-15 success
|
||||
2025/12/12 08:05:28 remain 2025-11-14 success
|
||||
2025/12/12 08:05:29 remain 2025-11-13 success
|
||||
2025/12/12 08:05:30 remain 2025-11-12 success
|
||||
2025/12/12 08:05:30 end statistics
|
||||
@ -0,0 +1,94 @@
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/login --> backend/controller.Login (3 handlers)
|
||||
[GIN-debug] GET /api/auth/Codes --> backend/controller.Codes (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneCode --> backend/controller.PhoneCode (3 handlers)
|
||||
[GIN-debug] POST /api/auth/phoneLogin --> backend/controller.LoginCode (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo --> backend/controller.FeishuSendInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendInfo2 --> backend/controller.FeishuSendInfo2 (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/sendWeekInfo --> backend/controller.FeishuSendWeekInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/updateApp --> backend/controller.FeishuUpdateApp (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/serverInfo --> backend/controller.FeishuServerInfo (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify --> backend/controller.FeishuNotify (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/client --> backend/controller.FeishuNotifyClient (3 handlers)
|
||||
[GIN-debug] POST /api/feishu/notify/order --> backend/controller.FeishuNotifyOrder (3 handlers)
|
||||
[GIN-debug] POST /api/admin/list --> backend/controller.AdminList (4 handlers)
|
||||
[GIN-debug] POST /api/admin/add --> backend/controller.AdminAdd (4 handlers)
|
||||
[GIN-debug] POST /api/admin/log/list --> backend/controller.AdminLogList (4 handlers)
|
||||
[GIN-debug] POST /api/log/user --> backend/controller.UserDetail (4 handlers)
|
||||
[GIN-debug] POST /api/log/asset --> backend/controller.Asset (4 handlers)
|
||||
[GIN-debug] POST /api/log/event --> backend/controller.Event (4 handlers)
|
||||
[GIN-debug] POST /api/log/order --> backend/controller.Order (4 handlers)
|
||||
[GIN-debug] POST /api/user/list --> backend/controller.UserList (4 handlers)
|
||||
[GIN-debug] GET /api/user/info --> backend/controller.UserInfo (4 handlers)
|
||||
[GIN-debug] POST /api/user/gm --> backend/controller.UserGM (4 handlers)
|
||||
[GIN-debug] POST /api/user/ban --> backend/controller.UserBan (4 handlers)
|
||||
[GIN-debug] POST /api/server/list --> backend/controller.AppList (4 handlers)
|
||||
[GIN-debug] POST /api/server/serverList --> backend/controller.ServerList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addServer --> backend/controller.AddServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/nodeList --> backend/controller.NodeList (4 handlers)
|
||||
[GIN-debug] POST /api/server/addNode --> backend/controller.AddNode (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateApp --> backend/controller.UpdateApp (4 handlers)
|
||||
[GIN-debug] POST /api/server/updateAppFeishu --> backend/controller.UpdateAppFeishu (4 handlers)
|
||||
[GIN-debug] POST /api/server/restart --> backend/controller.RestartServer (4 handlers)
|
||||
[GIN-debug] POST /api/server/reload --> backend/controller.ReloadServer (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/level --> backend/controller.StatisticsLevel (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/order --> backend/controller.StatisticsOrder (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/info --> backend/controller.StatisticsInfo (4 handlers)
|
||||
[GIN-debug] POST /api/statistics/heat --> backend/controller.StatisticsHeat (4 handlers)
|
||||
[GIN-debug] POST /api/mail/send --> backend/controller.SendMail (4 handlers)
|
||||
[GIN-debug] POST /api/mail/list --> backend/controller.MailList (4 handlers)
|
||||
[GIN-debug] POST /api/mail/delete --> backend/controller.MailDelete (4 handlers)
|
||||
[GIN-debug] POST /api/operation/copyUser --> backend/controller.CopyUser (4 handlers)
|
||||
[GIN-debug] POST /api/language/list --> backend/controller.Language (4 handlers)
|
||||
[GIN-debug] POST /api/language/export --> backend/controller.LanguageExport (4 handlers)
|
||||
[GIN-debug] POST /api/language/save --> backend/controller.LanguageSave (4 handlers)
|
||||
[GIN-debug] POST /api/language/add --> backend/controller.LanguageAdd (4 handlers)
|
||||
[GIN-debug] POST /api/language/delete --> backend/controller.LanguageDelete (4 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5320
|
||||
[GIN] 2025/12/11 - 15:51:59 | 401 | 0s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:51:59 | 404 | 0s | ::1 | POST "/api/auth/logout"
|
||||
[GIN] 2025/12/11 - 15:52:06 | 200 | 272.8968ms | ::1 | POST "/api/auth/login"
|
||||
[GIN] 2025/12/11 - 15:52:06 | 200 | 2.1002ms | ::1 | GET "/api/auth/Codes"
|
||||
[GIN] 2025/12/11 - 15:52:07 | 200 | 248.6532ms | ::1 | GET "/api/user/info"
|
||||
[GIN] 2025/12/11 - 15:52:16 | 200 | 6.062524s | ::1 | POST "/api/operation/copyUser"
|
||||
[GIN] 2025/12/11 - 15:52:43 | 200 | 11.5860106s | ::1 | POST "/api/operation/copyUser"
|
||||
2025/12/12 08:04:59 start statistics
|
||||
2025/12/12 08:05:01 remain 2025-12-12 success
|
||||
2025/12/12 08:05:01 remain 2025-12-11 success
|
||||
2025/12/12 08:05:03 remain 2025-12-10 success
|
||||
2025/12/12 08:05:04 remain 2025-12-09 success
|
||||
2025/12/12 08:05:05 remain 2025-12-08 success
|
||||
2025/12/12 08:05:06 remain 2025-12-07 success
|
||||
2025/12/12 08:05:07 remain 2025-12-06 success
|
||||
2025/12/12 08:05:08 remain 2025-12-05 success
|
||||
2025/12/12 08:05:09 remain 2025-12-04 success
|
||||
2025/12/12 08:05:10 remain 2025-12-03 success
|
||||
2025/12/12 08:05:11 remain 2025-12-02 success
|
||||
2025/12/12 08:05:12 remain 2025-12-01 success
|
||||
2025/12/12 08:05:13 remain 2025-11-30 success
|
||||
2025/12/12 08:05:14 remain 2025-11-29 success
|
||||
2025/12/12 08:05:15 remain 2025-11-28 success
|
||||
2025/12/12 08:05:15 remain 2025-11-27 success
|
||||
2025/12/12 08:05:17 remain 2025-11-26 success
|
||||
2025/12/12 08:05:18 remain 2025-11-25 success
|
||||
2025/12/12 08:05:19 remain 2025-11-24 success
|
||||
2025/12/12 08:05:20 remain 2025-11-23 success
|
||||
2025/12/12 08:05:21 remain 2025-11-22 success
|
||||
2025/12/12 08:05:22 remain 2025-11-21 success
|
||||
2025/12/12 08:05:22 remain 2025-11-20 success
|
||||
2025/12/12 08:05:23 remain 2025-11-19 success
|
||||
2025/12/12 08:05:25 remain 2025-11-18 success
|
||||
2025/12/12 08:05:26 remain 2025-11-17 success
|
||||
2025/12/12 08:05:26 remain 2025-11-16 success
|
||||
2025/12/12 08:05:27 remain 2025-11-15 success
|
||||
2025/12/12 08:05:28 remain 2025-11-14 success
|
||||
2025/12/12 08:05:29 remain 2025-11-13 success
|
||||
2025/12/12 08:05:30 remain 2025-11-12 success
|
||||
2025/12/12 08:05:30 end statistics
|
||||
52
main.go
52
main.go
@ -12,24 +12,55 @@ import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
||||
)
|
||||
|
||||
// GOOS=linux GOARCH=amd64 go build -o /data/backend/release/backend main.go
|
||||
var (
|
||||
rl *rotatelogs.RotateLogs
|
||||
logWriter io.Writer
|
||||
errWriter io.Writer
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 以追加模式打开或创建日志文件
|
||||
file, err := os.OpenFile("./log/app.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to open log file: %v", err)
|
||||
// 确保日志目录存在
|
||||
if err := os.MkdirAll("./log", 0755); err != nil {
|
||||
log.Fatalf("failed to create log dir: %v", err)
|
||||
}
|
||||
// 将默认日志输出指向文件(Go 标准 log)
|
||||
log.SetOutput(file)
|
||||
|
||||
// 让 gin 的日志也写入文件,并同时输出到控制台
|
||||
gin.DefaultWriter = io.MultiWriter(file, os.Stdout)
|
||||
gin.DefaultErrorWriter = io.MultiWriter(file, os.Stderr)
|
||||
// 使用按天轮转的日志文件,保留最近 30 个文件
|
||||
var err error
|
||||
rl, err = rotatelogs.New(
|
||||
"./log/backend.%Y-%m-%d.log",
|
||||
rotatelogs.WithRotationTime(24*time.Hour),
|
||||
rotatelogs.WithRotationCount(30),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to initialize log rotator: %v", err)
|
||||
}
|
||||
|
||||
// 打开一个普通的最新日志文件(不使用 symlink),用于提供固定路径的最新日志
|
||||
currFile, err := os.OpenFile("./log/backend.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
// 如果打开失败,仍然继续使用轮转器+控制台
|
||||
log.Printf("warning: failed to open current log file: %v", err)
|
||||
logWriter = io.MultiWriter(rl, os.Stdout)
|
||||
errWriter = io.MultiWriter(rl, os.Stderr)
|
||||
} else {
|
||||
// 同时输出到轮转日志、固定最新日志文件和控制台
|
||||
logWriter = io.MultiWriter(rl, currFile, os.Stdout)
|
||||
errWriter = io.MultiWriter(rl, currFile, os.Stderr)
|
||||
}
|
||||
|
||||
log.SetOutput(logWriter)
|
||||
|
||||
// 保持全局默认 writer(以兼容其他调用)
|
||||
gin.DefaultWriter = logWriter
|
||||
gin.DefaultErrorWriter = errWriter
|
||||
|
||||
util.InitBBolt()
|
||||
common.Init()
|
||||
common.InitTranlater()
|
||||
@ -95,12 +126,15 @@ func main() {
|
||||
api.POST("/mail/send", controller.SendMail)
|
||||
api.POST("/mail/list", controller.MailList)
|
||||
api.POST("/mail/delete", controller.MailDelete)
|
||||
// 运营功能
|
||||
api.POST("/operation/copyUser", controller.CopyUser)
|
||||
|
||||
// 翻译
|
||||
api.POST("/language/list", controller.Language)
|
||||
api.POST("/language/export", controller.LanguageExport)
|
||||
api.POST("/language/save", controller.LanguageSave)
|
||||
api.POST("language/add", controller.LanguageAdd)
|
||||
api.POST("language/delete", controller.LanguageDelete)
|
||||
|
||||
}
|
||||
go util.ScheduleDailyTask()
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package middleware
|
||||
|
||||
import (
|
||||
"backend/model"
|
||||
"backend/store"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
@ -21,8 +22,20 @@ func ValidateToken() gin.HandlerFunc {
|
||||
if tokenInfo != nil {
|
||||
c.Set("admin", tokenInfo.UserName)
|
||||
}
|
||||
// 这里可以添加逻辑来验证token的有效性
|
||||
// 假设验证通过,继续处理请求
|
||||
|
||||
// 获取请求路径和方法
|
||||
path := c.Request.URL.Path
|
||||
|
||||
// 验证用户权限
|
||||
if tokenInfo != nil {
|
||||
hasPermission := model.CheckUserPermission(tokenInfo.UserName, path)
|
||||
if !hasPermission {
|
||||
c.JSON(403, gin.H{"error": "Permission denied"})
|
||||
c.Abort()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,51 +129,10 @@ func (s *Statistics) StatisticsInfo() (interface{}, error) {
|
||||
}
|
||||
|
||||
func (s *Statistics) StatisticsHeat() (interface{}, error) {
|
||||
AppConfig, err := util.GetAppConfig(s.AppId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
LogDb := util.MPool.GetTopicDB(AppConfig.Topic)
|
||||
defer LogDb.Close()
|
||||
if LogDb == nil {
|
||||
return nil, fmt.Errorf("failed to get mysql database")
|
||||
}
|
||||
now := util.Now()
|
||||
value := make([]int, 0, 24)
|
||||
value2 := make([]int, 0, 24)
|
||||
key := make([]string, 0, 24)
|
||||
for i := 0; i < 24; i++ {
|
||||
key = append(key, fmt.Sprintf("%02d:00", i))
|
||||
}
|
||||
type r struct {
|
||||
Sum1 int `db:"sum1"`
|
||||
Sum2 int `db:"sum2"`
|
||||
}
|
||||
var result r
|
||||
for i := 0; i < 24; i++ {
|
||||
err := LogDb.Get(&result, "select count(*) as sum1, count(distinct Uid) as sum2 from log_event where Timestamp >= ? and Timestamp <= ?", now-int64(i)*3600-3600, now-int64(i)*3600)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get heat count: %v", err)
|
||||
}
|
||||
|
||||
value = append(value, result.Sum1)
|
||||
value2 = append(value2, result.Sum2)
|
||||
key[i] = fmt.Sprintf("%02d:00", util.GetHour(now-int64(i)*3600, AppConfig.Tz))
|
||||
}
|
||||
if len(value) < 2 {
|
||||
return value, nil
|
||||
}
|
||||
// 反转key和value
|
||||
for i, j := 0, len(value)-1; i < j; i, j = i+1, j-1 {
|
||||
key[i], key[j] = key[j], key[i]
|
||||
value2[i], value2[j] = value2[j], value2[i]
|
||||
value[i], value[j] = value[j], value[i]
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
"key": key,
|
||||
"value": value,
|
||||
"value2": value2,
|
||||
"key": nil,
|
||||
"value": nil,
|
||||
"value2": nil,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
@ -144,6 +144,14 @@ func (a *Admin) CreateToken() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *Admin) GetAdmin(username string) error {
|
||||
db := util.MPool.GetGameDB() // 假设使用默认的AppConfig和ServerId为0
|
||||
if db == nil {
|
||||
return fmt.Errorf("failed to get database connection")
|
||||
}
|
||||
return db.Get(a, "SELECT * FROM admin WHERE username = ?", username)
|
||||
}
|
||||
|
||||
func InitToken() {
|
||||
// 初始化TokenList,可以从数据库中加载现有的令牌
|
||||
db := util.MPool.GetGameDB() // 假设使用默认的AppConfig和ServerId为0
|
||||
@ -175,3 +183,55 @@ func SendPhoneCode(phone string) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var PermissionList = map[string][]string{
|
||||
"/api/admin/list": {"super", "admin"},
|
||||
"/api/admin/add": {"super"},
|
||||
"/api/admin/log/list": {"super", "admin"},
|
||||
"/api/log/user": {"super", "admin", "user"},
|
||||
"/api/log/asset": {"super", "admin", "user"},
|
||||
"/api/log/event": {"super", "admin", "user"},
|
||||
"/api/log/order": {"super", "admin", "user"},
|
||||
"/api/user/list": {"super", "admin", "user"},
|
||||
"/api/user/gm": {"super", "admin"},
|
||||
"/api/user/ban": {"super", "admin"},
|
||||
"/api/server/list": {"super", "admin"},
|
||||
"/api/server/serverList": {"super", "admin"},
|
||||
"/api/server/addServer": {"super"},
|
||||
"/api/server/nodeList": {"super"},
|
||||
"/api/server/addNode": {"super"},
|
||||
"/api/server/updateApp": {"super", "admin"},
|
||||
"/api/server/restart": {"super", "admin"},
|
||||
"/api/server/reload": {"super", "admin"},
|
||||
"/api/statistics/level": {"super", "admin"},
|
||||
"/api/statistics/order": {"super", "admin"},
|
||||
"/api/statistics/info": {"super", "admin"},
|
||||
"/api/statistics/heat": {"super", "admin"},
|
||||
"/api/mail/send": {"super", "admin"},
|
||||
"/api/mail/list": {"super", "admin"},
|
||||
"/api/mail/delete": {"super", "admin"},
|
||||
"/api/language/list": {"super", "admin", "wb_transfer"},
|
||||
"/api/language/export": {"super", "admin", "wb_transfer"},
|
||||
"/api/language/save": {"super", "admin", "wb_transfer"},
|
||||
"/api/language/add": {"super", "admin", "wb_transfer"},
|
||||
"/api/language/delete": {"super", "admin"},
|
||||
}
|
||||
|
||||
func CheckUserPermission(username, path string) bool {
|
||||
Admin := &Admin{}
|
||||
err := Admin.GetAdmin(username)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
PermissionRoles, exists := PermissionList[path]
|
||||
if !exists {
|
||||
// 如果路径不存在于权限列表中,默认允许访问
|
||||
return true
|
||||
}
|
||||
for _, role := range PermissionRoles {
|
||||
if util.GetRole(Admin.Role) == role {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@ -111,7 +111,16 @@ func (l *LanguageMod) LanguageListAll() (map[string]interface{}, error) {
|
||||
}
|
||||
// 导出为 xlsx 文件
|
||||
f := excelize.NewFile()
|
||||
sheet := "Sheet1"
|
||||
mainSheet := "client"
|
||||
backendSheet := "backend"
|
||||
// 创建主表
|
||||
if _, err := f.NewSheet(mainSheet); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 创建 backend 子表
|
||||
if _, err := f.NewSheet(backendSheet); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
SaveTime, _ := util.GetLanguageLastUpdate()
|
||||
ExportTime, _ := util.GetLanguageExportLastUpdate()
|
||||
if SaveTime <= ExportTime {
|
||||
@ -120,38 +129,66 @@ func (l *LanguageMod) LanguageListAll() (map[string]interface{}, error) {
|
||||
"msg": "No changes since last export",
|
||||
}, nil
|
||||
}
|
||||
// 写表头
|
||||
// 写表头(在主表和 backend 表都写一份)
|
||||
headers := []string{"Id", "key", "en_US", "zh_CN", "pt_BR"}
|
||||
|
||||
cols := []string{"A", "B", "C", "D", "E"}
|
||||
for i, h := range headers {
|
||||
if err := f.SetCellValue(sheet, cols[i]+"1", h); err != nil {
|
||||
if err := f.SetCellValue(mainSheet, cols[i]+"1", h); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(backendSheet, cols[i]+"1", h); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
headers2 := []string{"编号", "键", "英文", "简体中文", "葡萄牙语(巴西)"}
|
||||
for i, h := range headers2 {
|
||||
if err := f.SetCellValue(sheet, cols[i]+"2", h); err != nil {
|
||||
if err := f.SetCellValue(mainSheet, cols[i]+"2", h); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(backendSheet, cols[i]+"2", h); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
// 写数据行
|
||||
for i, lang := range languages {
|
||||
row := fmt.Sprintf("%d", i+3)
|
||||
if err := f.SetCellValue(sheet, "A"+row, lang.Id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(sheet, "B"+row, lang.Key); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(sheet, "C"+row, lang.EN_US); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(sheet, "D"+row, lang.ZH_CN); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(sheet, "E"+row, lang.PT_BR); err != nil {
|
||||
return nil, err
|
||||
// 写数据行:分别维护主表和 backend 表的行号
|
||||
mainRowIndex := 3
|
||||
backendRowIndex := 3
|
||||
for _, lang := range languages {
|
||||
if strings.HasPrefix(lang.Key, "backend") {
|
||||
row := fmt.Sprintf("%d", backendRowIndex)
|
||||
if err := f.SetCellValue(backendSheet, "A"+row, lang.Id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(backendSheet, "B"+row, lang.Key); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(backendSheet, "C"+row, lang.EN_US); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(backendSheet, "D"+row, lang.ZH_CN); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(backendSheet, "E"+row, lang.PT_BR); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
backendRowIndex++
|
||||
} else {
|
||||
row := fmt.Sprintf("%d", mainRowIndex)
|
||||
if err := f.SetCellValue(mainSheet, "A"+row, lang.Id); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(mainSheet, "B"+row, lang.Key); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(mainSheet, "C"+row, lang.EN_US); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(mainSheet, "D"+row, lang.ZH_CN); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := f.SetCellValue(mainSheet, "E"+row, lang.PT_BR); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
mainRowIndex++
|
||||
}
|
||||
}
|
||||
// 在 /data/docs 仓库中添加并提交该文件
|
||||
@ -259,5 +296,26 @@ func (l *LanguageMod) LanguageAdd(langList []Language, admin string) error {
|
||||
return err
|
||||
}
|
||||
}
|
||||
util.SaveLanguageLastUpdate(util.Now())
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *LanguageMod) LanguageDelete(key string, admin string) error {
|
||||
Db := util.MPool.GetGameDB()
|
||||
defer Db.Close()
|
||||
var lang Language
|
||||
err := Db.Get(&lang, "SELECT `Id`, `key`, `en_US`, `zh_CN`, `pt_BR` FROM language WHERE `key` = ?", key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = Db.Exec("DELETE FROM language WHERE `key` = ?", key)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = Db.Exec("insert into language_op (`LanguageId`, `Field`, `OldValue`, `NewValue`, `Type`, `Update`, `Role`) values (?, ?, ?, ?, ?,?,?)", lang.Id, "All", lang.EN_US+"|"+lang.ZH_CN+"|"+lang.PT_BR, "", "Delete", util.Now(), admin)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
util.SaveLanguageLastUpdate(util.Now())
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -13,13 +13,19 @@ type Mail struct {
|
||||
PageSize int `json:"PageSize"`
|
||||
CurrentPage int `json:"CurrentPage"`
|
||||
|
||||
MailId int `json:"mail_id" db:"mail_id"`
|
||||
Title string `json:"title" db:"title"`
|
||||
SubTitle string `json:"subtitle" db:"subTitle"`
|
||||
Content string `json:"content" db:"content"`
|
||||
TitleEn string `json:"title_en" db:"title_en"`
|
||||
SubTitleEn string `json:"subtitle_en" db:"subTitle_en"`
|
||||
ContentEn string `json:"content_en" db:"content_en"`
|
||||
MailId int `json:"mail_id" db:"mail_id"`
|
||||
Title string `json:"title" db:"title"`
|
||||
SubTitle string `json:"subtitle" db:"subTitle"`
|
||||
Content string `json:"content" db:"content"`
|
||||
|
||||
TitleEn string `json:"title_en" db:"title_en"`
|
||||
SubTitleEn string `json:"subtitle_en" db:"subTitle_en"`
|
||||
ContentEn string `json:"content_en" db:"content_en"`
|
||||
|
||||
TitlePtBr string `json:"title_ptbr" db:"title_ptbr"`
|
||||
SubTitlePtBr string `json:"subtitle_ptbr" db:"subTitle_ptbr"`
|
||||
ContentPtBr string `json:"content_ptbr" db:"content_ptbr"`
|
||||
|
||||
StartTime int64 `json:"start_time" db:"start_time"`
|
||||
EndTime int64 `json:"end_time" db:"end_time"`
|
||||
Items string `json:"items" db:"items"`
|
||||
@ -45,7 +51,7 @@ func (m *Mail) MailList() (*Result, error) {
|
||||
Db := util.MPool.GetMysqlDB(AppCfg, m.ServerId)
|
||||
defer Db.Close()
|
||||
var mail []*Mail
|
||||
err = Db.Select(&mail, "SELECT `mail_id`, `title`, `content`, `start_time`, `end_time`, `items`, `register_time`, `mail_type`,`send_type`, `to_uids`, `create_time`, `subTitle`, `subTitle_en`, `content_en`, `title_en` FROM system_mail_info")
|
||||
err = Db.Select(&mail, "SELECT `mail_id`, `title`, `content`, `start_time`, `end_time`, `items`, `register_time`, `mail_type`,`send_type`, `to_uids`, `create_time`, `subTitle`, `subTitle_en`, `content_en`, `title_en`, `title_ptbr`,`subTitle_ptbr`, `content_ptbr` FROM system_mail_info")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to scan rows: %v", err)
|
||||
}
|
||||
@ -68,7 +74,7 @@ func (m *Mail) SendMail() error {
|
||||
}
|
||||
Db := util.MPool.GetMysqlDB(AppCfg, m.ServerId)
|
||||
defer Db.Close()
|
||||
_, err = Db.Exec("INSERT INTO system_mail_info (`title`, `content`, `title_en`, `content_en`, `start_time`, `end_time`, `items`, `register_time`, `mail_type`, `send_type`, `to_uids`, `create_time`, `subtitle`, `subtitle_en`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.Title, m.Content, m.TitleEn, m.ContentEn, m.StartTime, m.EndTime, m.Items, m.RegisterTime, m.MailType, m.SendType, m.ToUids, m.CreateTime, m.SubTitle, m.SubTitleEn)
|
||||
_, err = Db.Exec("INSERT INTO system_mail_info (`title`, `content`, `title_en`, `content_en`, `start_time`, `end_time`, `items`, `register_time`, `mail_type`, `send_type`, `to_uids`, `create_time`, `subTitle`, `subTitle_en`, `title_ptbr`,`content_ptbr`,`subTitle_ptbr`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.Title, m.Content, m.TitleEn, m.ContentEn, m.StartTime, m.EndTime, m.Items, m.RegisterTime, m.MailType, m.SendType, m.ToUids, m.CreateTime, m.SubTitle, m.SubTitleEn, m.TitlePtBr, m.ContentPtBr, m.SubTitlePtBr)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to insert mail: %v", err)
|
||||
}
|
||||
|
||||
@ -182,7 +182,8 @@ func (s *Server) RestartServer() (string, error) {
|
||||
return "", err
|
||||
}
|
||||
defer SshClient.client.Close()
|
||||
cmd := fmt.Sprintf("%s/tool/tool restart node %d", AppConfig.Path, s.ServerId)
|
||||
|
||||
cmd := fmt.Sprintf("cd %s && ./tool/tool restart node %d", AppConfig.Path, s.ServerId)
|
||||
output, err := SshClient.RunCommand(cmd)
|
||||
if err != nil {
|
||||
return "", err
|
||||
|
||||
BIN
release/backend
BIN
release/backend
Binary file not shown.
@ -9,17 +9,17 @@ if [ $# -ne 1 ]; then
|
||||
fi
|
||||
|
||||
if [ "$1" = "start" ]; then
|
||||
echo "Starting sdk_login..."
|
||||
echo "Starting login_service..."
|
||||
mkdir -p log
|
||||
: > log/sdk_login.log
|
||||
nohup ./sdk_login >> log/sdk_login.log 2>&1 &
|
||||
echo "sdk_login started."
|
||||
: > log/login_service.log
|
||||
nohup ./login_service >> log/login_service.log 2>&1 &
|
||||
echo "login_service started."
|
||||
elif [ "$1" = "stop" ]; then
|
||||
echo "Stopping sdk_login..."
|
||||
echo "Stopping login_service..."
|
||||
# ...existing code...
|
||||
PID=$(ps -ef | grep '[l]ogin_service' | awk '{print $2}')
|
||||
if [ -z "$PID" ]; then
|
||||
echo "sdk_login is not running."
|
||||
echo "login_service is not running."
|
||||
exit 1
|
||||
fi
|
||||
kill "$PID"
|
||||
@ -35,20 +35,20 @@ elif [ "$1" = "stop" ]; then
|
||||
if ps -p "$PID" > /dev/null 2>&1; then
|
||||
kill -9 "$PID"
|
||||
fi
|
||||
echo "sdk_login stopped."
|
||||
echo "login_service stopped."
|
||||
elif [ "$1" = "status" ]; then
|
||||
echo "sdk_login status:"
|
||||
echo "login_service status:"
|
||||
PID=$(ps -ef | grep '[l]ogin_service' | awk '{print $2}')
|
||||
if [ -z "$PID" ]; then
|
||||
echo "sdk_login is not running."
|
||||
echo "login_service is not running."
|
||||
else
|
||||
echo "sdk_login is running."
|
||||
echo "login_service is running."
|
||||
fi
|
||||
elif [ "$1" = "restart" ]; then
|
||||
echo "Restarting login..."
|
||||
PID=$(ps -ef | grep '[l]ogin_service' | awk '{print $2}')
|
||||
if [ -n "$PID" ]; then
|
||||
echo "sdk_login stopping."
|
||||
echo "login_service stopping."
|
||||
kill "$PID"
|
||||
fi
|
||||
while :; do
|
||||
@ -56,11 +56,11 @@ elif [ "$1" = "restart" ]; then
|
||||
[ -z "$PID" ] && break
|
||||
sleep 1
|
||||
done
|
||||
echo "sdk_login stopped."
|
||||
echo "login_service stopped."
|
||||
mkdir -p log
|
||||
: > log/sdk_login.log
|
||||
nohup ./sdk_login >> log/sdk_login.log 2>&1 &
|
||||
echo "sdk_login restarted."
|
||||
: > log/login_service.log
|
||||
nohup ./login_service >> log/login_service.log 2>&1 &
|
||||
echo "login_service restarted."
|
||||
else
|
||||
echo "Usage: $0 [start|stop|status|restart]"
|
||||
exit 1
|
||||
|
||||
2
sdk/login/log/login.2025-11-27.log
Normal file
2
sdk/login/log/login.2025-11-27.log
Normal file
@ -0,0 +1,2 @@
|
||||
2025/11/27 12:04:33 Login SDK started on port 5240
|
||||
2025/11/27 16:39:06 Login SDK started on port 5240
|
||||
@ -1,12 +1 @@
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/auth/tuyou/login --> backend/sdk/login/model/tuyou.Login (3 handlers)
|
||||
[GIN-debug] POST /api/auth/test/login --> backend/sdk/login/model/test.Login (3 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5420
|
||||
[GIN] 2025/10/29 - 17:43:33 | 200 | 360.0841ms | ::1 | POST "/api/auth/test/login"
|
||||
2025/11/27 16:39:06 Login SDK started on port 5240
|
||||
|
||||
@ -6,24 +6,56 @@ import (
|
||||
"backend/sdk/login/model/test"
|
||||
"backend/sdk/login/model/tuyou"
|
||||
"fmt"
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
||||
)
|
||||
|
||||
var (
|
||||
rl *rotatelogs.RotateLogs
|
||||
logWriter io.Writer
|
||||
errWriter io.Writer
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 以追加模式打开或创建日志文件
|
||||
file, err := os.OpenFile("./log/login.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to open log file: %v", err)
|
||||
// 确保日志目录存在
|
||||
if err := os.MkdirAll("./log", 0755); err != nil {
|
||||
log.Fatalf("failed to create log dir: %v", err)
|
||||
}
|
||||
// 将默认日志输出指向文件(Go 标准 log)
|
||||
log.SetOutput(file)
|
||||
|
||||
// // 让 gin 的日志也写入文件,并同时输出到控制台
|
||||
// gin.DefaultWriter = io.MultiWriter(file, os.Stdout)
|
||||
// gin.DefaultErrorWriter = io.MultiWriter(file, os.Stderr)
|
||||
// 使用按天轮转的日志文件,保留最近 30 个文件
|
||||
var err error
|
||||
rl, err = rotatelogs.New(
|
||||
"./log/login.%Y-%m-%d.log",
|
||||
rotatelogs.WithRotationTime(24*time.Hour),
|
||||
rotatelogs.WithRotationCount(30),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to initialize log rotator: %v", err)
|
||||
}
|
||||
|
||||
// 打开一个普通的最新日志文件(不使用 symlink),用于提供固定路径的最新日志
|
||||
currFile, err := os.OpenFile("./log/login.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
// 如果打开失败,仍然继续使用轮转器+控制台
|
||||
log.Printf("warning: failed to open current log file: %v", err)
|
||||
logWriter = io.MultiWriter(rl, os.Stdout)
|
||||
errWriter = io.MultiWriter(rl, os.Stderr)
|
||||
} else {
|
||||
// 同时输出到轮转日志、固定最新日志文件和控制台
|
||||
logWriter = io.MultiWriter(rl, currFile, os.Stdout)
|
||||
errWriter = io.MultiWriter(rl, currFile, os.Stderr)
|
||||
}
|
||||
|
||||
log.SetOutput(logWriter)
|
||||
|
||||
// 保持全局默认 writer(以兼容其他调用)
|
||||
gin.DefaultWriter = os.Stdout
|
||||
gin.DefaultErrorWriter = errWriter
|
||||
common.Init()
|
||||
}
|
||||
|
||||
@ -35,7 +67,6 @@ func main() {
|
||||
loginApi.GET("/tuyou/login", tuyou.Login)
|
||||
loginApi.GET("/test/login", test.Login)
|
||||
}
|
||||
log.Printf("server start!")
|
||||
log.Printf("listen port:%d", logincommon.AppConf.Port)
|
||||
log.Printf("Login SDK started on port %d", logincommon.AppConf.Port)
|
||||
r.Run(fmt.Sprintf(":%d", logincommon.AppConf.Port))
|
||||
}
|
||||
|
||||
8
sdk/ship/log/charge.2025-11-27.log
Normal file
8
sdk/ship/log/charge.2025-11-27.log
Normal file
@ -0,0 +1,8 @@
|
||||
2025/11/27 12:00:31 Ship SDK started on port 5250
|
||||
2025/11/27 12:01:03 binding error:Key: 'ChargeRequest.ApiVer' Error:Field validation for 'ApiVer' failed on the 'required' tag
|
||||
Key: 'ChargeRequest.AppID' Error:Field validation for 'AppID' failed on the 'required' tag
|
||||
Key: 'ChargeRequest.ClientID' Error:Field validation for 'ClientID' failed on the 'required' tag
|
||||
Key: 'ChargeRequest.UserID' Error:Field validation for 'UserID' failed on the 'required' tag
|
||||
Key: 'ChargeRequest.Code' Error:Field validation for 'Code' failed on the 'required' tag
|
||||
[GIN] 2025/11/27 - 12:01:03 | 400 | 645.7µs | ::1 | POST "/api/tuyou/charge"
|
||||
2025/11/27 12:02:22 Ship SDK started on port 5250
|
||||
@ -1,15 +1 @@
|
||||
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
|
||||
|
||||
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
|
||||
- using env: export GIN_MODE=release
|
||||
- using code: gin.SetMode(gin.ReleaseMode)
|
||||
|
||||
[GIN-debug] POST /api/test/charge --> backend/sdk/charge/model/test.Charge (3 handlers)
|
||||
[GIN-debug] POST /api/tuyou/charge --> backend/sdk/charge/model/test.Charge (3 handlers)
|
||||
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
|
||||
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
|
||||
[GIN-debug] Listening and serving HTTP on :5420
|
||||
[GIN] 2025/11/11 - 10:53:12 | 200 | 551.4594ms | 127.0.0.1 | POST "/api/test/charge"
|
||||
2025/11/11 10:53:12 charge shipping:orderSn:order_100100002_20250820142941DBLbNB;res:map[Code:0 Msg:player online,triggered sync]
|
||||
[GIN] 2025/11/11 - 11:04:52 | 200 | 607.4434ms | 127.0.0.1 | POST "/api/test/charge"
|
||||
2025/11/11 11:04:53 charge shipping:orderSn:order_100100002_20250820142941DBLbNB;res:map[Code:0 Msg:player online,triggered sync]
|
||||
2025/11/27 12:02:22 Ship SDK started on port 5250
|
||||
|
||||
@ -9,33 +9,70 @@ import (
|
||||
"io"
|
||||
"log"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
||||
)
|
||||
|
||||
var (
|
||||
rl *rotatelogs.RotateLogs
|
||||
logWriter io.Writer
|
||||
errWriter io.Writer
|
||||
)
|
||||
|
||||
func init() {
|
||||
// 以追加模式打开或创建日志文件
|
||||
file, err := os.OpenFile("./log/charge.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to open log file: %v", err)
|
||||
// 确保日志目录存在
|
||||
if err := os.MkdirAll("./log", 0755); err != nil {
|
||||
log.Fatalf("failed to create log dir: %v", err)
|
||||
}
|
||||
// 将默认日志输出指向文件(Go 标准 log)
|
||||
log.SetOutput(file)
|
||||
|
||||
// 让 gin 的日志也写入文件,并同时输出到控制台
|
||||
gin.DefaultWriter = io.MultiWriter(file, os.Stdout)
|
||||
gin.DefaultErrorWriter = io.MultiWriter(file, os.Stderr)
|
||||
// 使用按天轮转的日志文件,保留最近 30 个文件
|
||||
var err error
|
||||
rl, err = rotatelogs.New(
|
||||
"./log/charge.%Y-%m-%d.log",
|
||||
rotatelogs.WithRotationTime(24*time.Hour),
|
||||
rotatelogs.WithRotationCount(30),
|
||||
)
|
||||
if err != nil {
|
||||
log.Fatalf("failed to initialize log rotator: %v", err)
|
||||
}
|
||||
|
||||
// 打开一个普通的最新日志文件(不使用 symlink),用于提供固定路径的最新日志
|
||||
currFile, err := os.OpenFile("./log/charge.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
|
||||
if err != nil {
|
||||
// 如果打开失败,仍然继续使用轮转器+控制台
|
||||
log.Printf("warning: failed to open current log file: %v", err)
|
||||
logWriter = io.MultiWriter(rl, os.Stdout)
|
||||
errWriter = io.MultiWriter(rl, os.Stderr)
|
||||
} else {
|
||||
// 同时输出到轮转日志、固定最新日志文件和控制台
|
||||
logWriter = io.MultiWriter(rl, currFile, os.Stdout)
|
||||
errWriter = io.MultiWriter(rl, currFile, os.Stderr)
|
||||
}
|
||||
|
||||
log.SetOutput(logWriter)
|
||||
|
||||
// 保持全局默认 writer(以兼容其他调用)
|
||||
gin.DefaultWriter = os.Stdout
|
||||
gin.DefaultErrorWriter = errWriter
|
||||
|
||||
common.Init()
|
||||
}
|
||||
|
||||
func main() {
|
||||
// 使用 gin.New 并显式注入写入器,确保中间件把日志写到轮转器
|
||||
// gin.SetMode(gin.ReleaseMode)
|
||||
r := gin.Default()
|
||||
r := gin.New()
|
||||
r.Use(gin.LoggerWithWriter(logWriter))
|
||||
r.Use(gin.RecoveryWithWriter(errWriter))
|
||||
|
||||
ChargeApi := r.Group("/api")
|
||||
{
|
||||
// 充值发货
|
||||
ChargeApi.POST("test/charge", test.Charge)
|
||||
ChargeApi.POST("tuyou/charge", tuyou.Charge)
|
||||
}
|
||||
log.Printf("Ship SDK started on port %d", shipcommon.AppConf.Port)
|
||||
r.Run(fmt.Sprintf(":%d", shipcommon.AppConf.Port))
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ func Charge(c *gin.Context) {
|
||||
c.JSON(400, gin.H{"error": "invalid AppInfo"})
|
||||
return
|
||||
}
|
||||
AppInfo.ChannelOrderId = req.OrderID
|
||||
AppInfo.ChannelOrderId = req.PlatformOrder
|
||||
err := AppInfo.ChangeOrderStatus()
|
||||
if err != nil {
|
||||
FeishuNotify(fmt.Sprintf("change order status error: %v", err))
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package store
|
||||
|
||||
import "backend/util"
|
||||
import (
|
||||
"backend/util"
|
||||
)
|
||||
|
||||
var TokenList = make(map[string]*Token)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user