Commit Graph

248 Commits

Author SHA1 Message Date
zhouyonggao 008a5f6328 fix(docker): 修改Dockerfile和部署脚本的路径和挂载配置
- 调整容器启动命令,改为在 go.work 所在目录编译运行
- 移除部署脚本中 docker run 的部分卷挂载配置
- 保持容器暴露端口为 8077 不变
- 使构建过程路径和运行环境更一致,提高容器启动稳定性
2025-12-20 16:16:49 +08:00
zhouyonggao ef008482c2 fix(deploy): 修复docker卷挂载路径错误
- 调整server配置文件挂载为整个server目录只读
- 新增grpc目录挂载为只读
- 保持web目录只读挂载不变
- 确保端口映射与容器启动参数一致
2025-12-20 16:12:45 +08:00
zhouyonggao f771fd8b65 fix(deploy): 修正配置文件装载路径错误
- 修改docker挂载的config.yaml路径为/app/server/config.yaml
- 移除旧的配置文件挂载路径
- 保持其它挂载和环境变量配置不变
- 修复启动容器时配置文件不可访问的问题
2025-12-20 16:09:48 +08:00
zhouyonggao 484723c23a fix(docker): 修改启动命令以直接编译并运行服务
- 移除复制启动脚本及赋予执行权限的步骤
- 将容器入口点改为shell命令,编译Go服务后直接执行
- 简化启动流程,避免额外脚本依赖
- 保留暴露端口8077不变
2025-12-20 16:08:18 +08:00
zhouyonggao 37b6716a2a build(docker): 优化Docker构建流程与镜像基础
- 基础镜像更换为带Go环境的golang:1.25-alpine,支持容器启动时编译
- 配置Alpine镜像源为阿里云,提升依赖安装速度
- 安装git包,满足源码及依赖管理需求
- 在构建阶段分步复制go.work和mod文件,通过go work sync优化依赖管理
- 复制grpc生成代码及server源码,改进镜像组织结构
- 添加并授权启动脚本docker-entrypoint.sh,实现容器启动时编译运行
- 替换ENTRYPOINT为启动脚本,完成容器的动态构建与启动过程
- 保留时区和CA证书安装,确保运行环境完整
2025-12-20 16:04:53 +08:00
zhouyonggao 743e2bc4d2 fix(api): 修改 YMTUsersAPI 列表方法以忽略搜索关键词
- 在 list 方法中,始终返回所有用户数据,忽略查询参数 q。
- 将 keyword 变量设置为空字符串,以确保不进行过滤。
2025-12-20 15:54:21 +08:00
zhouyonggao 2236a6068b chore(docker): 添加前端静态文件到 Docker 镜像
- 在 Dockerfile 中复制前端静态文件到镜像中,以确保容器内可用。
- 更新部署脚本以挂载前端文件夹,增强容器的可用性和灵活性。
2025-12-20 15:52:04 +08:00
zhouyonggao bb73dbe25e chore(docker): 更新 Go 代理配置以提升构建速度
- 在 Dockerfile 中使用多个国内 Go 代理镜像源,提升可用性和速度。
- 代理源顺序为 goproxy.cn、goproxy.io、阿里云镜像,确保构建过程更加高效。
2025-12-20 15:35:22 +08:00
zhouyonggao 3da3d9186a chore(docker): 配置 Alpine 国内镜像源以提升构建速度
- 在 Dockerfile 中添加对 Alpine 国内镜像源(阿里云)的配置,优化包安装速度。
- 确保在构建和运行阶段均使用国内镜像源,以提高构建效率和稳定性。
2025-12-20 15:33:27 +08:00
zhouyonggao ebcff4433b chore(docker): 优化 Dockerfile 和部署脚本以提升构建效率
- 在 Dockerfile 中合并 RUN 命令以减少镜像层数,提升构建效率。
- 移除不必要的用户创建和权限设置,暂时使用 root 用户运行以简化构建过程。
- 更新部署脚本以使用构建缓存加速构建,并记录构建时间,提供更好的用户反馈。
2025-12-20 15:32:40 +08:00
zhouyonggao 9d6017da04 chore(log): 删除过时的日志文件 server-20251220.log
- 移除 server-20251220.log 文件,该日志文件已不再需要,确保版本控制中不包含无用的日志记录。
2025-12-20 15:25:19 +08:00
zhouyonggao cbce5ad7c8 chore(log): 更新 .gitignore 文件以排除新的日志文件
- 在 .gitignore 中添加对 log/server-20251220.log 文件的排除规则,确保该日志文件不被纳入版本控制。
- 更新 server-20251220.log 文件,添加一行记录以反映服务状态。
2025-12-20 15:24:57 +08:00
zhouyonggao 9e0c7e45b3 chore(docker): 更新 Dockerfile 和部署脚本以优化权限管理和目录结构
- 在 Dockerfile 中设置文件所有者和执行权限,确保二进制文件的安全性。
- 创建必要的目录并设置相应的权限,提升容器的可用性。
- 更新部署脚本,调整挂载路径以分离存储和日志目录,增强容器的管理性。
2025-12-20 15:23:44 +08:00
zhouyonggao 164927ac4f chore(docker): 调整 Dockerfile 以排查权限问题
- 移除 COPY 命令中的 --chown 选项,确保文件复制过程简化。
- 添加 chmod 命令以确保二进制文件具有执行权限。
- 暂时使用 root 用户运行,以便排查权限相关问题。
2025-12-20 15:23:00 +08:00
zhouyonggao 25a26b82a2 chore(docker): 确保构建的二进制文件具有执行权限并优化文件复制
- 在 Dockerfile 中添加 chmod 命令,确保构建的二进制文件具有执行权限。
- 优化文件复制步骤,使用 --chown 选项设置文件所有者,提升安全性和可维护性。
2025-12-20 15:22:25 +08:00
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