diff --git a/front-end/front-end/.eslintrc.cjs b/front-end/.eslintrc.cjs similarity index 100% rename from front-end/front-end/.eslintrc.cjs rename to front-end/.eslintrc.cjs diff --git a/front-end/.gitignore b/front-end/.gitignore index 3c3629e..8ee54e8 100644 --- a/front-end/.gitignore +++ b/front-end/.gitignore @@ -1 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/front-end/front-end/.husky/pre-commit b/front-end/.husky/pre-commit similarity index 100% rename from front-end/front-end/.husky/pre-commit rename to front-end/.husky/pre-commit diff --git a/front-end/front-end/.prettierrc.json b/front-end/.prettierrc.json similarity index 100% rename from front-end/front-end/.prettierrc.json rename to front-end/.prettierrc.json diff --git a/front-end/.vite/deps/_metadata.json b/front-end/.vite/deps/_metadata.json index 2786abc..f51ca1e 100644 --- a/front-end/.vite/deps/_metadata.json +++ b/front-end/.vite/deps/_metadata.json @@ -1,8 +1,40 @@ { - "hash": "f2cd6171", - "configHash": "c345b98b", - "lockfileHash": "e3b0c442", - "browserHash": "f7fdce36", - "optimized": {}, - "chunks": {} + "hash": "60808396", + "configHash": "59b8cfd4", + "lockfileHash": "dc70f975", + "browserHash": "f37eb18a", + "optimized": { + "vue": { + "src": "../../node_modules/.pnpm/vue@3.5.11/node_modules/vue/dist/vue.runtime.esm-bundler.js", + "file": "vue.js", + "fileHash": "b734d491", + "needsInterop": false + }, + "pinia": { + "src": "../../node_modules/.pnpm/pinia@2.2.4_vue@3.5.11/node_modules/pinia/dist/pinia.mjs", + "file": "pinia.js", + "fileHash": "9cec28a2", + "needsInterop": false + }, + "pinia-plugin-persistedstate": { + "src": "../../node_modules/.pnpm/pinia-plugin-persistedstate@4.1.1_pinia@2.2.4_vue@3.5.11__rollup@4.24.0/node_modules/pinia-plugin-persistedstate/dist/index.js", + "file": "pinia-plugin-persistedstate.js", + "fileHash": "e1a46a27", + "needsInterop": false + }, + "vue-router": { + "src": "../../node_modules/.pnpm/vue-router@4.4.5_vue@3.5.11/node_modules/vue-router/dist/vue-router.mjs", + "file": "vue-router.js", + "fileHash": "97ce4aa0", + "needsInterop": false + } + }, + "chunks": { + "chunk-BPR5FKHA": { + "file": "chunk-BPR5FKHA.js" + }, + "chunk-UGVUZKZS": { + "file": "chunk-UGVUZKZS.js" + } + } } \ No newline at end of file diff --git a/front-end/front-end/.vite/deps/chunk-BPR5FKHA.js b/front-end/.vite/deps/chunk-BPR5FKHA.js similarity index 100% rename from front-end/front-end/.vite/deps/chunk-BPR5FKHA.js rename to front-end/.vite/deps/chunk-BPR5FKHA.js diff --git a/front-end/front-end/.vite/deps/chunk-BPR5FKHA.js.map b/front-end/.vite/deps/chunk-BPR5FKHA.js.map similarity index 100% rename from front-end/front-end/.vite/deps/chunk-BPR5FKHA.js.map rename to front-end/.vite/deps/chunk-BPR5FKHA.js.map diff --git a/front-end/front-end/.vite/deps/chunk-UGVUZKZS.js b/front-end/.vite/deps/chunk-UGVUZKZS.js similarity index 100% rename from front-end/front-end/.vite/deps/chunk-UGVUZKZS.js rename to front-end/.vite/deps/chunk-UGVUZKZS.js diff --git a/front-end/front-end/.vite/deps/chunk-UGVUZKZS.js.map b/front-end/.vite/deps/chunk-UGVUZKZS.js.map similarity index 100% rename from front-end/front-end/.vite/deps/chunk-UGVUZKZS.js.map rename to front-end/.vite/deps/chunk-UGVUZKZS.js.map diff --git a/front-end/front-end/.vite/deps/pinia-plugin-persistedstate.js b/front-end/.vite/deps/pinia-plugin-persistedstate.js similarity index 100% rename from front-end/front-end/.vite/deps/pinia-plugin-persistedstate.js rename to front-end/.vite/deps/pinia-plugin-persistedstate.js diff --git a/front-end/front-end/.vite/deps/pinia-plugin-persistedstate.js.map b/front-end/.vite/deps/pinia-plugin-persistedstate.js.map similarity index 100% rename from front-end/front-end/.vite/deps/pinia-plugin-persistedstate.js.map rename to front-end/.vite/deps/pinia-plugin-persistedstate.js.map diff --git a/front-end/front-end/.vite/deps/pinia.js b/front-end/.vite/deps/pinia.js similarity index 100% rename from front-end/front-end/.vite/deps/pinia.js rename to front-end/.vite/deps/pinia.js diff --git a/front-end/front-end/.vite/deps/pinia.js.map b/front-end/.vite/deps/pinia.js.map similarity index 100% rename from front-end/front-end/.vite/deps/pinia.js.map rename to front-end/.vite/deps/pinia.js.map diff --git a/front-end/front-end/.vite/deps/vue-router.js b/front-end/.vite/deps/vue-router.js similarity index 100% rename from front-end/front-end/.vite/deps/vue-router.js rename to front-end/.vite/deps/vue-router.js diff --git a/front-end/front-end/.vite/deps/vue-router.js.map b/front-end/.vite/deps/vue-router.js.map similarity index 100% rename from front-end/front-end/.vite/deps/vue-router.js.map rename to front-end/.vite/deps/vue-router.js.map diff --git a/front-end/front-end/.vite/deps/vue.js b/front-end/.vite/deps/vue.js similarity index 100% rename from front-end/front-end/.vite/deps/vue.js rename to front-end/.vite/deps/vue.js diff --git a/front-end/front-end/.vite/deps/vue.js.map b/front-end/.vite/deps/vue.js.map similarity index 100% rename from front-end/front-end/.vite/deps/vue.js.map rename to front-end/.vite/deps/vue.js.map diff --git a/front-end/front-end/.vscode/extensions.json b/front-end/.vscode/extensions.json similarity index 100% rename from front-end/front-end/.vscode/extensions.json rename to front-end/.vscode/extensions.json diff --git a/front-end/front-end/README.md b/front-end/README.md similarity index 100% rename from front-end/front-end/README.md rename to front-end/README.md diff --git a/front-end/back-end/config.yaml b/front-end/back-end/config.yaml deleted file mode 100644 index 273cb5f..0000000 --- a/front-end/back-end/config.yaml +++ /dev/null @@ -1,26 +0,0 @@ -app: - name: "test" - mode: "dev" - port: 8080 - start_time: "2024-10-01" - machine_id: 1 - test: true - -logger: - level: "debug" - name: "logger.log" - max_sizes: 200 - max_age: 30 - max_backups: 7 - -mysql: - host: "127.0.0.1" - port: 3306 - user: "root" - password: "123456qaz" - dbname: "test" - max_idle_conns: 50 - max_open_conns: 200 - - - diff --git a/front-end/back-end/controllers/export.go b/front-end/back-end/controllers/export.go deleted file mode 100644 index 99f2788..0000000 --- a/front-end/back-end/controllers/export.go +++ /dev/null @@ -1,23 +0,0 @@ -package controllers - -import ( - "main/logic" - "main/models" - "main/utils" - - "github.com/gin-gonic/gin" - "go.uber.org/zap" -) - -func WriteIntoExcelHandler(c *gin.Context) { - s := new(models.SaveInfo) - savePath, err := logic.WriteIntoExcelLogic() - if err != nil { - zap.L().Error("Write info error", zap.Error(err)) - utils.ResponseError(c, utils.CodeWriteInfoError) - return - } - s.SavePath = savePath - s.Msg = "信息保存成功" - utils.ResponseSuccess(c, s) -} diff --git a/front-end/back-end/controllers/import.go b/front-end/back-end/controllers/import.go deleted file mode 100644 index 44a7b37..0000000 --- a/front-end/back-end/controllers/import.go +++ /dev/null @@ -1,24 +0,0 @@ -package controllers - -import ( - "main/logic" - "main/utils" - - "github.com/gin-gonic/gin" - "go.uber.org/zap" -) - -func ImportStudentInfoHandler(c *gin.Context) { - file, err := c.FormFile("file") - if err != nil { - zap.L().Error("upload file failed", zap.Error(err)) - utils.ResponseError(c, utils.CodeUpLoadError) - return - } - if err = logic.ImportStudentInfoLogic(file); err != nil { - zap.L().Error("import file failed", zap.Error(err)) - utils.ResponseError(c, utils.CodeUpLoadError) - return - } - utils.ResponseSuccess(c, nil) -} diff --git a/front-end/back-end/controllers/roll.go b/front-end/back-end/controllers/roll.go deleted file mode 100644 index d3843f5..0000000 --- a/front-end/back-end/controllers/roll.go +++ /dev/null @@ -1,134 +0,0 @@ -package controllers - -import ( - "errors" - "main/logic" - "main/models" - "main/pkg/vt" - "main/utils" - - "github.com/gin-gonic/gin" - "github.com/go-playground/validator/v10" - "go.uber.org/zap" -) - -func GetAllStudentInfoHandler(c *gin.Context) { - info, err := logic.GetAllStudentInfoLogic() - if err != nil { - zap.L().Error("Get all student info error", zap.Error(err)) - if err == utils.ErrorStuInfoEmpty { - utils.ResponseError(c, utils.CodeStudentInfoEmpty) - return - } - utils.ResponseError(c, utils.CodeServerBusy) - return - } - utils.ResponseSuccess(c, info) -} - -func GetOneRandomStudentInfoHandler(c *gin.Context) { - info, err := logic.GetOneRandomStudentInfoLogic() - if err != nil { - zap.L().Error("Get student info error", zap.Error(err)) - if err == utils.ErrorStuInfoEmpty { - utils.ResponseError(c, utils.CodeStudentInfoEmpty) - return - } - utils.ResponseError(c, utils.CodeServerBusy) - return - } - utils.ResponseSuccess(c, info) -} - -func GetOneStudentInfoAccordScoreHandler(c *gin.Context) { - info, err := logic.GetOneStudentInfoAccordScoreLogic() - if err != nil { - zap.L().Error("Get one student info error", zap.Error(err)) - if err == utils.ErrorStuInfoEmpty { - utils.ResponseError(c, utils.CodeStudentInfoEmpty) - return - } - utils.ResponseError(c, utils.CodeServerBusy) - return - } - utils.ResponseSuccess(c, info) -} - -func GetNStudentInfoAccordScoreHandler(c *gin.Context) { - p := new(models.ParamNum) - if err := c.ShouldBindJSON(p); err != nil { - zap.L().Error("Get N student info with invalid param", zap.Error(err)) - errs, ok := err.(validator.ValidationErrors) - if !ok { - utils.ResponseError(c, utils.CodeInvalidParam) - return - } - utils.ResponseErrorWithMsg(c, utils.CodeInvalidParam, vt.RemoveTopStruct(errs.Translate(vt.Trans))) - return - } - info, err := logic.GetNStudentInfoAccordScoreLogic(p) - if err != nil { - zap.L().Error("Get n student info error", zap.Error(err)) - if err == utils.ErrorStuInfoEmpty { - utils.ResponseError(c, utils.CodeStudentInfoEmpty) - return - } - if err == utils.ErrorBeyondNum { - utils.ResponseError(c, utils.CodeTooMuchNum) - return - } - utils.ResponseError(c, utils.CodeServerBusy) - return - } - utils.ResponseSuccess(c, info) -} - -func GetTargetStudentInfoHandler(c *gin.Context) { - p := new(models.ParamUser) - if err := c.ShouldBindJSON(p); err != nil { - zap.L().Error("Get Target student info with invalid param", zap.Error(err)) - errs, ok := err.(validator.ValidationErrors) - if !ok { - utils.ResponseError(c, utils.CodeInvalidParam) - return - } - utils.ResponseErrorWithMsg(c, utils.CodeInvalidParam, vt.RemoveTopStruct(errs.Translate(vt.Trans))) - return - } - back, err := logic.GetTargetStudentInfoLogic(p) - if err != nil { - zap.L().Error("Get Target failed", zap.Error(err)) - if errors.Is(err, utils.ErrorInvalidStuId) { - utils.ResponseError(c, utils.CodeInvalidParam) - return - } - utils.ResponseError(c, utils.CodeServerBusy) - return - } - utils.ResponseSuccess(c, back) -} - -func ChangeStuScoreHandler(c *gin.Context) { - p := new(models.ParamUser) - if err := c.ShouldBindJSON(p); err != nil { - zap.L().Error("Change student score with invalid param", zap.Error(err)) - errs, ok := err.(validator.ValidationErrors) - if !ok { - utils.ResponseError(c, utils.CodeInvalidParam) - return - } - utils.ResponseErrorWithMsg(c, utils.CodeInvalidParam, vt.RemoveTopStruct(errs.Translate(vt.Trans))) - return - } - back, err := logic.ChangeStuScoreLogic(p) - if err != nil { - zap.L().Error("Change score failed", zap.Error(err)) - if errors.Is(err, utils.ErrorInvalidStuId) { - utils.ResponseError(c, utils.CodeInvalidParam) - return - } - utils.ResponseError(c, utils.CodeServerBusy) - return - } - utils.ResponseSuccess(c, back) -} diff --git a/front-end/back-end/controllers/trace.go b/front-end/back-end/controllers/trace.go deleted file mode 100644 index 920789a..0000000 --- a/front-end/back-end/controllers/trace.go +++ /dev/null @@ -1,30 +0,0 @@ -package controllers - -// import ( -// "fmt" -// "os" -// "os/signal" -// "runtime/pprof" -// "syscall" -// ) - -// func isTrace(bool) { -// f, err := os.Create("cpu.prof") -// if err != nil { -// fmt.Printf("could not create CPU profile: %v\n", err) -// return -// } -// defer f.Close() -// if err := pprof.StartCPUProfile(f); err != nil { -// fmt.Printf("could not start CPU profile: %v\n", err) -// return -// } -// // 设置信号处理 -// c := make(chan os.Signal, 1) -// signal.Notify(c, syscall.SIGINT, syscall.SIGTERM) - -// defer func() { -// pprof.StopCPUProfile() -// fmt.Println("CPU profiling stopped and file closed.") -// }() -// } diff --git a/front-end/back-end/dao/mysql/import.go b/front-end/back-end/dao/mysql/import.go deleted file mode 100644 index 4c0ef1b..0000000 --- a/front-end/back-end/dao/mysql/import.go +++ /dev/null @@ -1,21 +0,0 @@ -package mysql - -import ( - "main/models" -) - -func ImportStudentInfoIntoSql(s []models.User) (err error) { - for _, user := range s { - user_id := user.User_id - user_name := user.User_name - user_gender := user.User_gender - user_score := user.User_score - - // 插入数据到数据库,如果数据冲突则替换 - _, err := db.Exec("REPLACE INTO user (user_id, user_name, user_gender, user_score) VALUES (?, ?, ?, ?)", user_id, user_name, user_gender, user_score) - if err != nil { - return err - } - } - return -} diff --git a/front-end/back-end/dao/mysql/init.sql b/front-end/back-end/dao/mysql/init.sql deleted file mode 100644 index cb33b8d..0000000 --- a/front-end/back-end/dao/mysql/init.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE DATABASE IF NOT EXISTS test; - -USE test; - -CREATE TABLE IF NOT EXISTS `user` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT, - `user_id` bigint(20) NOT NULL, - `user_name` varchar(64) COLLATE utf8mb4_general_ci NOT NULL, - `user_gender` tinyint(4) NOT NULL DEFAULT '0', - `user_score` bigint(20) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - UNIQUE KEY `idx_user_id` (`user_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; \ No newline at end of file diff --git a/front-end/back-end/dao/mysql/mysql.go b/front-end/back-end/dao/mysql/mysql.go deleted file mode 100644 index 93e3956..0000000 --- a/front-end/back-end/dao/mysql/mysql.go +++ /dev/null @@ -1,100 +0,0 @@ -package mysql - -import ( - "fmt" - "os" - "strings" - - "github.com/jmoiron/sqlx" - "github.com/spf13/viper" - "go.uber.org/zap" - - _ "github.com/go-sql-driver/mysql" -) - -var sqlFile = "dao/mysql/init.sql" - -var db *sqlx.DB - -func Init() (err error) { - dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/", - viper.GetString("mysql.user"), - viper.GetString("mysql.password"), - viper.GetString("mysql.host"), - viper.GetInt("mysql.port"), - ) - db, err = sqlx.Connect("mysql", dsn) - if err != nil { - zap.L().Error("connect DB failed", zap.Error(err)) - return err - } - dbName := viper.GetString("mysql.dbname") - err = createDatabaseIfNotExists(db, dbName) - if err != nil { - zap.L().Error("connect Database failed", zap.Error(err)) - return err - } - dsn = fmt.Sprintf("%s:%s@tcp(%s:%d)/%s", - viper.GetString("mysql.user"), - viper.GetString("mysql.password"), - viper.GetString("mysql.host"), - viper.GetInt("mysql.port"), - viper.GetString("mysql.dbname"), - ) - db, err = sqlx.Connect("mysql", dsn) - if err != nil { - zap.L().Error("connect DB failed", zap.Error(err)) - return err - } - err = importTableIfNotExists() - if err != nil { - zap.L().Error("import Sql failed", zap.Error(err)) - return err - } - // 最大闲置连接 - db.SetMaxIdleConns(viper.GetInt("max_idle_conns")) - // 最大连接 - db.SetMaxOpenConns(viper.GetInt("max_open_conns")) - return -} - -func createDatabaseIfNotExists(db *sqlx.DB, dbName string) error { - _, err := db.Exec(fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s", dbName)) - return err -} - -func importTableIfNotExists() error { - return importSQL(db, sqlFile) -} - -func importSQL(db *sqlx.DB, filePath string) error { - sqlBytes, err := os.ReadFile(filePath) - if err != nil { - return err - } - - sqlStatements := string(sqlBytes) - statements := strings.Split(sqlStatements, ";") - - for _, statement := range statements { - if strings.TrimSpace(statement) != "" { - _, err = db.Exec(statement) - if err != nil { - return err - } - } - } - return err -} - -func GetDb() *sqlx.DB { - return db -} - -func ChangeDb(anotherDb *sqlx.DB) { - db = anotherDb -} - -func Close() { - _ = db.Close() -} diff --git a/front-end/back-end/dao/mysql/roll.go b/front-end/back-end/dao/mysql/roll.go deleted file mode 100644 index 6967825..0000000 --- a/front-end/back-end/dao/mysql/roll.go +++ /dev/null @@ -1,66 +0,0 @@ -package mysql - -import ( - "database/sql" - "main/models" - "main/utils" -) - -func GetAllStudentInfo() (back *[]models.User, err error) { - sqlStr := `select - user_id, user_name, user_gender, user_score - from user - ORDER BY user_score ASC` - back = new([]models.User) - if err = db.Select(back, sqlStr); err != nil { - if err == sql.ErrNoRows { - err = utils.ErrorStuInfoEmpty - return - } - return - } - return -} - -func GetOneRandomStudentInfo() (back *models.User, err error) { - sqlStr := `select - user_id, user_name, user_gender, user_score - from user - ORDER BY RAND() LIMIT 1` - back = new(models.User) - if err = db.Get(back, sqlStr); err != nil { - if err == sql.ErrNoRows { - err = utils.ErrorStuInfoEmpty - return - } - return - } - return -} - -func GetTargetStudentInfo(user_id int64) (back *models.User, err error) { - sqlStr := `select - user_id, user_name, user_gender, user_score - from user - where user_id = ?` - back = new(models.User) - if err = db.Get(back, sqlStr, user_id); err != nil { - if err == sql.ErrNoRows { - err = utils.ErrorStuInfoEmpty - return - } - return - } - return -} - -func ChangeStuScore(user *models.UserScore) (err error) { - sqlStr := `update user set - user_score = ? - where user_id=?` - r, err := db.Exec(sqlStr, user.User_score, user.User_id) - if n, err := r.RowsAffected(); err != nil || n == 0 { - return utils.ErrorInvalidStuId - } - return -} diff --git a/front-end/back-end/dao/redis/redis.go b/front-end/back-end/dao/redis/redis.go deleted file mode 100644 index da8631d..0000000 --- a/front-end/back-end/dao/redis/redis.go +++ /dev/null @@ -1,3 +0,0 @@ -package redis - -// 暂时不用 diff --git a/front-end/back-end/document/20241010171749.xlsx b/front-end/back-end/document/20241010171749.xlsx deleted file mode 100644 index 91c221b..0000000 Binary files a/front-end/back-end/document/20241010171749.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241010172203.xlsx b/front-end/back-end/document/20241010172203.xlsx deleted file mode 100644 index 9824b10..0000000 Binary files a/front-end/back-end/document/20241010172203.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011161101.xlsx b/front-end/back-end/document/20241011161101.xlsx deleted file mode 100644 index dd01fc8..0000000 Binary files a/front-end/back-end/document/20241011161101.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011165252.xlsx b/front-end/back-end/document/20241011165252.xlsx deleted file mode 100644 index 5bf00bb..0000000 Binary files a/front-end/back-end/document/20241011165252.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011165513.xlsx b/front-end/back-end/document/20241011165513.xlsx deleted file mode 100644 index 5bf00bb..0000000 Binary files a/front-end/back-end/document/20241011165513.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011170329.xlsx b/front-end/back-end/document/20241011170329.xlsx deleted file mode 100644 index 4e9ffa3..0000000 Binary files a/front-end/back-end/document/20241011170329.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011170602.xlsx b/front-end/back-end/document/20241011170602.xlsx deleted file mode 100644 index 4e9ffa3..0000000 Binary files a/front-end/back-end/document/20241011170602.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011172205.xlsx b/front-end/back-end/document/20241011172205.xlsx deleted file mode 100644 index 4e9ffa3..0000000 Binary files a/front-end/back-end/document/20241011172205.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011172624.xlsx b/front-end/back-end/document/20241011172624.xlsx deleted file mode 100644 index c7ef11f..0000000 Binary files a/front-end/back-end/document/20241011172624.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011172625.xlsx b/front-end/back-end/document/20241011172625.xlsx deleted file mode 100644 index c7ef11f..0000000 Binary files a/front-end/back-end/document/20241011172625.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011172643.xlsx b/front-end/back-end/document/20241011172643.xlsx deleted file mode 100644 index c7ef11f..0000000 Binary files a/front-end/back-end/document/20241011172643.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011173831.xlsx b/front-end/back-end/document/20241011173831.xlsx deleted file mode 100644 index c7ef11f..0000000 Binary files a/front-end/back-end/document/20241011173831.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011173832.xlsx b/front-end/back-end/document/20241011173832.xlsx deleted file mode 100644 index c7ef11f..0000000 Binary files a/front-end/back-end/document/20241011173832.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011174126.xlsx b/front-end/back-end/document/20241011174126.xlsx deleted file mode 100644 index af4642c..0000000 Binary files a/front-end/back-end/document/20241011174126.xlsx and /dev/null differ diff --git a/front-end/back-end/document/20241011174138.xlsx b/front-end/back-end/document/20241011174138.xlsx deleted file mode 100644 index 25fd121..0000000 Binary files a/front-end/back-end/document/20241011174138.xlsx and /dev/null differ diff --git a/front-end/back-end/document/test.xlsx b/front-end/back-end/document/test.xlsx deleted file mode 100644 index d6c3333..0000000 Binary files a/front-end/back-end/document/test.xlsx and /dev/null differ diff --git a/front-end/back-end/go.mod b/front-end/back-end/go.mod deleted file mode 100644 index 202503b..0000000 --- a/front-end/back-end/go.mod +++ /dev/null @@ -1,58 +0,0 @@ -module main - -go 1.19 - -require ( - github.com/DATA-DOG/go-sqlmock v1.5.2 // indirect - github.com/bwmarrin/snowflake v0.3.0 // indirect - github.com/bytedance/sonic v1.8.0 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/gin-gonic/gin v1.9.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.11.2 // indirect - github.com/go-sql-driver/mysql v1.7.0 // indirect - github.com/goccy/go-json v0.10.0 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/jmoiron/sqlx v1.3.5 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.0.9 // indirect - github.com/leodido/go-urn v1.2.1 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect - github.com/mitchellh/mapstructure v1.5.0 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect - github.com/natefinch/lumberjack v2.0.0+incompatible // indirect - github.com/pelletier/go-toml/v2 v2.0.6 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/richardlehane/mscfb v1.0.4 // indirect - github.com/richardlehane/msoleps v1.0.3 // indirect - github.com/spf13/afero v1.9.3 // indirect - github.com/spf13/cast v1.5.0 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/spf13/viper v1.15.0 // indirect - github.com/stretchr/testify v1.9.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.2.9 // indirect - github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 // indirect - github.com/xuri/excelize/v2 v2.8.1 // indirect - github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05 // indirect - go.uber.org/atomic v1.9.0 // indirect - go.uber.org/multierr v1.8.0 // indirect - go.uber.org/zap v1.24.0 // indirect - golang.org/x/arch v0.0.0-20210923205945-b76863e36670 // indirect - golang.org/x/crypto v0.19.0 // indirect - golang.org/x/net v0.21.0 // indirect - golang.org/x/sys v0.17.0 // indirect - golang.org/x/text v0.14.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect -) diff --git a/front-end/back-end/go.sum b/front-end/back-end/go.sum deleted file mode 100644 index ab11bf5..0000000 --- a/front-end/back-end/go.sum +++ /dev/null @@ -1,566 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= -github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0= -github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE= -github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.8.0 h1:ea0Xadu+sHlu7x5O3gKhRpQ1IKiMrSiHttPF0ybECuA= -github.com/bytedance/sonic v1.8.0/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chenzhuoyu/base64x v0.0.0-20211019084208-fb5309c8db06/go.mod h1:DH46F32mSOjUmXrMHnKwZdA8wcEefY7UVqBKYGjpdQY= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 h1:qSGYFH7+jGhDF8vLC+iwCD4WpbV1EBDSzWkJODFLams= -github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311/go.mod h1:b583jCggY9gE99b6G5LEC39OIiVsWj+R97kbl5odCEk= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.9.0 h1:OjyFBKICoexlu99ctXNR2gg+c5pKrKMuyjgARg9qeY8= -github.com/gin-gonic/gin v1.9.0/go.mod h1:W1Me9+hsUSyj3CePGrd1/QrKJMSJ1Tu/0hFEH89961k= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.11.2 h1:q3SHpufmypg+erIExEKUmsgmhDTyhcJ38oeKGACXohU= -github.com/go-playground/validator/v10 v10.11.2/go.mod h1:NieE624vt4SCTJtD87arVLvdmjPAeV8BQlHtMnw9D7s= -github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= -github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc= -github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= -github.com/goccy/go-json v0.10.0 h1:mXKd9Qw4NuzShiRlOXKews24ufknHO7gx30lsDyokKA= -github.com/goccy/go-json v0.10.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= -github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= -github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= -github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 h1:ZqeYNhU3OHLH3mGKHDcjJRFFRrJa6eAM5H+CtDdOsPc= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= -github.com/natefinch/lumberjack v2.0.0+incompatible h1:4QJd3OLAMgj7ph+yZTuX13Ld4UpgHp07nNdFX7mqFfM= -github.com/natefinch/lumberjack v2.0.0+incompatible/go.mod h1:Wi9p2TTF5DG5oU+6YfsmYQpsTIOm0B1VNzQg9Mw6nPk= -github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= -github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -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= -github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM= -github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk= -github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= -github.com/richardlehane/msoleps v1.0.3 h1:aznSZzrwYRl3rLKRT3gUk9am7T/mLNSnJINvN0AQoVM= -github.com/richardlehane/msoleps v1.0.3/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= -github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= -github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= -github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= -github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= -github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= -github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/ugorji/go/codec v1.2.9 h1:rmenucSohSTiyL09Y+l2OCk+FrMxGMzho2+tjr5ticU= -github.com/ugorji/go/codec v1.2.9/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 h1:Chd9DkqERQQuHpXjR/HSV1jLZA6uaoiwwH3vSuF3IW0= -github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI= -github.com/xuri/excelize/v2 v2.8.1 h1:pZLMEwK8ep+CLIUWpWmvW8IWE/yxqG0I1xcN6cVMGuQ= -github.com/xuri/excelize/v2 v2.8.1/go.mod h1:oli1E4C3Pa5RXg1TBXn4ENCXDV5JUMlBluUhG7c+CEE= -github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05 h1:qhbILQo1K3mphbwKh1vNm4oGezE1eF9fQWmNiIpSfI4= -github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= -go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= -go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670 h1:18EFjUmQOcUvxNYSkA6jO9VAiXCnxFY6NyDX0bHDmkU= -golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= -golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.5.0 h1:U/0M97KRkSFvyD/3FSmdP5W5swImpNgle/EHFhOsQPE= -golang.org/x/crypto v0.5.0/go.mod h1:NK/OQwhpMQP3MwtdjgLlYHnH9ebylxKWv3e0fK+mkQU= -golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/front-end/back-end/logger.log b/front-end/back-end/logger.log deleted file mode 100644 index 5578cc0..0000000 --- a/front-end/back-end/logger.log +++ /dev/null @@ -1,718 +0,0 @@ -2024-10-08T22:44:49.601+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-08T22:44:49.623+0800 ERROR mysql/mysql.go:57 import Sql failed {"error": "Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USE test;\r\n\r\nCREATE TABLE IF NOT EXISTS `user`(\r\n `id` bigint(20) NOT NULL AU' at line 3"} -2024-10-08T22:47:22.668+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-08T22:47:22.679+0800 ERROR mysql/mysql.go:57 import Sql failed {"error": "Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USE test;\r\n\r\nCREATE TABLE IF NOT EXISTS `user` (\r\n `id` bigint(20) NOT NULL A' at line 3"} -2024-10-08T22:50:18.339+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-08T22:50:18.350+0800 ERROR mysql/mysql.go:58 import Sql failed {"error": "Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USE test;\r\n\r\nCREATE TABLE IF NOT EXISTS `user` (\r\n `id` bigint(20) NOT NULL A' at line 3"} -2024-10-08T22:51:36.943+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-08T22:53:25.958+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-08T22:53:41.104+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-08T22:53:41.710+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-08T22:53:42.319+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-08T22:53:42.506+0800 INFO logger/logger.go:84 / {"status": 200, "method": "GET", "path": "/", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0.000997} -2024-10-08T22:53:42.547+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-08T22:53:55.665+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-08T22:53:55.666+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-09T10:23:57.240+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-09T10:24:28.717+0800 ERROR controllers/import.go:14 upload file failed {"error": "request Content-Type isn't multipart/form-data"} -2024-10-09T10:24:28.717+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0} -2024-10-09T10:30:05.107+0800 ERROR controllers/import.go:14 upload file failed {"error": "request Content-Type isn't multipart/form-data"} -2024-10-09T10:30:05.108+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008048} -2024-10-09T10:32:35.430+0800 ERROR controllers/import.go:14 upload file failed {"error": "http: no such file"} -2024-10-09T10:32:35.430+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0001715} -2024-10-09T10:35:11.672+0800 ERROR controllers/import.go:14 upload file failed {"error": "http: no such file"} -2024-10-09T10:35:11.672+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0001696} -2024-10-09T10:36:59.975+0800 ERROR controllers/import.go:14 upload file failed {"error": "http: no such file"} -2024-10-09T10:36:59.975+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0004826} -2024-10-09T10:37:26.907+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0042041} -2024-10-09T10:40:45.019+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-09T10:40:45.019+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-09T10:40:56.240+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-09T10:41:02.311+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0030574} -2024-10-09T10:46:49.266+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0031871} -2024-10-09T10:47:12.691+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-09T10:47:12.692+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-09T10:48:18.945+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-09T10:48:18.954+0800 ERROR mysql/mysql.go:28 connect DB failed {"error": "Error 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)"} -2024-10-09T10:48:25.753+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-09T10:48:35.468+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0312476} -2024-10-09T10:49:00.863+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-09T10:49:00.864+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T11:19:29.780+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T11:19:52.803+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013431} -2024-10-10T11:19:58.739+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016332} -2024-10-10T11:19:59.638+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0025188} -2024-10-10T11:20:00.748+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.000904} -2024-10-10T11:20:01.662+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020679} -2024-10-10T11:24:38.254+0800 INFO logger/logger.go:84 /change-score {"status": 404, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0} -2024-10-10T11:24:49.335+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T11:24:49.335+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T11:25:24.874+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T11:25:30.921+0800 ERROR controllers/roll.go:32 Change student score with invalid param {"error": "json: cannot unmarshal string into Go struct field ParamUser.user_id of type int64"} -2024-10-10T11:25:30.921+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0} -2024-10-10T11:26:58.507+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0091657} -2024-10-10T11:28:46.133+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0094495} -2024-10-10T11:29:01.256+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017139} -2024-10-10T11:29:03.056+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0023042} -2024-10-10T11:29:03.842+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001872} -2024-10-10T11:29:04.501+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011261} -2024-10-10T11:29:05.187+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012705} -2024-10-10T11:32:28.653+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T11:32:28.653+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T11:32:38.696+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T11:32:46.064+0800 ERROR controllers/roll.go:43 Change score failed {"error": "学生学号错误"} -2024-10-10T11:32:46.065+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010372} -2024-10-10T11:33:25.288+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008169} -2024-10-10T11:33:26.249+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017864} -2024-10-10T11:33:26.906+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014298} -2024-10-10T11:33:27.547+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010218} -2024-10-10T11:33:49.155+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0086731} -2024-10-10T11:59:03.578+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T11:59:03.578+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T11:59:11.473+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T11:59:46.943+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010844} -2024-10-10T11:59:51.778+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010864} -2024-10-10T11:59:52.450+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0006525} -2024-10-10T11:59:53.201+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013134} -2024-10-10T11:59:53.832+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001509} -2024-10-10T11:59:54.616+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007929} -2024-10-10T11:59:55.272+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016778} -2024-10-10T11:59:55.878+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020307} -2024-10-10T11:59:56.604+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017869} -2024-10-10T11:59:57.251+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013072} -2024-10-10T11:59:57.840+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009873} -2024-10-10T11:59:58.484+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015749} -2024-10-10T11:59:59.098+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014681} -2024-10-10T11:59:59.658+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015421} -2024-10-10T12:00:00.316+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016601} -2024-10-10T12:00:00.864+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013168} -2024-10-10T12:00:01.439+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007906} -2024-10-10T12:01:02.285+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T12:01:02.285+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T17:17:02.165+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T17:17:49.842+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0046563} -2024-10-10T17:19:48.905+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0114776} -2024-10-10T17:21:26.076+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T17:21:26.082+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T17:21:56.807+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T17:22:03.710+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0051938} -2024-10-10T17:23:17.017+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T17:23:17.018+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T18:28:52.257+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T18:29:50.043+0800 ERROR controllers/roll.go:57 Get Target failed {"error": "expected slice but got struct"} -2024-10-10T18:29:50.043+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016962} -2024-10-10T18:32:35.675+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T18:32:35.675+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T18:32:48.666+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T18:32:53.255+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015498} -2024-10-10T18:37:49.284+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T18:37:49.285+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-10T18:37:58.019+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-10T18:38:17.370+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011501} -2024-10-10T18:38:59.734+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-10T18:38:59.734+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T13:32:09.142+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-11T13:33:09.933+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017475} -2024-10-11T13:33:28.713+0800 ERROR controllers/roll.go:71 Get n student info error {"error": "请求数量过多"} -2024-10-11T13:33:28.713+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009153} -2024-10-11T13:35:07.424+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T13:35:07.424+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T13:35:21.213+0800 DEBUG 结对编程/main.go:29 init ogger success... -2024-10-11T13:35:26.315+0800 ERROR controllers/roll.go:71 Get n student info error {"error": "请求数量过多"} -2024-10-11T13:35:26.315+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013718} -2024-10-11T13:35:31.214+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0022542} -2024-10-11T13:35:40.915+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011042} -2024-10-11T13:35:52.389+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013604} -2024-10-11T13:35:55.019+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0022469} -2024-10-11T13:35:55.762+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019498} -2024-10-11T13:35:56.578+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010667} -2024-10-11T13:35:57.284+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019722} -2024-10-11T13:35:58.167+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016329} -2024-10-11T13:36:09.132+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T13:36:09.132+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T16:07:38.181+0800 DEBUG 结对编程/main.go:34 init ogger success... -2024-10-11T16:07:46.451+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012872} -2024-10-11T16:07:52.025+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0006048} -2024-10-11T16:07:52.740+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010441} -2024-10-11T16:08:04.430+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0093744} -2024-10-11T16:08:09.162+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014422} -2024-10-11T16:08:11.863+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018793} -2024-10-11T16:08:17.316+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020434} -2024-10-11T16:08:27.027+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0391327} -2024-10-11T16:08:30.164+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015989} -2024-10-11T16:08:42.022+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.083+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.085+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.094+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.102+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.110+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.119+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.126+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.137+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.143+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.151+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.161+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.169+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.177+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.185+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.193+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.202+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.211+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.218+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.228+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.235+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.243+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.253+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.260+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.268+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.277+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.286+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.294+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.302+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.310+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.319+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.327+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0.0009948} -2024-10-11T16:08:42.335+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.343+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.353+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.360+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.369+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.377+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.385+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.394+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.404+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.411+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.418+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.427+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.438+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.443+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.455+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.460+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.469+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.477+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.486+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.493+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.503+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.510+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.518+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.527+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.544+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.552+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.559+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.569+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.576+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.585+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.594+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.602+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.610+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.620+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.628+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.635+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.643+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.652+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.660+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.669+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.677+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.685+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.699+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.710+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.719+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.727+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:42.791+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:43.403+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:44.010+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:44.619+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:45.226+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:08:45.827+0800 INFO logger/logger.go:84 /favicon.ico {"status": 404, "method": "GET", "path": "/favicon.ico", "query": "", "ip": "::1", "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.6261.95 Safari/537.36", "errors": "", "cost": 0} -2024-10-11T16:10:21.376+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T16:10:21.376+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T16:10:32.504+0800 DEBUG 结对编程/main.go:35 init ogger success... -2024-10-11T16:10:39.989+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001202} -2024-10-11T16:10:42.119+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018549} -2024-10-11T16:10:49.971+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0097045} -2024-10-11T16:10:51.768+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020504} -2024-10-11T16:10:55.003+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014074} -2024-10-11T16:11:01.897+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0055846} -2024-10-11T16:11:07.546+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016413} -2024-10-11T16:28:54.295+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0025567} -2024-10-11T16:28:55.535+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015653} -2024-10-11T16:28:58.155+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017033} -2024-10-11T16:29:01.760+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T16:29:01.760+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0023241} -2024-10-11T16:29:04.662+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.006825} -2024-10-11T16:29:06.967+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015315} -2024-10-11T16:29:09.561+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021642} -2024-10-11T16:29:12.459+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014731} -2024-10-11T16:29:16.284+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018699} -2024-10-11T16:35:46.398+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T16:35:46.398+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T16:39:35.620+0800 DEBUG 结对编程/main.go:35 init ogger success... -2024-10-11T16:39:45.794+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010425} -2024-10-11T16:39:48.374+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016884} -2024-10-11T16:39:50.778+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015371} -2024-10-11T16:39:58.206+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015556} -2024-10-11T16:40:00.396+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018612} -2024-10-11T16:40:08.869+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012808} -2024-10-11T16:40:11.402+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0030717} -2024-10-11T16:40:13.469+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014858} -2024-10-11T16:40:16.237+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014226} -2024-10-11T16:40:19.639+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018112} -2024-10-11T16:40:22.691+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001708} -2024-10-11T16:40:25.297+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002014} -2024-10-11T16:40:27.024+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T16:40:27.024+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.003331} -2024-10-11T16:40:31.491+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0093071} -2024-10-11T16:40:34.745+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017774} -2024-10-11T16:40:37.486+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019754} -2024-10-11T16:40:38.101+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018645} -2024-10-11T16:40:38.787+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008922} -2024-10-11T16:40:39.690+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008833} -2024-10-11T16:40:40.671+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018242} -2024-10-11T16:40:41.468+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017603} -2024-10-11T16:40:42.332+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015358} -2024-10-11T16:40:43.051+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017377} -2024-10-11T16:40:43.785+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013435} -2024-10-11T16:40:44.552+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007564} -2024-10-11T16:40:46.427+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014944} -2024-10-11T16:42:07.680+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018391} -2024-10-11T16:42:08.633+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0023895} -2024-10-11T16:42:10.247+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021288} -2024-10-11T16:42:10.973+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015595} -2024-10-11T16:42:11.573+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010971} -2024-10-11T16:42:12.216+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017665} -2024-10-11T16:42:12.740+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011857} -2024-10-11T16:42:14.491+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T16:42:14.492+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017058} -2024-10-11T16:42:18.299+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0084018} -2024-10-11T16:42:20.310+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019233} -2024-10-11T16:42:23.381+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013245} -2024-10-11T16:42:25.238+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020435} -2024-10-11T16:42:31.186+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017039} -2024-10-11T16:42:35.484+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013763} -2024-10-11T16:42:37.841+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001399} -2024-10-11T16:42:39.619+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019627} -2024-10-11T16:42:41.897+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019777} -2024-10-11T16:42:46.130+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017051} -2024-10-11T16:42:48.286+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019646} -2024-10-11T16:49:53.288+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T16:49:53.345+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T16:52:11.927+0800 DEBUG 结对编程/main.go:33 init ogger success... -2024-10-11T16:52:32.363+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012955} -2024-10-11T16:52:34.498+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009858} -2024-10-11T16:52:35.797+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009661} -2024-10-11T16:52:39.346+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0101139} -2024-10-11T16:52:42.060+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015155} -2024-10-11T16:52:43.744+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019501} -2024-10-11T16:52:49.102+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0344849} -2024-10-11T16:52:52.761+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.004692} -2024-10-11T16:53:18.687+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T16:53:18.687+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T16:55:06.137+0800 DEBUG 结对编程/main.go:33 init ogger success... -2024-10-11T16:55:13.767+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.003834} -2024-10-11T16:55:15.381+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.000807} -2024-10-11T16:55:16.735+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014166} -2024-10-11T16:55:18.055+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0308542} -2024-10-11T16:55:19.261+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T16:55:19.261+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.00188} -2024-10-11T16:55:20.633+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016368} -2024-10-11T16:55:21.929+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014461} -2024-10-11T16:55:23.192+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0025728} -2024-10-11T16:55:26.346+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0101264} -2024-10-11T16:55:32.272+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T16:55:32.272+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T17:02:59.649+0800 DEBUG 结对编程/main.go:35 init ogger success... -2024-10-11T17:03:17.376+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:03:17.376+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011837} -2024-10-11T17:03:20.725+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0089777} -2024-10-11T17:03:22.616+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010847} -2024-10-11T17:03:23.947+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016485} -2024-10-11T17:03:25.271+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018828} -2024-10-11T17:03:26.950+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010504} -2024-10-11T17:03:28.101+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018476} -2024-10-11T17:03:29.420+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0059005} -2024-10-11T17:03:30.983+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0327325} -2024-10-11T17:03:39.721+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T17:03:39.721+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T17:05:51.721+0800 DEBUG 结对编程/main.go:36 init ogger success... -2024-10-11T17:05:58.144+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0297588} -2024-10-11T17:05:59.571+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001167} -2024-10-11T17:06:00.975+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015401} -2024-10-11T17:06:02.582+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0028184} -2024-10-11T17:06:03.887+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:06:03.887+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019776} -2024-10-11T17:06:05.249+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017376} -2024-10-11T17:06:06.809+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013159} -2024-10-11T17:06:08.269+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011524} -2024-10-11T17:06:16.802+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T17:06:16.802+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T17:06:53.364+0800 DEBUG 结对编程/main.go:36 init ogger success... -2024-10-11T17:07:00.403+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011623} -2024-10-11T17:07:01.292+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014497} -2024-10-11T17:07:02.230+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021806} -2024-10-11T17:07:03.070+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021893} -2024-10-11T17:07:05.311+0800 INFO gfsd/gfsd.go:37 Shutdown Server ... -2024-10-11T17:07:05.311+0800 INFO gfsd/gfsd.go:46 Server exiting -2024-10-11T17:09:43.890+0800 DEBUG 结对编程/main.go:30 init ogger success... -2024-10-11T17:09:53.423+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018218} -2024-10-11T17:09:56.807+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014112} -2024-10-11T17:09:57.415+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015117} -2024-10-11T17:10:28.278+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016254} -2024-10-11T17:10:28.842+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016758} -2024-10-11T17:10:30.701+0800 INFO gfsd/gfsd.go:39 Shutdown Server ... -2024-10-11T17:10:46.088+0800 DEBUG 结对编程/main.go:30 init ogger success... -2024-10-11T17:10:50.439+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013162} -2024-10-11T17:10:50.990+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015412} -2024-10-11T17:10:51.612+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018411} -2024-10-11T17:10:52.240+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020681} -2024-10-11T17:10:52.773+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0006473} -2024-10-11T17:10:55.169+0800 INFO gfsd/gfsd.go:39 Shutdown Server ... -2024-10-11T17:10:55.169+0800 INFO gfsd/gfsd.go:48 Server exiting -2024-10-11T17:14:22.287+0800 DEBUG 结对编程/main.go:30 init ogger success... -2024-10-11T17:14:43.319+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2137608} -2024-10-11T17:15:36.701+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2218704} -2024-10-11T17:15:39.048+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2187577} -2024-10-11T17:15:39.875+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2201255} -2024-10-11T17:15:40.778+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2188191} -2024-10-11T17:15:41.637+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2185165} -2024-10-11T17:15:51.201+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2172494} -2024-10-11T17:15:51.937+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2224261} -2024-10-11T17:15:52.717+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.2191404} -2024-10-11T17:15:53.535+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.221383} -2024-10-11T17:15:54.353+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.223579} -2024-10-11T17:16:12.570+0800 INFO gfsd/gfsd.go:39 Shutdown Server ... -2024-10-11T17:16:12.570+0800 INFO gfsd/gfsd.go:48 Server exiting -2024-10-11T17:21:24.745+0800 DEBUG 结对编程/main.go:34 init ogger success... -2024-10-11T17:21:31.741+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017493} -2024-10-11T17:21:32.458+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019999} -2024-10-11T17:21:33.074+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016034} -2024-10-11T17:21:33.764+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017773} -2024-10-11T17:21:34.404+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017526} -2024-10-11T17:21:34.966+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021112} -2024-10-11T17:21:35.638+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008294} -2024-10-11T17:21:36.279+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016281} -2024-10-11T17:21:36.862+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019103} -2024-10-11T17:21:57.112+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002118} -2024-10-11T17:21:57.755+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020119} -2024-10-11T17:21:58.435+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016903} -2024-10-11T17:21:59.082+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002459} -2024-10-11T17:21:59.659+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018968} -2024-10-11T17:22:00.203+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017933} -2024-10-11T17:22:00.745+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012367} -2024-10-11T17:22:02.298+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021985} -2024-10-11T17:22:02.780+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018019} -2024-10-11T17:22:03.406+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017976} -2024-10-11T17:22:03.908+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014588} -2024-10-11T17:22:04.390+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012766} -2024-10-11T17:22:05.859+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0053609} -2024-10-11T17:22:07.547+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013757} -2024-10-11T17:22:08.077+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013836} -2024-10-11T17:22:08.483+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014738} -2024-10-11T17:22:09.898+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0022065} -2024-10-11T17:22:10.413+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020269} -2024-10-11T17:22:10.897+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011923} -2024-10-11T17:22:11.414+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019841} -2024-10-11T17:22:11.908+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019172} -2024-10-11T17:22:12.350+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016001} -2024-10-11T17:22:13.765+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0397269} -2024-10-11T17:22:14.454+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0294418} -2024-10-11T17:22:15.014+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0288461} -2024-10-11T17:22:16.951+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016378} -2024-10-11T17:22:17.496+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011638} -2024-10-11T17:22:19.294+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016683} -2024-10-11T17:22:19.769+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021657} -2024-10-11T17:22:21.302+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019255} -2024-10-11T17:22:21.832+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013618} -2024-10-11T17:22:22.337+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016544} -2024-10-11T17:22:22.889+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012215} -2024-10-11T17:22:23.525+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016616} -2024-10-11T17:22:24.023+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009307} -2024-10-11T17:22:24.543+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013158} -2024-10-11T17:22:25.010+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017232} -2024-10-11T17:22:25.606+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013166} -2024-10-11T17:22:27.343+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0026807} -2024-10-11T17:22:27.856+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014693} -2024-10-11T17:22:28.319+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014357} -2024-10-11T17:22:28.819+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014023} -2024-10-11T17:22:30.376+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009014} -2024-10-11T17:22:30.792+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002198} -2024-10-11T17:22:31.310+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008942} -2024-10-11T17:22:31.763+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014884} -2024-10-11T17:22:32.226+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013812} -2024-10-11T17:22:33.727+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:22:33.727+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012433} -2024-10-11T17:22:34.159+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:22:34.159+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007704} -2024-10-11T17:22:34.676+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:22:34.677+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0025647} -2024-10-11T17:22:36.252+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011508} -2024-10-11T17:22:36.766+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014274} -2024-10-11T17:22:37.281+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008883} -2024-10-11T17:22:38.990+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001373} -2024-10-11T17:22:39.521+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001747} -2024-10-11T17:22:40.127+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011549} -2024-10-11T17:22:40.609+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017231} -2024-10-11T17:22:43.412+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:22:43.412+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015877} -2024-10-11T17:22:44.037+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:22:44.037+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016663} -2024-10-11T17:22:47.135+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0105604} -2024-10-11T17:22:50.136+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011349} -2024-10-11T17:22:50.682+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011187} -2024-10-11T17:22:51.242+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008528} -2024-10-11T17:22:51.852+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007514} -2024-10-11T17:22:52.363+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012165} -2024-10-11T17:22:52.859+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0023536} -2024-10-11T17:22:55.177+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012378} -2024-10-11T17:22:55.632+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019178} -2024-10-11T17:22:57.106+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007489} -2024-10-11T17:22:57.676+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013428} -2024-10-11T17:22:58.209+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0024293} -2024-10-11T17:22:58.645+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010269} -2024-10-11T17:26:09.071+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014495} -2024-10-11T17:26:09.645+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016371} -2024-10-11T17:26:10.298+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021665} -2024-10-11T17:26:10.934+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001411} -2024-10-11T17:26:11.449+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015283} -2024-10-11T17:26:11.975+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016387} -2024-10-11T17:26:12.402+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017324} -2024-10-11T17:26:12.845+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015202} -2024-10-11T17:26:13.314+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019918} -2024-10-11T17:26:13.702+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019195} -2024-10-11T17:26:14.093+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011821} -2024-10-11T17:26:14.498+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001967} -2024-10-11T17:26:14.966+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002226} -2024-10-11T17:26:15.337+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017404} -2024-10-11T17:26:15.710+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016173} -2024-10-11T17:26:17.007+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021593} -2024-10-11T17:26:17.349+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001999} -2024-10-11T17:26:17.756+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016926} -2024-10-11T17:26:18.177+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017405} -2024-10-11T17:26:18.627+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021788} -2024-10-11T17:26:19.034+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013887} -2024-10-11T17:26:19.430+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013666} -2024-10-11T17:26:19.788+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0024553} -2024-10-11T17:26:20.292+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015819} -2024-10-11T17:26:20.734+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011898} -2024-10-11T17:26:21.124+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008233} -2024-10-11T17:26:22.634+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0306268} -2024-10-11T17:26:23.252+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0279495} -2024-10-11T17:26:24.824+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0075193} -2024-10-11T17:26:25.413+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0041233} -2024-10-11T17:26:26.893+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:26:26.893+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021718} -2024-10-11T17:26:27.327+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:26:27.327+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018146} -2024-10-11T17:26:27.669+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:26:27.670+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020913} -2024-10-11T17:26:29.029+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009589} -2024-10-11T17:26:29.450+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.00107} -2024-10-11T17:26:29.909+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010493} -2024-10-11T17:26:31.236+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001027} -2024-10-11T17:26:31.594+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016531} -2024-10-11T17:26:32.048+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016595} -2024-10-11T17:26:33.623+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001125} -2024-10-11T17:26:34.059+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016993} -2024-10-11T17:26:34.480+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011389} -2024-10-11T17:26:34.928+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008752} -2024-10-11T17:26:35.292+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0006584} -2024-10-11T17:26:35.789+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015256} -2024-10-11T17:26:36.180+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009658} -2024-10-11T17:26:36.621+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012603} -2024-10-11T17:26:37.009+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020185} -2024-10-11T17:26:37.472+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009912} -2024-10-11T17:26:37.955+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008796} -2024-10-11T17:26:38.311+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011061} -2024-10-11T17:26:38.762+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013931} -2024-10-11T17:26:39.211+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013599} -2024-10-11T17:26:39.712+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010908} -2024-10-11T17:26:40.181+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016381} -2024-10-11T17:26:40.635+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.000637} -2024-10-11T17:26:41.086+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007256} -2024-10-11T17:26:41.507+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019752} -2024-10-11T17:26:41.927+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008043} -2024-10-11T17:26:43.661+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0071406} -2024-10-11T17:26:50.387+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017965} -2024-10-11T17:26:50.871+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017579} -2024-10-11T17:26:51.184+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018068} -2024-10-11T17:26:51.516+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001647} -2024-10-11T17:26:51.893+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014745} -2024-10-11T17:26:52.199+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.000865} -2024-10-11T17:26:52.549+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013751} -2024-10-11T17:26:52.893+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0023833} -2024-10-11T17:26:53.173+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013003} -2024-10-11T17:26:53.470+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009872} -2024-10-11T17:26:53.766+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017858} -2024-10-11T17:26:54.062+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014354} -2024-10-11T17:26:54.345+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015693} -2024-10-11T17:26:54.654+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012979} -2024-10-11T17:26:54.995+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0006888} -2024-10-11T17:26:55.294+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021478} -2024-10-11T17:26:55.623+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020823} -2024-10-11T17:27:00.138+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001861} -2024-10-11T17:27:00.518+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018514} -2024-10-11T17:27:00.925+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001758} -2024-10-11T17:27:01.331+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015751} -2024-10-11T17:27:01.861+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020075} -2024-10-11T17:27:02.286+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018458} -2024-10-11T17:27:02.561+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010154} -2024-10-11T17:27:02.952+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017302} -2024-10-11T17:27:03.264+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018019} -2024-10-11T17:27:03.609+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019393} -2024-10-11T17:27:04.076+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002031} -2024-10-11T17:27:05.567+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010936} -2024-10-11T17:27:05.913+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012309} -2024-10-11T17:27:06.243+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010849} -2024-10-11T17:27:06.588+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.003671} -2024-10-11T17:27:06.896+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008498} -2024-10-11T17:27:07.257+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016933} -2024-10-11T17:38:21.218+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013449} -2024-10-11T17:38:21.749+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008155} -2024-10-11T17:38:22.353+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013601} -2024-10-11T17:38:22.904+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0026697} -2024-10-11T17:38:23.460+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011232} -2024-10-11T17:38:23.965+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019328} -2024-10-11T17:38:24.425+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016819} -2024-10-11T17:38:24.914+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020526} -2024-10-11T17:38:25.382+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014893} -2024-10-11T17:38:25.787+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001494} -2024-10-11T17:38:26.288+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010225} -2024-10-11T17:38:27.748+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011043} -2024-10-11T17:38:28.189+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015329} -2024-10-11T17:38:28.614+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018011} -2024-10-11T17:38:29.085+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017985} -2024-10-11T17:38:29.522+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001153} -2024-10-11T17:38:29.975+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019069} -2024-10-11T17:38:30.332+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009755} -2024-10-11T17:38:31.603+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0053626} -2024-10-11T17:38:32.105+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.003299} -2024-10-11T17:38:32.654+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0037482} -2024-10-11T17:38:34.071+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0306601} -2024-10-11T17:38:34.512+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0304993} -2024-10-11T17:38:35.033+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0304764} -2024-10-11T17:38:35.519+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0297331} -2024-10-11T17:38:36.029+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0264504} -2024-10-11T17:38:36.548+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0266072} -2024-10-11T17:38:37.090+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0328545} -2024-10-11T17:38:39.230+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:38:39.230+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010914} -2024-10-11T17:38:39.657+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:38:39.657+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017686} -2024-10-11T17:38:42.713+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0075855} -2024-10-11T17:38:43.146+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:38:43.146+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012492} -2024-10-11T17:38:44.605+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007713} -2024-10-11T17:38:45.109+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001562} -2024-10-11T17:38:45.500+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020184} -2024-10-11T17:38:45.923+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001374} -2024-10-11T17:38:47.340+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014355} -2024-10-11T17:38:47.734+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014169} -2024-10-11T17:38:48.301+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020341} -2024-10-11T17:38:48.771+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011731} -2024-10-11T17:38:49.238+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009914} -2024-10-11T17:38:51.211+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019161} -2024-10-11T17:38:52.004+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011185} -2024-10-11T17:38:52.596+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016865} -2024-10-11T17:38:53.225+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017367} -2024-10-11T17:38:55.896+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013504} -2024-10-11T17:38:56.333+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011454} -2024-10-11T17:38:56.867+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012413} -2024-10-11T17:38:57.306+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015165} -2024-10-11T17:39:02.909+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0329984} -2024-10-11T17:39:05.852+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0334309} -2024-10-11T17:39:06.336+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0343021} -2024-10-11T17:39:06.922+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0313426} -2024-10-11T17:39:07.474+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0367527} -2024-10-11T17:39:07.966+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0377657} -2024-10-11T17:39:08.563+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0338446} -2024-10-11T17:39:09.977+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017677} -2024-10-11T17:39:10.429+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009983} -2024-10-11T17:39:10.963+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001457} -2024-10-11T17:39:11.480+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021294} -2024-10-11T17:39:14.182+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020298} -2024-10-11T17:39:14.726+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008065} -2024-10-11T17:39:15.370+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013808} -2024-10-11T17:39:15.996+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009149} -2024-10-11T17:39:16.604+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013748} -2024-10-11T17:39:17.272+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016627} -2024-10-11T17:39:17.862+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001532} -2024-10-11T17:39:18.454+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018605} -2024-10-11T17:39:19.061+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019314} -2024-10-11T17:39:19.524+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015205} -2024-10-11T17:39:20.158+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014896} -2024-10-11T17:39:20.735+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013098} -2024-10-11T17:39:21.295+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014997} -2024-10-11T17:41:09.797+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009791} -2024-10-11T17:41:10.322+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009147} -2024-10-11T17:41:10.777+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019586} -2024-10-11T17:41:11.115+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0009009} -2024-10-11T17:41:11.493+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019038} -2024-10-11T17:41:11.898+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016558} -2024-10-11T17:41:12.255+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021189} -2024-10-11T17:41:12.648+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013415} -2024-10-11T17:41:13.037+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018275} -2024-10-11T17:41:13.395+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007583} -2024-10-11T17:41:13.708+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020111} -2024-10-11T17:41:14.936+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0008818} -2024-10-11T17:41:15.190+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015456} -2024-10-11T17:41:15.442+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011802} -2024-10-11T17:41:15.893+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011967} -2024-10-11T17:41:16.240+0800 INFO logger/logger.go:84 /get-all {"status": 200, "method": "POST", "path": "/get-all", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0021857} -2024-10-11T17:41:17.543+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019066} -2024-10-11T17:41:17.936+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017782} -2024-10-11T17:41:18.206+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017148} -2024-10-11T17:41:18.490+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020843} -2024-10-11T17:41:18.802+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0015077} -2024-10-11T17:41:19.066+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018001} -2024-10-11T17:41:19.350+0800 INFO logger/logger.go:84 /get-target-info {"status": 200, "method": "POST", "path": "/get-target-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0019169} -2024-10-11T17:41:20.478+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0092846} -2024-10-11T17:41:20.816+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:20.816+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0006972} -2024-10-11T17:41:21.116+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:21.116+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001266} -2024-10-11T17:41:21.414+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:21.414+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002197} -2024-10-11T17:41:21.665+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:21.665+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0018183} -2024-10-11T17:41:24.246+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0097951} -2024-10-11T17:41:24.627+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:24.627+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.002004} -2024-10-11T17:41:24.865+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:24.866+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016274} -2024-10-11T17:41:25.101+0800 ERROR controllers/roll.go:125 Change score failed {"error": "学生学号错误"} -2024-10-11T17:41:25.101+0800 INFO logger/logger.go:84 /change-score {"status": 200, "method": "POST", "path": "/change-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014548} -2024-10-11T17:41:26.198+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0030889} -2024-10-11T17:41:26.541+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0024032} -2024-10-11T17:41:26.837+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0035334} -2024-10-11T17:41:27.728+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0011093} -2024-10-11T17:41:27.965+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014828} -2024-10-11T17:41:28.164+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0007399} -2024-10-11T17:41:28.421+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013824} -2024-10-11T17:41:28.688+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012149} -2024-10-11T17:41:28.984+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014098} -2024-10-11T17:41:29.265+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013782} -2024-10-11T17:41:29.545+0800 INFO logger/logger.go:84 /get-accord-score {"status": 200, "method": "GET", "path": "/get-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0013694} -2024-10-11T17:41:30.802+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0017853} -2024-10-11T17:41:31.130+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014319} -2024-10-11T17:41:31.410+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0016182} -2024-10-11T17:41:31.721+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.000863} -2024-10-11T17:41:32.020+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020916} -2024-10-11T17:41:32.318+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0023931} -2024-10-11T17:41:32.568+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0020907} -2024-10-11T17:41:32.859+0800 INFO logger/logger.go:84 /get-random {"status": 200, "method": "GET", "path": "/get-random", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0010361} -2024-10-11T17:41:34.084+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0337886} -2024-10-11T17:41:34.378+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0329347} -2024-10-11T17:41:34.695+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0360095} -2024-10-11T17:41:35.032+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0574163} -2024-10-11T17:41:35.339+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0353909} -2024-10-11T17:41:35.706+0800 INFO logger/logger.go:84 /upload {"status": 200, "method": "POST", "path": "/upload", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.037389} -2024-10-11T17:41:36.779+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0012396} -2024-10-11T17:41:37.077+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.001974} -2024-10-11T17:41:37.326+0800 INFO logger/logger.go:84 /get-N-accord-score {"status": 200, "method": "POST", "path": "/get-N-accord-score", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0014256} -2024-10-11T17:41:38.329+0800 INFO logger/logger.go:84 /save-info {"status": 200, "method": "GET", "path": "/save-info", "query": "", "ip": "::1", "user-agent": "Apifox/1.0.0 (https://www.apifox.cn)", "errors": "", "cost": 0.0032669} -2024-10-11T17:44:29.619+0800 INFO gfsd/gfsd.go:39 Shutdown Server ... -2024-10-11T17:44:29.619+0800 INFO gfsd/gfsd.go:48 Server exiting -2024-10-11T21:06:33.944+0800 DEBUG back-end/main.go:33 init ogger success... -2024-10-11T21:06:33.965+0800 ERROR mysql/mysql.go:51 import Sql failed {"error": "Error 1193 (HY000): Unknown system variable 'query_cache_type'"} -2024-10-11T21:13:50.018+0800 DEBUG back-end/main.go:33 init ogger success... -2024-10-11T21:14:01.251+0800 INFO gfsd/gfsd.go:39 Shutdown Server ... -2024-10-11T21:14:01.251+0800 INFO gfsd/gfsd.go:48 Server exiting diff --git a/front-end/back-end/logger/logger.go b/front-end/back-end/logger/logger.go deleted file mode 100644 index 4b79d50..0000000 --- a/front-end/back-end/logger/logger.go +++ /dev/null @@ -1,142 +0,0 @@ -package logger - -import ( - "net" - "net/http" - "net/http/httputil" - "os" - "runtime/debug" - "strings" - "time" - - "github.com/gin-gonic/gin" - "github.com/natefinch/lumberjack" - "github.com/spf13/viper" - "go.uber.org/zap" - "go.uber.org/zap/zapcore" -) - -func Init() (err error) { - writerSyncer := getLogWriter( - viper.GetString("logger.name"), - viper.GetInt("logger.max_sizes"), - viper.GetInt("logger.max_age"), - viper.GetInt("logger.max_backups"), - ) - encoder := getEncoder() - var l = new(zapcore.Level) - err = l.UnmarshalText([]byte(viper.GetString("logger.level"))) - if err != nil { - return - } - core := zapcore.NewCore(encoder, writerSyncer, zapcore.DebugLevel) - - lg := zap.New(core, zap.AddCaller()) - //用 lg 来代替全局 logger - zap.ReplaceGlobals(lg) - return -} - -func getEncoder() zapcore.Encoder { - // return zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()) - encoder := zapcore.EncoderConfig{ - TimeKey: "ts", - LevelKey: "level", - NameKey: "logger", - CallerKey: "caller", - FunctionKey: zapcore.OmitKey, - MessageKey: "msg", - StacktraceKey: "stacktrace", - LineEnding: zapcore.DefaultLineEnding, - EncodeLevel: zapcore.CapitalLevelEncoder, - EncodeTime: zapcore.ISO8601TimeEncoder, - EncodeDuration: zapcore.SecondsDurationEncoder, - EncodeCaller: zapcore.ShortCallerEncoder, - } - // encoder.EncodeTime = zapcore.ISO8601TimeEncoder - // encoder.EncodeLevel = zapcore.CapitalLevelEncoder - return zapcore.NewConsoleEncoder(encoder) -} - -func getLogWriter(filename string, maxSize int, maxBackups int, maxAge int) zapcore.WriteSyncer { - lumberjackLogger := &lumberjack.Logger{ - Filename: filename, - MaxSize: maxSize, // 最大大小,单位是M - MaxBackups: maxBackups, //最大备份数量,在上个文件达到最大大小时,开始备份文件 - MaxAge: maxAge, //最大保持备份天数 - Compress: false, //是否压缩 - } - return zapcore.AddSync(lumberjackLogger) -} - -func GinLogger() gin.HandlerFunc { - return func(c *gin.Context) { - start := time.Now() - path := c.Request.URL.Path - query := c.Request.URL.RawQuery - ip := c.ClientIP() - user_agent := c.Request.UserAgent() - err := c.Errors.ByType(gin.ErrorTypePrivate).String() - c.Next() - - cost := time.Since(start) - - zap.L().Info( - path, - zap.Int("status", c.Writer.Status()), - zap.String("method", c.Request.Method), - zap.String("path", path), - zap.String("query", query), - zap.String("ip", ip), - zap.String("user-agent", user_agent), - zap.String("errors", err), - zap.Duration("cost", cost), - ) - } -} - -func GinRecovery(stack bool) gin.HandlerFunc { - return func(c *gin.Context) { - defer func() { - if err := recover(); err != nil { - // Check for a broken connection, as it is not really a - // condition that warrants a panic stack trace. - var brokenPipe bool - if ne, ok := err.(*net.OpError); ok { - if se, ok := ne.Err.(*os.SyscallError); ok { - if strings.Contains(strings.ToLower(se.Error()), "broken pipe") || strings.Contains(strings.ToLower(se.Error()), "connection reset by peer") { - brokenPipe = true - } - } - } - - httpRequest, _ := httputil.DumpRequest(c.Request, false) - if brokenPipe { - zap.L().Error(c.Request.URL.Path, - zap.Any("error", err), - zap.String("request", string(httpRequest)), - ) - // If the connection is dead, we can't write a status to it. - c.Error(err.(error)) // nolint: errcheck - c.Abort() - return - } - - if stack { - zap.L().Error("[Recovery from panic]", - zap.Any("error", err), - zap.String("request", string(httpRequest)), - zap.String("stack", string(debug.Stack())), - ) - } else { - zap.L().Error("[Recovery from panic]", - zap.Any("error", err), - zap.String("request", string(httpRequest)), - ) - } - c.AbortWithStatus(http.StatusInternalServerError) - } - }() - c.Next() - } -} diff --git a/front-end/back-end/logic/export.go b/front-end/back-end/logic/export.go deleted file mode 100644 index 265df14..0000000 --- a/front-end/back-end/logic/export.go +++ /dev/null @@ -1,41 +0,0 @@ -package logic - -import ( - "fmt" - "time" - - "github.com/xuri/excelize/v2" -) - -var savePrefix = "document/" -var saveSuffix = ".xlsx" - -func WriteIntoExcelLogic() (savePath string, err error) { - back, err := GetAllStudentInfoLogic() - if err != nil { - return - } - f := excelize.NewFile() - sheetName := "Sheet1" - f.NewSheet(sheetName) - headers := []string{"学号", "姓名", "性别", "计分"} - for i, header := range headers { - cell, _ := excelize.CoordinatesToCellName(i+1, 1) - f.SetCellValue(sheetName, cell, header) - } - for i, info := range *back { - row := i + 2 - f.SetCellValue(sheetName, fmt.Sprintf("A%d", row), info.User_id) - f.SetCellValue(sheetName, fmt.Sprintf("B%d", row), info.User_name) - f.SetCellValue(sheetName, fmt.Sprintf("C%d", row), info.User_gender) - f.SetCellValue(sheetName, fmt.Sprintf("D%d", row), info.User_score) - } - - currentTime := time.Now() - formattedTime := currentTime.Format("20060102150405") - savePath = savePrefix + formattedTime + saveSuffix - if err = f.SaveAs(savePath); err != nil { - return - } - return -} diff --git a/front-end/back-end/logic/import.go b/front-end/back-end/logic/import.go deleted file mode 100644 index ccdf88b..0000000 --- a/front-end/back-end/logic/import.go +++ /dev/null @@ -1,60 +0,0 @@ -package logic - -import ( - "main/dao/mysql" - "main/models" - "mime/multipart" - "strconv" - - "github.com/xuri/excelize/v2" - "go.uber.org/zap" -) - -func ImportStudentInfoLogic(file *multipart.FileHeader) (err error) { - var s []models.User - f, err := file.Open() - if err != nil { - return - } - defer f.Close() - excelFile, err := excelize.OpenReader(f) - if err != nil { - return - } - sheetList := excelFile.GetSheetList() - if len(sheetList) == 0 { - return - } - rows, err := excelFile.GetRows(sheetList[0]) - if err != nil { - return - } - for _, row := range rows[1:] { - user_id, err := strconv.ParseInt(row[0], 10, 64) - if err != nil { - zap.L().Error("user_id change failed", zap.Error(err)) - continue - } - user_score, err := strconv.ParseInt(row[3], 10, 64) - if err != nil { - zap.L().Error("user_score change failed", zap.Error(err)) - continue - } - var user_gender int - if row[2] == "男" { - user_gender = 1 - } else if row[2] == "女" { - user_gender = 2 - } else { - user_gender = 0 - } - student := models.User{ - User_id: user_id, - User_name: row[1], - User_gender: user_gender, - User_score: user_score, - } - s = append(s, student) - } - return mysql.ImportStudentInfoIntoSql(s) -} diff --git a/front-end/back-end/logic/roll.go b/front-end/back-end/logic/roll.go deleted file mode 100644 index 8752c92..0000000 --- a/front-end/back-end/logic/roll.go +++ /dev/null @@ -1,101 +0,0 @@ -package logic - -import ( - "main/dao/mysql" - "main/models" - "main/pkg/snowflake" - "main/utils" - "math/rand" -) - -func GetAllStudentInfoLogic() (back *[]models.User, err error) { - return mysql.GetAllStudentInfo() -} - -func GetOneRandomStudentInfoLogic() (info models.User, err error) { - back, err := mysql.GetOneRandomStudentInfo() - if err != nil { - return - } - info = *back - return -} - -func GetOneStudentInfoAccordScoreLogic() (info models.User, err error) { - back, err := GetAllStudentInfoLogic() - if err != nil { - return - } - seed := snowflake.GenID() - info = WeightedRandomSelect(*back, seed) - return -} - -func GetNStudentInfoAccordScoreLogic(p *models.ParamNum) (info []models.User, err error) { - back, err := GetAllStudentInfoLogic() - if err != nil { - return - } - if p.Num > len(*back) { - err = utils.ErrorBeyondNum - return - } - seed := snowflake.GenID() - for i := 0; i < p.Num; i++ { - getInfo := WeightedRandomSelect(*back, seed) - info = append(info, getInfo) - removeUser(*back, getInfo) - } - return -} - -func GetTargetStudentInfoLogic(p *models.ParamUser) (info models.User, err error) { - back, err := mysql.GetTargetStudentInfo(p.User_id) - if err != nil { - return - } - info = *back - return -} - -func ChangeStuScoreLogic(p *models.ParamUser) (user *models.UserScore, err error) { - user = new(models.UserScore) - user.User_id = p.User_id - user.User_score = p.User_score - - err = mysql.ChangeStuScore(user) - return -} - -func WeightedRandomSelect(users []models.User, seed int64) models.User { - totalWeight := 0.0 - weights := make([]float64, len(users)) - for i, user := range users { - if user.User_score == 0 { - weights[i] = 3 - } else if user.User_score > 0 { - weights[i] = 1.0 / float64(user.User_score) - } else { - weights[i] = 0 - float64(user.User_score) + 3 - } - totalWeight += weights[i] - } - rand.Seed(seed) - randomWeight := rand.Float64() * totalWeight - for i, user := range users { - if randomWeight < weights[i] { - return user - } - randomWeight -= weights[i] - } - return users[0] -} - -func removeUser(users []models.User, user models.User) []models.User { - for i, u := range users { - if u.User_id == user.User_id { - return append(users[:i], users[i+1:]...) - } - } - return users -} diff --git a/front-end/back-end/main.exe b/front-end/back-end/main.exe deleted file mode 100644 index 5343f35..0000000 Binary files a/front-end/back-end/main.exe and /dev/null differ diff --git a/front-end/back-end/main.go b/front-end/back-end/main.go deleted file mode 100644 index a552b9a..0000000 --- a/front-end/back-end/main.go +++ /dev/null @@ -1,70 +0,0 @@ -package main - -import ( - "fmt" - "main/dao/mysql" - "main/logger" - "main/pkg/gfsd" - "main/pkg/snowflake" - "main/pkg/vt" - "main/routes" - "main/settings" - "net/http" - _ "net/http/pprof" - "runtime" - - "github.com/spf13/viper" - "go.uber.org/zap" -) - -func main() { - isTrace(viper.GetBool("app.test")) - // 1. 加载配置 - if err := settings.Init(); err != nil { - fmt.Printf("init settings failed, err = %v\n", err) - return - } - // 2. 初始化日志 - if err := logger.Init(); err != nil { - fmt.Printf("init logger failed, err = %v\n", err) - return - } - defer zap.L().Sync() - zap.L().Debug("init ogger success...") - - // 3. 搭建 Mysql 连接 - if err := mysql.Init(); err != nil { - fmt.Printf("init mysql failed = %v\n", err) - return - } - defer mysql.Close() - - // 4. 搭建 Redis 连接 - // 暂时不用 - - // 雪花算法初始化 - if err := snowflake.Init(); err != nil { - fmt.Printf("init snowflake failed, err:%v\n", err) - return - } - // 初始化gin内置翻译器 - if err := vt.InitTrans("zh"); err != nil { - fmt.Printf("init trans failed = %v\n", err) - return - } - - // 5. 注册路由 - r := routes.Setup() - - // 6. 启动服务(同时实现优雅关机) - gfsd.Graceful_Shutdown(r) -} - -func isTrace(f bool) { - if f { - runtime.SetCPUProfileRate(10000) - go func() { - http.ListenAndServe("localhost:6060", nil) - }() - } -} diff --git a/front-end/back-end/middlewares/cors.go b/front-end/back-end/middlewares/cors.go deleted file mode 100644 index 14c0813..0000000 --- a/front-end/back-end/middlewares/cors.go +++ /dev/null @@ -1,26 +0,0 @@ -package middlewares - -import ( - "net/http" - - "github.com/gin-gonic/gin" -) - -// 跨域通讯 -func Cors() gin.HandlerFunc { - return func(c *gin.Context) { - method := c.Request.Method - origin := c.Request.Header.Get("Origin") - if origin != "" { - c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的域名 - c.Header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE, UPDATE") - c.Header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization") - c.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers, Cache-Control, Content-Language, Content-Type") - c.Header("Access-Control-Allow-Credentials", "true") - } - if method == "OPTIONS" { - c.AbortWithStatus(http.StatusNoContent) - } - c.Next() - } -} diff --git a/front-end/back-end/models/param.go b/front-end/back-end/models/param.go deleted file mode 100644 index 3e2a39e..0000000 --- a/front-end/back-end/models/param.go +++ /dev/null @@ -1,12 +0,0 @@ -package models - -type ParamUser struct { - User_id int64 `json:"user_id" bind:"required"` - User_name string `json:"user_name"` - User_gender int `json:"user_gender"` - User_score int64 `json:"user_score"` -} - -type ParamNum struct { - Num int `json:"num" bind:"required"` -} diff --git a/front-end/back-end/models/student.go b/front-end/back-end/models/student.go deleted file mode 100644 index a2c5d46..0000000 --- a/front-end/back-end/models/student.go +++ /dev/null @@ -1,18 +0,0 @@ -package models - -type User struct { - User_id int64 `db:"user_id"` - User_name string `db:"user_name"` - User_gender int `db:"user_gender"` - User_score int64 `db:"user_score"` -} - -type UserScore struct { - User_id int64 `db:"user_id"` - User_score int64 `db:"user_score"` -} - -type SaveInfo struct { - Msg string - SavePath string -} diff --git a/front-end/back-end/pkg/gfsd/gfsd.go b/front-end/back-end/pkg/gfsd/gfsd.go deleted file mode 100644 index 960d3a6..0000000 --- a/front-end/back-end/pkg/gfsd/gfsd.go +++ /dev/null @@ -1,49 +0,0 @@ -package gfsd - -import ( - "context" - "fmt" - "net/http" - "os" - "os/signal" - - "syscall" - "time" - - "github.com/gin-gonic/gin" - "github.com/spf13/viper" - "go.uber.org/zap" -) - -func Graceful_Shutdown(r *gin.Engine) { - - srv := &http.Server{ - Addr: fmt.Sprintf(":%d", viper.GetInt("app.port")), - Handler: r, - } - go func() { - // 开启一个goroutine启动服务 - if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed { - zap.L().Fatal("listen: %s\n", zap.Error(err)) - } - }() - - // 等待中断信号来优雅地关闭服务器,为关闭服务器操作设置一个5秒的超时 - quit := make(chan os.Signal, 1) // 创建一个接收信号的通道 - // kill 默认会发送 syscall.SIGTERM 信号 - // kill -2 发送 syscall.SIGINT 信号,我们常用的Ctrl+C就是触发系统SIGINT信号 - // kill -9 发送 syscall.SIGKILL 信号,但是不能被捕获,所以不需要添加它 - // signal.Notify把收到的 syscall.SIGINT或syscall.SIGTERM 信号转发给quit - signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) // 此处不会阻塞 - <-quit // 阻塞在此,当接收到上述两种信号时才会往下执行 - zap.L().Info("Shutdown Server ...") - // 创建一个5秒超时的context - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - // 5秒内优雅关闭服务(将未处理完的请求处理完再关闭服务),超过5秒就超时退出 - if err := srv.Shutdown(ctx); err != nil { - zap.L().Fatal("Server Shutdown", zap.Error(err)) - } - - zap.L().Info("Server exiting") -} diff --git a/front-end/back-end/pkg/snowflake/snowflake.go b/front-end/back-end/pkg/snowflake/snowflake.go deleted file mode 100644 index de94151..0000000 --- a/front-end/back-end/pkg/snowflake/snowflake.go +++ /dev/null @@ -1,35 +0,0 @@ -package snowflake - -import ( - "time" - - sf "github.com/bwmarrin/snowflake" - "github.com/spf13/viper" -) - -var node *sf.Node - -func Init() (err error) { - startTime := viper.GetString("app.start_time") - machineID := viper.GetInt64("machine_id") - var st time.Time - st, err = time.Parse("2006-01-02", startTime) - if err != nil { - return - } - sf.Epoch = st.UnixNano() / 1000000 - node, err = sf.NewNode(machineID) - return -} -func GenID() int64 { - return node.Generate().Int64() -} - -// func main() { -// if err := Init("2020-07-01", 1); err != nil { -// fmt.Printf("init failed, err:%v\n", err) -// return -// } -// id := GenID() -// fmt.Println(id) -// } diff --git a/front-end/back-end/pkg/vt/validator.go b/front-end/back-end/pkg/vt/validator.go deleted file mode 100644 index 9117537..0000000 --- a/front-end/back-end/pkg/vt/validator.go +++ /dev/null @@ -1,82 +0,0 @@ -package vt - -import ( - "fmt" - "reflect" - "strings" - - "github.com/gin-gonic/gin/binding" - "github.com/go-playground/locales/en" - "github.com/go-playground/locales/zh" - ut "github.com/go-playground/universal-translator" - "github.com/go-playground/validator/v10" - enTranslations "github.com/go-playground/validator/v10/translations/en" - zhTranslations "github.com/go-playground/validator/v10/translations/zh" -) - -// 定义一个全局翻译器T -var Trans ut.Translator - -// InitTrans 初始化翻译器 -func InitTrans(locale string) (err error) { - // 修改gin框架中的Validator引擎属性,实现自定制 - if v, ok := binding.Validator.Engine().(*validator.Validate); ok { - // 注册一个获取json tag的自定义方法 - v.RegisterTagNameFunc(func(fld reflect.StructField) string { - name := strings.SplitN(fld.Tag.Get("json"), ",", 2)[0] - if name == "-" { - return "" - } - return name - }) - - zhT := zh.New() // 中文翻译器 - enT := en.New() // 英文翻译器 - - // 为SignUpParam注册自定义校验方法 - // v.RegisterStructValidation(SignUpParamStructLevelValidation, models.ParamSignUp{}) - - // 第一个参数是备用(fallback)的语言环境 - // 后面的参数是应该支持的语言环境(支持多个) - // uni := ut.New(zhT, zhT) 也是可以的 - uni := ut.New(enT, zhT, enT) - - // locale 通常取决于 http 请求头的 'Accept-Language' - var ok bool - // 也可以使用 uni.FindTranslator(...) 传入多个locale进行查找 - Trans, ok = uni.GetTranslator(locale) - if !ok { - return fmt.Errorf("uni.GetTranslator(%s) failed", locale) - } - - // 注册翻译器 - switch locale { - case "en": - err = enTranslations.RegisterDefaultTranslations(v, Trans) - case "zh": - err = zhTranslations.RegisterDefaultTranslations(v, Trans) - default: - err = enTranslations.RegisterDefaultTranslations(v, Trans) - } - return - } - return -} - -// 去除提示信息中的结构体名称 -func RemoveTopStruct(fields map[string]string) map[string]string { - res := map[string]string{} - for field, err := range fields { - res[field[strings.Index(field, ".")+1:]] = err - } - return res -} - -// 自定义SignUpParam结构体校验函数 -// func SignUpParamStructLevelValidation(sl validator.StructLevel) { -// su := sl.Current().Interface().(models.ParamSignUp) -// if su.Password != su.RePassword { -// // 输出错误提示信息,最后一个参数就是传递的param -// sl.ReportError(su.RePassword, "re_password", "RePassword", "eqfield", "password") -// } -// } diff --git a/front-end/back-end/routes/routes.go b/front-end/back-end/routes/routes.go deleted file mode 100644 index 22b30a8..0000000 --- a/front-end/back-end/routes/routes.go +++ /dev/null @@ -1,31 +0,0 @@ -package routes - -import ( - "main/controllers" - "main/logger" - "main/middlewares" - "net/http" - - "github.com/gin-gonic/gin" -) - -func Setup() *gin.Engine { - r := gin.New() - r.Use(logger.GinLogger(), logger.GinRecovery(true)) - r.Use(middlewares.Cors()) - - r.GET("/", func(c *gin.Context) { - c.String(http.StatusOK, "hello") - }) - - r.POST("/upload", controllers.ImportStudentInfoHandler) - r.POST("/change-score", controllers.ChangeStuScoreHandler) - r.POST("/get-target-info", controllers.GetTargetStudentInfoHandler) - r.POST("/get-all", controllers.GetAllStudentInfoHandler) - r.POST("/get-N-accord-score", controllers.GetNStudentInfoAccordScoreHandler) - r.GET("/save-info", controllers.WriteIntoExcelHandler) - r.GET("/get-random", controllers.GetOneRandomStudentInfoHandler) - r.GET("/get-accord-score", controllers.GetOneStudentInfoAccordScoreHandler) - - return r -} diff --git a/front-end/back-end/settings/settings.go b/front-end/back-end/settings/settings.go deleted file mode 100644 index 4a0dc3e..0000000 --- a/front-end/back-end/settings/settings.go +++ /dev/null @@ -1,24 +0,0 @@ -package settings - -import ( - "fmt" - - "github.com/fsnotify/fsnotify" - "github.com/spf13/viper" -) - -func Init() (err error) { - viper.SetConfigName("config") - viper.SetConfigType("yaml") - viper.AddConfigPath(".") - err = viper.ReadInConfig() - if err != nil { - fmt.Printf("viper.ReadInConfig failed, err = %v\n", err) - return err - } - viper.WatchConfig() - viper.OnConfigChange(func(in fsnotify.Event) { - fmt.Println("配置文件修改...") - }) - return -} diff --git a/front-end/back-end/test/import_test.go b/front-end/back-end/test/import_test.go deleted file mode 100644 index 1a057ee..0000000 --- a/front-end/back-end/test/import_test.go +++ /dev/null @@ -1,55 +0,0 @@ -package test - -import ( - "bytes" - "main/controllers" - "mime/multipart" - "net/http" - "net/http/httptest" - "testing" - - "github.com/gin-gonic/gin" - "github.com/stretchr/testify/require" -) - -func BenchmarkImportStudentInfo(b *testing.B) { - // 设置 Gin 测试模式 - gin.SetMode(gin.TestMode) - - // 创建一个 Gin 引擎 - r := gin.Default() - r.POST("/import", controllers.ImportStudentInfoHandler) - - // 模拟文件内容 - fileContent := []byte("test file content") - body, boundary := createMultipartFormfile(b, "file", "/document/test.xlsx", fileContent) - - // 创建一个 HTTP 请求 - req := httptest.NewRequest(http.MethodPost, "/import", body) - req.Header.Set("Content-Type", "multipart/form-data; boundary="+boundary) - - // 创建一个 HTTP 响应记录器 - w := httptest.NewRecorder() - - // 重置计时器 - b.ResetTimer() - - for i := 0; i < b.N; i++ { - // 处理请求 - r.ServeHTTP(w, req) - - // 检查响应状态码 - require.Equal(b, http.StatusOK, w.Code) - } -} - -// 模拟文件上传 -func createMultipartFormfile(t *testing.B, fieldName, fileName string, fileContent []byte) (*bytes.Buffer, string) { - body := new(bytes.Buffer) - writer := multipart.NewWriter(body) - part, err := writer.CreateFormFile(fieldName, fileName) - require.NoError(t, err) - part.Write(fileContent) - writer.Close() - return body, writer.Boundary() -} diff --git a/front-end/back-end/test/roll_test.go b/front-end/back-end/test/roll_test.go deleted file mode 100644 index ad46b91..0000000 --- a/front-end/back-end/test/roll_test.go +++ /dev/null @@ -1,90 +0,0 @@ -package test - -import ( - "fmt" - "main/dao/mysql" - "main/logic" - "main/models" - "regexp" - "testing" - - "github.com/DATA-DOG/go-sqlmock" - "github.com/jmoiron/sqlx" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestGetAllStudentInfo(t *testing.T) { - // 创建一个模拟数据库 - db, mock, err := sqlmock.New() - require.NoError(t, err) - defer db.Close() - - sqlxDB := sqlx.NewDb(db, "mysql") - originalDB := mysql.GetDb() - mysql.ChangeDb(sqlxDB) - defer func() { mysql.ChangeDb(originalDB) }() - - // 定义期望的查询和结果 - rows := sqlmock.NewRows([]string{"user_id", "user_name", "user_gender", "user_score"}). - AddRow(1, "Alice", 1, 90). - AddRow(2, "Bob", 1, 85) - - mock.ExpectQuery("(?i)SELECT user_id, user_name, user_gender, user_score FROM user ORDER BY user_score ASC"). - WillReturnRows(rows) - - // 调用被测试函数 - result, err := mysql.GetAllStudentInfo() // 确保函数路径正确 - require.NoError(t, err) - - // 验证结果 - expected := &[]models.User{ - {User_id: 1, User_name: "Alice", User_gender: 1, User_score: 90}, - {User_id: 2, User_name: "Bob", User_gender: 1, User_score: 85}, - } - assert.Equal(t, expected, result) - - // 验证所有期望的操作都已执行 - err = mock.ExpectationsWereMet() - require.NoError(t, err) -} - -func TestChangeStuScore(t *testing.T) { - db, mock, err := sqlmock.New() - require.NoError(t, err) - defer db.Close() - sqlxDB := sqlx.NewDb(db, "mysql") - originalDB := mysql.GetDb() - mysql.ChangeDb(sqlxDB) - defer func() { mysql.ChangeDb(originalDB) }() - if err != nil { - fmt.Println(err) - } - sqlStr := `update user set - user_score = ? - where user_id=?` - mock.ExpectExec(regexp.QuoteMeta(sqlStr)). - WithArgs(95, 1). - WillReturnResult(sqlmock.NewResult(1, 1)) - user := &models.UserScore{ - User_id: 1, - User_score: 95, - } - err = mysql.ChangeStuScore(user) - require.NoError(t, err) - err = mock.ExpectationsWereMet() - require.NoError(t, err) -} - -func TestWeightedRandomSelectWithMockRNG(t *testing.T) { - users := []models.User{ - {User_id: 1, User_score: 0}, - {User_id: 2, User_score: 10}, - {User_id: 3, User_score: 20}, - } - // 确定种子 - rng := 42 - expectedUser := users[0] - selectedUser := logic.WeightedRandomSelect(users, int64(rng)) - require.Equal(t, expectedUser, selectedUser) -} diff --git a/front-end/back-end/utils/code.go b/front-end/back-end/utils/code.go deleted file mode 100644 index a49f75e..0000000 --- a/front-end/back-end/utils/code.go +++ /dev/null @@ -1,33 +0,0 @@ -package utils - -type ResCode int64 - -const ( - CodeSuccess ResCode = 1000 + iota - CodeInvalidParam - CodeUpLoadError - CodeStudentInfoEmpty - CodeWriteInfoError - CodeTooMuchNum - - CodeServerBusy -) - -var codeMsgMap = map[ResCode]string{ - CodeSuccess: "success", - CodeInvalidParam: "请求参数错误", - CodeUpLoadError: "上传文件错误", - CodeStudentInfoEmpty: "学生信息为空", - CodeWriteInfoError: "写入信息错误", - CodeTooMuchNum: "请求数量过多", - - CodeServerBusy: "服务繁忙", -} - -func (c ResCode) Msg() string { - msg, ok := codeMsgMap[c] - if !ok { - msg = codeMsgMap[CodeServerBusy] - } - return msg -} diff --git a/front-end/back-end/utils/error_code.go b/front-end/back-end/utils/error_code.go deleted file mode 100644 index 2509606..0000000 --- a/front-end/back-end/utils/error_code.go +++ /dev/null @@ -1,9 +0,0 @@ -package utils - -import "errors" - -var ( - ErrorStuInfoEmpty = errors.New("学生信息为空") - ErrorInvalidStuId = errors.New("学生学号错误") - ErrorBeyondNum = errors.New("请求数量过多") -) diff --git a/front-end/back-end/utils/response.go b/front-end/back-end/utils/response.go deleted file mode 100644 index d499c5a..0000000 --- a/front-end/back-end/utils/response.go +++ /dev/null @@ -1,46 +0,0 @@ -package utils - -import ( - "net/http" - - "github.com/gin-gonic/gin" -) - -/* -{ - "code": 10000, // 程序中的错误码 - "msg": xx, // 提示信息 - "data": {}, // 数据 -} - -*/ - -type ResponseData struct { - Code ResCode `json:"code"` - Msg interface{} `json:"msg"` - Data interface{} `json:"data,omitempty"` -} - -func ResponseError(c *gin.Context, code ResCode) { - c.JSON(http.StatusOK, &ResponseData{ - Code: code, - Msg: code.Msg(), - Data: nil, - }) -} - -func ResponseErrorWithMsg(c *gin.Context, code ResCode, msg interface{}) { - c.JSON(http.StatusOK, &ResponseData{ - Code: code, - Msg: msg, - Data: nil, - }) -} - -func ResponseSuccess(c *gin.Context, data interface{}) { - c.JSON(http.StatusOK, &ResponseData{ - Code: CodeSuccess, - Msg: CodeSuccess.Msg(), - Data: data, - }) -} diff --git a/front-end/front-end/.gitignore b/front-end/front-end/.gitignore deleted file mode 100644 index 8ee54e8..0000000 --- a/front-end/front-end/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -dist -dist-ssr -coverage -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -*.tsbuildinfo diff --git a/front-end/front-end/.vite/deps/_metadata.json b/front-end/front-end/.vite/deps/_metadata.json deleted file mode 100644 index f51ca1e..0000000 --- a/front-end/front-end/.vite/deps/_metadata.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "hash": "60808396", - "configHash": "59b8cfd4", - "lockfileHash": "dc70f975", - "browserHash": "f37eb18a", - "optimized": { - "vue": { - "src": "../../node_modules/.pnpm/vue@3.5.11/node_modules/vue/dist/vue.runtime.esm-bundler.js", - "file": "vue.js", - "fileHash": "b734d491", - "needsInterop": false - }, - "pinia": { - "src": "../../node_modules/.pnpm/pinia@2.2.4_vue@3.5.11/node_modules/pinia/dist/pinia.mjs", - "file": "pinia.js", - "fileHash": "9cec28a2", - "needsInterop": false - }, - "pinia-plugin-persistedstate": { - "src": "../../node_modules/.pnpm/pinia-plugin-persistedstate@4.1.1_pinia@2.2.4_vue@3.5.11__rollup@4.24.0/node_modules/pinia-plugin-persistedstate/dist/index.js", - "file": "pinia-plugin-persistedstate.js", - "fileHash": "e1a46a27", - "needsInterop": false - }, - "vue-router": { - "src": "../../node_modules/.pnpm/vue-router@4.4.5_vue@3.5.11/node_modules/vue-router/dist/vue-router.mjs", - "file": "vue-router.js", - "fileHash": "97ce4aa0", - "needsInterop": false - } - }, - "chunks": { - "chunk-BPR5FKHA": { - "file": "chunk-BPR5FKHA.js" - }, - "chunk-UGVUZKZS": { - "file": "chunk-UGVUZKZS.js" - } - } -} \ No newline at end of file diff --git a/front-end/front-end/.vite/deps/package.json b/front-end/front-end/.vite/deps/package.json deleted file mode 100644 index 3dbc1ca..0000000 --- a/front-end/front-end/.vite/deps/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "module" -} diff --git a/front-end/front-end/index.html b/front-end/index.html similarity index 100% rename from front-end/front-end/index.html rename to front-end/index.html diff --git a/front-end/front-end/jsconfig.json b/front-end/jsconfig.json similarity index 100% rename from front-end/front-end/jsconfig.json rename to front-end/jsconfig.json diff --git a/front-end/front-end/package.json b/front-end/package.json similarity index 100% rename from front-end/front-end/package.json rename to front-end/package.json diff --git a/front-end/front-end/pnpm-lock.yaml b/front-end/pnpm-lock.yaml similarity index 100% rename from front-end/front-end/pnpm-lock.yaml rename to front-end/pnpm-lock.yaml diff --git a/front-end/front-end/public/favicon.ico b/front-end/public/favicon.ico similarity index 100% rename from front-end/front-end/public/favicon.ico rename to front-end/public/favicon.ico diff --git a/front-end/front-end/src/App.vue b/front-end/src/App.vue similarity index 100% rename from front-end/front-end/src/App.vue rename to front-end/src/App.vue diff --git a/front-end/front-end/src/assets/image.png b/front-end/src/assets/image.png similarity index 100% rename from front-end/front-end/src/assets/image.png rename to front-end/src/assets/image.png diff --git a/front-end/front-end/src/components/scrollingNumber.vue b/front-end/src/components/scrollingNumber.vue similarity index 100% rename from front-end/front-end/src/components/scrollingNumber.vue rename to front-end/src/components/scrollingNumber.vue diff --git a/front-end/front-end/src/main.js b/front-end/src/main.js similarity index 100% rename from front-end/front-end/src/main.js rename to front-end/src/main.js diff --git a/front-end/front-end/src/mock/upload.js b/front-end/src/mock/upload.js similarity index 100% rename from front-end/front-end/src/mock/upload.js rename to front-end/src/mock/upload.js diff --git a/front-end/front-end/src/router/index.js b/front-end/src/router/index.js similarity index 100% rename from front-end/front-end/src/router/index.js rename to front-end/src/router/index.js diff --git a/front-end/front-end/src/stores/user.js b/front-end/src/stores/user.js similarity index 100% rename from front-end/front-end/src/stores/user.js rename to front-end/src/stores/user.js diff --git a/front-end/front-end/src/utils/request.js b/front-end/src/utils/request.js similarity index 100% rename from front-end/front-end/src/utils/request.js rename to front-end/src/utils/request.js diff --git a/front-end/front-end/src/views/rating/RatingPage.vue b/front-end/src/views/rating/RatingPage.vue similarity index 97% rename from front-end/front-end/src/views/rating/RatingPage.vue rename to front-end/src/views/rating/RatingPage.vue index e3063e3..e4c546a 100644 --- a/front-end/front-end/src/views/rating/RatingPage.vue +++ b/front-end/src/views/rating/RatingPage.vue @@ -20,10 +20,8 @@ >
-