zhouyonggao
|
9bc99c19ed
|
chore(docker): 确保二进制文件具有执行权限
- 在 Dockerfile 中添加 chmod 命令,确保构建的二进制文件具有执行权限,以避免运行时错误。
|
2025-12-20 15:21:53 +08:00 |
zhouyonggao
|
7b6c4f2cf2
|
chore(docker): 优化 Dockerfile 中的 proto 文件生成步骤
- 修改 proto 文件生成命令,确保只生成所需的 go、grpc、validate 和 errors 文件,排除 HTTP 相关文件以避免依赖问题。
- 通过指定路径和文件类型,提升生成效率并减少不必要的构建依赖。
|
2025-12-20 15:21:24 +08:00 |
zhouyonggao
|
122f7deb5d
|
chore(docker): 更新 Dockerfile 以优化构建流程和依赖管理
- 将基础镜像版本更新至 golang:1.25-alpine,确保与最新的 Go 语言特性兼容。
- 确保 PATH 包含 Go bin 目录,以便 protoc 能找到插件。
- 复制所有模块的 go.mod 文件以利用 Docker 缓存,并在项目根目录执行 go mod download。
- 使用临时工作目录安装 protoc 插件,避免影响项目目录。
- 在生成 proto 文件后更新依赖,确保项目依赖的准确性和完整性。
|
2025-12-20 15:20:55 +08:00 |
zhouyonggao
|
c2eb997511
|
chore(docker): 更新 Dockerfile 和部署脚本以优化构建流程
- 将基础镜像版本更新至 golang:1.25-alpine,确保与最新的 Go 语言特性兼容。
- 安装构建所需的工具,包括 git、protoc 和 make,简化构建过程。
- 在 Dockerfile 中添加自动生成 proto 文件的步骤,确保构建时生成所需文件。
- 更新部署脚本,检查 grpc 目录和 Makefile 的存在性,确保构建前的必要文件完整性。
|
2025-12-20 15:20:37 +08:00 |
zhouyonggao
|
e17b2ddf6d
|
chore(docker): 更新 .dockerignore 文件以优化构建排除规则
- 扩展 .dockerignore 文件,增加对 server/storage/、server/log/、*.csv、*.xlsx 和 *.xls 的排除规则,确保构建过程中的不必要文件不被包含。
|
2025-12-20 15:15:14 +08:00 |
zhouyonggao
|
176bc411fc
|
chore(grpc): 移除 proto3 可选项生成标志
- 从 Makefile 中移除 `--experimental_allow_proto3_optional` 标志,以简化 proto 文件生成过程并确保与最新的 gRPC 兼容性。
|
2025-12-20 15:12:20 +08:00 |
zhouyonggao
|
aea29262a6
|
chore(docker): 更新 Dockerfile 和部署脚本以优化构建过程
- 将基础镜像版本更新至 golang:1.21-alpine,确保与最新的 Go 语言特性兼容。
- 在 Dockerfile 中添加了构建时的优化选项,减小生成的二进制文件大小。
- 更新部署脚本,自动生成缺失的 proto 文件,并确保每次都重新构建 Docker 镜像。
- 扩展 .dockerignore 文件,增加对构建产物和开发工具的排除规则,优化项目结构。
|
2025-12-20 15:09:18 +08:00 |
zhouyonggao
|
c402cc4ec5
|
chore(docker): 更新 Dockerfile 中的 Go 版本至 1.25-alpine
- 将 Dockerfile 中的基础镜像更新至 golang:1.25-alpine,以确保与最新的 Go 语言特性和修复兼容。
|
2025-12-20 14:57:06 +08:00 |
zhouyonggao
|
7ddcf2dabc
|
chore(go.mod): 更新 Go 版本至 1.25.4
- 将 go.mod 文件中的 Go 版本更新至 1.25.4,以确保与最新的 Go 语言特性和修复兼容。
|
2025-12-20 14:56:28 +08:00 |
zhouyonggao
|
4b27111ea6
|
chore(deps): 更新 go.work.sum 文件以反映新的依赖项
- 添加了 github.com/envoyproxy/protoc-gen-validate v1.0.2、golang.org/x/net v0.16.0、golang.org/x/sys v0.13.0 和 golang.org/x/text v0.13.0 的依赖项,确保项目依赖的准确性和完整性。
|
2025-12-20 14:53:59 +08:00 |
zhouyonggao
|
b0688b1c09
|
chore(git): 更新 .gitignore 文件以排除不再使用的 gRPC 用户模块配置
- 移除对 user/userv1/go.mod 和 user/userv1/go.sum 的忽略,确保版本控制的整洁性。
- 保留对生成的 pb 文件的忽略规则,简化项目结构。
|
2025-12-20 14:52:53 +08:00 |
zhouyonggao
|
e95b4de81a
|
chore(git): 移除不再使用的 gRPC 子模块配置
- 删除 .gitmodules 文件,移除对 gRPC 子模块的引用,简化项目结构。
|
2025-12-20 14:51:56 +08:00 |
zhouyonggao
|
aa334674e9
|
feat(grpc): 添加 gRPC proto 文件和构建支持
- 新增多个 gRPC proto 文件,定义了新的服务和消息结构,增强了系统的功能。
- 添加 Makefile 以支持 proto 文件的生成和清理操作,简化构建流程。
- 更新 .gitignore 文件以排除生成的 pb 文件,确保版本控制的整洁性。
- 更新 README.md,提供生成指令的说明,帮助开发者快速上手。
|
2025-12-20 14:49:50 +08:00 |
zhouyonggao
|
0fe947b5bb
|
chore(docker): 更新 Dockerfile 和部署脚本以支持 go.work 和 gRPC 模块
- 在 Dockerfile 中添加对 go.work 和 gRPC 用户模块依赖文件的复制,确保构建过程中的工作区配置正确。
- 更新部署脚本,增加对 go.work 和 gRPC 模块文件存在性的检查,确保构建前的必要文件完整性。
- 提供警告提示,确保 proto 文件生成,避免构建失败。
|
2025-12-20 14:32:11 +08:00 |
zhouyonggao
|
4bfd075cf1
|
chore(go.mod): 更新本地 gRPC 用户模块路径引用
- 在 go.mod 文件中添加本地 gRPC 用户模块的替换路径,确保开发者在本地开发时不修改 grpc 目录的代码。
- 更新 go.work.sum 文件以反映新的依赖项,确保依赖管理的准确性。
|
2025-12-20 14:28:38 +08:00 |
zhouyonggao
|
1cfe52d565
|
fix(grpc): 更新 gRPC 用户客户端路径引用为 GitHub 形式
- 修改 user_client.go 中的 gRPC 用户客户端路径引用,使用 GitHub 路径以避免对 grpc 目录的修改。
- 更新 go.mod 文件中的 gRPC 用户客户端依赖,简化依赖管理。
|
2025-12-20 14:26:16 +08:00 |
zhouyonggao
|
ef9f366a29
|
fix(grpc): 更新 gRPC 用户客户端路径引用
- 修改 user_client.go 中的 gRPC 用户客户端路径引用,使用相对路径以避免对 grpc 目录的修改。
- 移除 go.mod 中关于 grpc/user/userv1 的本地模块使用说明,简化依赖管理。
|
2025-12-20 14:21:14 +08:00 |
zhouyonggao
|
ccf52e4684
|
chore(go.mod): 更新 gRPC 模块路径说明
- 在 go.mod 文件中添加关于 grpc/user/userv1 目录的本地模块使用说明,确保开发者了解该目录的使用方式。
|
2025-12-20 14:19:35 +08:00 |
zhouyonggao
|
bf5d927587
|
fix(api): 更新 YMT 用户列表处理逻辑以使用 gRPC 生成的代码
- 修改 YMTUsersAPI 的 list 方法,使用 resp.GetList() 替代 resp.List() 以获取用户列表
- 更新用户显示名称的获取方式,使用 user.GetRealname() 和 user.GetUsername() 方法
- 引入 userId 通过 user.GetId() 获取用户 ID,确保显示名称格式正确
- 更新 gRPC 用户客户端实现,替换临时结构体为生成的 proto 代码
- 移除不再需要的临时结构体定义,简化代码结构
|
2025-12-20 14:18:48 +08:00 |
zhouyonggao
|
dcfa1f2456
|
chore(deps): 更新 Go 依赖项以支持 gRPC 和 protobuf
- 添加了 google.golang.org/protobuf v1.5.3 和 v1.32.0 作为间接依赖
- 更新了 golang.org/x/sys 到 v0.17.0
- 引入了 google.golang.org/genproto/googleapis/rpc 以支持 gRPC 功能
- 更新了 go.sum 文件以反映依赖项的变化
|
2025-12-20 14:14:22 +08:00 |
zhouyonggao
|
53a9038c4f
|
refactor(grpc): 临时替换 gRPC 用户客户端实现
- 添加临时结构体 AdminSimpleInfo 和 SimpleListAllUserResp,以便在 proto 生成前使用
- 修改 UserClient 结构体中的 client 字段为 interface{},以适应未来的 proto 代码
- 更新 SimpleListAllUser 方法,提供错误提示,提醒用户生成 proto 代码
- 日志信息更新,指明当前连接的 gRPC 客户端尚未生成 proto 代码
|
2025-12-20 14:12:42 +08:00 |
zhouyonggao
|
fde87fde96
|
feat(api): 支持 gRPC 用户服务集成
- 更新路由以支持 gRPC 服务器地址配置
- 修改 YMTUsersHandler 以使用 gRPC 客户端进行用户数据查询
- 添加 gRPC 连接失败的降级处理逻辑
- 引入 gRPC 生成的代码以支持用户服务调用
|
2025-12-20 14:11:28 +08:00 |
zhouyonggao
|
c02f051cb8
|
feat(config): 添加 gRPC 服务器配置支持
- 在配置结构中新增 GRPCServer 类型,包含 Host 和 Port 字段
- 更新 Load 函数以支持从环境变量读取 gRPC 服务器的配置
- 引入 gRPC 和 protobuf 依赖以支持 gRPC 功能
|
2025-12-20 14:08:30 +08:00 |
zhouyonggao
|
858200051e
|
feat(submodule): 添加 gRPC 子模块支持
- 新增 .gitmodules 文件以管理 gRPC 子模块
- 引入 gRPC 子模块的路径和远程仓库 URL
|
2025-12-20 13:49:51 +08:00 |
zhouyonggao
|
e8c264a384
|
refactor(exports): 使用并行导出替代串行分块导出
- 移除旧的串行分块导出代码,改为基于分片的并行导出机制
- 引入并行导出配置,支持设置分片数量、最大并发数和每文件最大行数
- 预估总行数作为并行导出总行数,用于更合理的任务拆分
- 新增并行导出过程中的进度更新和文件创建回调处理
- 并行导出失败时记录错误日志并标记导出任务失败
- 保留原有Transform行数据转换功能,保证数据一致性
- 优化日志输出,详细记录并行导出过程中的错误信息
|
2025-12-19 18:43:43 +08:00 |
zhouyonggao
|
5426ca76d8
|
fix(server): 启动时异步恢复未完成的任务
- 修改任务恢复为异步执行,避免阻塞服务启动
- 添加启动日志提示任务恢复开始
- 去除同步恢复完成日志,简化启动流程
|
2025-12-19 18:31:34 +08:00 |
zhouyonggao
|
56e298d79b
|
refactor(server): 优化数据库连接池设置及任务恢复并发控制
- 新增 applyDefaultPool 函数统一设置数据库连接池默认参数
- 在主函数中各数据库连接初始化后调用 applyDefaultPool 进行默认配置
- recoverRunningJobs 中使用信号量限制任务恢复最大并发数为3
- 使用 WaitGroup 等待所有恢复任务启动完成后再继续执行
- 删除无用注释,提升代码可读性和并发性能
|
2025-12-19 18:28:32 +08:00 |
zhouyonggao
|
b2901a9113
|
perf(exporter): 优化分片数据统计实现并发查询
- 引入sync包实现并发控制
- 使用信号量限制最大并发数为10
- 针对每个时间范围启动goroutine并行执行查询
- 利用互斥锁保护total计数的安全更新
- 等待所有并发查询完成后返回总计数结果
|
2025-12-19 18:21:28 +08:00 |
zhouyonggao
|
bd38bdc374
|
refactor(exporter): 优化按时间跨度的分块计数策略
- 根据时间跨度自适应选择分块方式,提升查询效率
- ≤15天直接查询,避免无谓分片
- 15-30天按天分片(步长15天)
- 30-90天按周分片(7天)
- >90天新增按月分片(30天)策略
- 新增 SplitByMonths 函数实现月度分片逻辑
- 日志事件更新为按分片策略动态记录
|
2025-12-19 18:15:09 +08:00 |
zhouyonggao
|
db8abb437b
|
fix(export): 优化导出完成时的缓存清理逻辑
- 导出完成时将缓存进度更新为实际完成行数,避免超过100%
- 延迟清理缓存,确保完成行数保持到任务完成
- 修改清理缓存时机,提升内存释放的准确性
|
2025-12-19 18:07:35 +08:00 |
zhouyonggao
|
328a8ced3a
|
feat(export): 实现导出进度缓存及zip压缩优化
- 新增导出任务实时进度缓存模块,提供设置、获取和清除进度缓存接口
- 导出进度更新时只更新缓存,不再频繁写入数据库,减轻数据库压力
- 导出完成时清除进度缓存,释放内存资源
- API返回的导出进度字段改为实时缓存数据,提升前端实时性
- 导出列表也使用实时缓存的进度数据替换原数据库字段
- 优化ZipFiles函数,使用DEFLATE算法压缩分片文件,提高压缩效率
- 维护代码注释,明确缓存和压缩实现逻辑
|
2025-12-19 18:04:13 +08:00 |
zhouyonggao
|
6cec327340
|
feat(export): 优化导出数据处理能力
- 将单个文件最大行数从30万提升至50万
- 新增海量数据集批次大小(500万+行)支持
- 将超大数据集批次大小由10万调整至20万
- 根据估算行数新增海量数据集批次选择逻辑
- 增加进度同步间隔至每10万行,减少同步频率
- 保持同步最长时间限制不变,优化性能表现
|
2025-12-19 17:55:55 +08:00 |
zhouyonggao
|
d96271edf9
|
refactor(export): 优化导出任务进度更新,减少数据库写入
- 引入内存进度跟踪器ProgressTracker管理进度状态
- 将多处调用rrepo.UpdateProgress替换为ProgressTracker.Update
- 增加周期性和时间间隔同步限制,降低数据库写入频率
- 实现导出完成时的最终同步以保证进度准确更新
- 统一管理各类型导出任务的进度更新逻辑
- 保持导出流程原有功能不变,提高性能和稳定性
|
2025-12-19 17:49:41 +08:00 |
zhouyonggao
|
48979b41d1
|
feat(exports): 支持服务启动时恢复未完成的导出任务
- 在服务启动时自动查询并恢复所有运行状态的导出任务
- 为导出任务增加重启次数计数及进度重置功能,确保任务重试正确性
- 将原有导出任务执行流程抽象出根据任务ID恢复任务的方法
- 修复导出任务相关数据库访问,统一使用结构体内db连接字段
- 优化导出任务文件处理与状态更新流程,提升任务恢复的稳定性
- 新增导出任务运行状态查询接口以支持任务恢复功能
- 改进错误日志记录,便于排查任务恢复中的异常情况
|
2025-12-19 17:44:29 +08:00 |
zhouyonggao
|
cfaad63e9a
|
fix(export): 修正导出界面创建者选择逻辑
- 修改导出界面创建者选择框禁用条件,由 hasMobile 改为 hasOnlyUserId
- 更新创建者自动匹配逻辑,根据手机号是否存在自动匹配
- 改变创建者编辑权限判断依据,由手机号判断调整为 userId 是否为空
- 添加相关代码注释以提升代码可读性和维护性
|
2025-12-19 17:22:35 +08:00 |
zhouyonggao
|
c5f6f6c6e9
|
fix(api): 增强创建者选择逻辑以支持手机号自动匹配
- 更新创建者查询逻辑,新增手机号字段以便于选择
- 修改前端逻辑,支持通过 URL 中的手机号自动选中创建者
- 优化创建者选择组件,确保在禁用状态下仍能正确显示选项
- 增强日志记录,提供手机号匹配的调试信息,提升用户体验
|
2025-12-19 17:09:39 +08:00 |
zhouyonggao
|
6df550beb9
|
fix(exports): 优化导出表单创建者选择逻辑
- 修改创建者选择组件,支持通过 URL 中的 userId 自动选中并禁用创建者字段
- 更新导出逻辑,确保在对话框打开后重新设置 creatorId 和 ymtCreatorId
- 增强日志记录,提供创建者选择的调试信息,确保用户体验的流畅性
|
2025-12-19 14:35:52 +08:00 |
zhouyonggao
|
61a3b17c09
|
fix(exports): 优化导出逻辑以支持动态时间范围分片
- 在 CountRowsFastChunked 函数中添加时间跨度计算,支持根据时间跨度选择按天或按周分片
- 新增 SplitByWeeks 函数以实现按周分割时间范围
- 增强日志记录,提供分片信息以便于后续分析和调试
|
2025-12-19 02:33:59 +08:00 |
zhouyonggao
|
ccb12da7f3
|
fix(exports): 更新导出逻辑以移除自动用户ID转换
- 删除从 URL 参数 userId 和 current_user_id 自动转换为 creator_in 的逻辑
- 更新相关注释,明确 current_user_id 仅用于记录导出任务的 owner,不用于数据过滤
- 强调用户需手动选择 creator 进行过滤,提升数据过滤的安全性和灵活性
|
2025-12-19 02:24:54 +08:00 |
zhouyonggao
|
fca0e70115
|
fix(exports): 优化导出逻辑以支持多数据源和参数类型记录
- 修改 runJob 函数,重命名参数 fmt 为 fileFormat,提升可读性
- 在 runJob 中添加对查询参数类型的记录,便于调试和排查问题
- 更新 create 函数中的过滤条件逻辑,确保适用于所有数据源
- 引入 toIntID 函数,安全地将多种类型转换为 int64,优化 SQL 构建过程中的参数处理
- 记录导出查询的首行数据和零行结果,增强日志信息以便于后续分析
|
2025-12-19 02:12:44 +08:00 |
zhouyonggao
|
0eb65dde05
|
feat(exports): 增强导出数据转换逻辑以支持渠道编码转换
- 在transformRow函数中添加对voucher_batch.provider字段的渠道编码转换逻辑,将老编码和新编码映射为中文名称
- 添加对order.key字段的解密处理,确保数据安全性
- 提升数据转换的可读性和可维护性,确保导出数据的准确性和友好性
|
2025-12-19 01:20:26 +08:00 |
zhouyonggao
|
bca7892799
|
fix(sqlbuilder): 处理 reseller_id_eq 和 plan_id_eq 过滤条件逻辑
- 添加逻辑判断当存在 plan_id_eq 过滤条件时
- 删除与 creator 相关的过滤条件 creator_in 和 creator_ids
- 优化过滤条件组合,避免冲突和冗余
- 保持现有 merchant_id_in 条件处理逻辑不变
|
2025-12-19 01:14:59 +08:00 |
zhouyonggao
|
57a32855fc
|
fix(api): 删除未使用的变量以清理代码
- 移除了多余的变量used,减少不必要的内存占用
- 优化了list函数中的代码结构
- 提高了代码的可读性和维护性
|
2025-12-19 01:04:43 +08:00 |
zhouyonggao
|
43d67073c9
|
fix(api): 修正用户列表查询逻辑以避免重复
- 将查询语句从 activity 表改为 user 表,优化数据来源
- 修改排序字段由 user_id 改为 id,保持一致性
- 移除代码中对用户 ID 的去重逻辑,简化处理流程
- 保持空用户名用用户 ID 字符串替代的逻辑不变
|
2025-12-19 01:00:51 +08:00 |
zhouyonggao
|
c27cf278dd
|
fix(datepicker): 优化日期禁用逻辑及组件更新方式
- 修正日期禁用函数逻辑,避免重复判断dateRange是否存在
- 结束时间限制调整为只禁止超过开始时间一年后的日期
- 开始时间限制调整为只禁止早于结束时间一年前的日期
- 移除通过DOM操作强制重新渲染的代码,改用组件强制更新方法
- 简化代码增强可读性和维护性
|
2025-12-19 00:14:47 +08:00 |
zhouyonggao
|
c600b30b7e
|
fix(date-range): 调整日期边界计算及强制重渲染逻辑
- 日期边界的计算增加±1天调整,防止超过一年限制
- 添加注释说明开始和结束时间范围限制规则
- 修改日期范围变化监听,增强强制重渲染日期选择器逻辑
- 通过移除再插入元素方式,确保日期选择器正确更新显示
- 优化了判断条件,避免出现空元素操作错误
|
2025-12-19 00:13:00 +08:00 |
zhouyonggao
|
89436d24ed
|
fix(date-picker): 优化日期选择禁用逻辑与重渲染
- 修改 disabledDate 函数,支持基于已选开始或结束时间的前后一年范围限制
- 增加对未选择时间范围时默认不禁用日期的判断
- 新增 watch 监听 exportForm.dateRange,强制触发日期选择器重新渲染
- 通过修改日期选择器 DOM 元素的 key 值实现强制刷新
- 确保日期选择禁用逻辑和视图状态同步更新
|
2025-12-19 00:08:01 +08:00 |
zhouyonggao
|
849e77b401
|
feat(datepicker): 添加日期禁用功能,限制日期范围为一年内
- 新增 disabledDate 函数用于禁用超出当前日期前后一年范围的日期
- 在日期选择组件中绑定 disabledDate 函数
- 优化用户选择日期的有效范围,防止选取过早或过晚的日期
- 通过代码注释清晰说明禁用逻辑实现细节
|
2025-12-19 00:06:34 +08:00 |
zhouyonggao
|
ae4d69edb9
|
fix(export): 修复导出创建者选择为单选的逻辑问题
- 将订单数据创建者选择从多选改为单选
- 修改关联分销商加载逻辑,支持单个创建者ID查询
- 更新计算属性hasCreators以适应单选字段
- 调整导出筛选条件构建中创建者ID的处理
- 添加监听导出表单中的creatorId变化,重置相关筛选条件并重新加载分销商列表
|
2025-12-19 00:04:14 +08:00 |
zhouyonggao
|
4b573d3981
|
fix(exports): 修正 creator_in 过滤条件逻辑
- 调整在 marketing 数据集的 order 或 order_info 主要表时,
当存在 plan_id_eq 或 reseller_id_eq 过滤参数,不设置 creator_in
- 在 mergePermissionIntoFilters 函数中,传递了 plan_id_eq 或 reseller_id_eq 时,
删除已有的 creator_in 和 creator_ids 过滤,避免重复过滤
- 优化过滤逻辑,确保在特定条件下 creator_in 不会被错误附加
- 保留当 creator_in 已经存在且非空时的过滤行为不变
|
2025-12-18 23:39:39 +08:00 |