# go-ext **Repository Path**: z930255076/go-ext ## Basic Information - **Project Name**: go-ext - **Description**: 该项目用于go敏捷开发 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-16 - **Last Updated**: 2025-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-ext ## 介绍 该项目用于go敏捷开发 ## 软件架构 ~~~ ├── config #基础配置 ├── constants #系统常量 ├── database #数据库初始化 ├── log #日志 ├── middleware #中间件 ├── requests #验证初始化 ├── response #数据返回 └── utils # 工具集 ~~~ ## 安装 ~~~bash go get gitee.com/z930255076/go-ext ~~~ ## 参数解析 ~~~go var params fr.Chart if err := request.GetParams(c, ¶ms); err != nil { return response.Error(c, err) } ~~~ ## 模型及数据库 ~~~go var orderDB []models.FinanceModel _ = database. SuffixBySfId(573176807424421888, models.TableNameFinanceModel). Preload("Type"). Limit(10). Find(&orderDB) ~~~ ## Redis使用 ~~~go key := fmt.Sprintf("%s:%s:%s", os.Getenv("SIMPLE_USER"), constants.TokenUser, token) err := database.Redis.Set(key, loginDataStr, 86400*30*time.Second).Err() jsonLoginData, err := database.Redis.Get(key).Result() ~~~ ## 日志使用 env 配置: ~~~dotenv LOG_LEVEL=error,slow,info SQL_SLOW_TIME=2 REQUEST_SLOW_TIME=5 ~~~ 记录日志 ~~~go log.PrefixLogger(err.Error(), "SearchFinancePage") ~~~ ## 中间件控制 限流 ~~~go limiter.New(limiter.Config{ Max: 5, Expiration: 30 * time.Second, LimitReached: middleware.LimitReached, }), ~~~ miss路由 ~~~go app.Use(middleware.MissRouter) ~~~ 超时 ~~~dotenv TIMEOUT=10 ~~~ ~~~go middleware.TimeoutMiddleware(), ~~~ mysql事务超时 ~~~go tx := database.DB.WithContext(ctx.UserContext()).Begin() tx.Commit() ~~~ 用户相关 ~~~go // 路由鉴权 router := app.Group("api", middleware.LoginCheck) // 获取用户信息 fs.User = c.Locals("userInfo").(middleware.User) ~~~ ## 雪花id使用 env 控制: ~~~dotenv PARSED_TIME='2020-01-01 00:00:00' ~~~ ~~~go // 解析时间字符串 targetTime, err := time.ParseInLocation(time.DateTime, dateTime, time.Local) // 生成对应时间的雪花ID id, err := tools.Sf.GenerateByTime(targetTime) // 生成对应时间的首个雪花ID - 用于时间段搜索转换为唯一id搜索 id, err := tools.Sf.TimeBeginGenerate(targetTime) // 生成对应时间的末个雪花ID - 用于时间段搜索转换为唯一id搜索 id, err := tools.Sf.TimeEndGenerate(targetTime) // 生成当前时间的雪花ID id, _ := tools.Sf.Generate() // 解析雪花ID时间戳 parsedTime, err := tools.ParseSnowflakeTime(id) ~~~ ## 链路追踪 env 控制: ~~~dotenv DEBUG=true ~~~ ## 创建模型 查看[create_model.go](create_model.go) ## 定时任务 执行:[crontab.go](crontab.go) 创建任务,如:finance 项目下的 crontab