# util **Repository Path**: qing2048/util ## Basic Information - **Project Name**: util - **Description**: util util util - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-17 - **Last Updated**: 2025-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # util 蓝色兄弟 工具仓库 ``` ├── internal // 不对外 │ └── pkg │ └── proto ├── mapstructure // mapstructure转换 │ └── mapstructure.go ├── sls // sls 日志 │ └── sls.go ├── date_time // 时间工具 ├── event // 事件总线 ``` ### 使用 #### 方式一 ```shell git config --global url."git@codeup.aliyun.com:5f9118049cffa29cfdd3be1c/util.git".insteadof "https://gitee.com/qing2048/util.git" ``` #### 方式二 1. go get 报错修改 将以下内容放到 $HOME\.netrc(Linux)或者$HOME\_netrc(Win)文件 ```shell machine codeup.aliyun.com login ZhangCheng0823 password ZhangCheng0823 ``` 2. 修改 GOPRIVATE ```shell go env -w GOPRIVATE=codeup.aliyun.com ``` ### 功能列表 #### 阿里云 sls 日志 [使用说明](/sls/README.md) [使用文件](/sls/sls_test.go) #### mapstrucure [使用说明](/mapstructure/README.md) [实现文件](/mapstructure/mapstructure.go) - Decode - [x] 切片指针或数组指针,某个字段类型转换失败调整 - [x] proto timeFormat 时间字段自动标签 #### string 字符串 [实现文件](/string.go) - CamelToUnderline 驼峰转下划线 - UnderlineToCamel 下划线转驼峰 - UnderlineLowerFirstToCamel 下划线转驼峰但首字母小写 #### 日期格式转换 [实现文件](/date_time.go) - FormatYmdHi(timestamp int32) string 时间戳转 "Y-m-d H:i" - FormatByTimestamp(timestamp int64, tpl string) string 时间戳转格式化日期  - FormatLineYmdByDate(date int32) string 将20230701格式化为 2023-07-01 - GetTodayYmd() int32 当前时间的 Ymd 格式 - GetNowTimestampInt32() int32 获取当前时间戳 - GetNowTimestamp\[T int | int8 | int16 | int32 | int64\]() T 获取当前时间戳 #### 事件总线的封装 统一的事件总线,低层使用RocketMQ,进一步封装:约束命名规范、权限验证、链路追踪等 [详细说明](/event/README.md) 1. 发送 2. 消费 #### 协程启动管理 目前的主要作用是:简化写法、优雅关闭、支持固定队列协程,[详细说明](/coroutine/README.md) #### redis分布式锁的封装 基于Redis实现的加锁、解锁。 [详细说明](/redislock/README.md) #### 复制一个不受parent控制的带值的ctx util.CopyValueCtx(ctx),适用于某些场景需要脱离外部的ctx控制,但又要保持里面的value