Commit Graph

223 Commits

Author SHA1 Message Date
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
zhouyonggao 13b4ff56df fix(api): 优化权限过滤器中 plan_id_eq 与 reseller_id_eq 的设置逻辑
- 将 plan_id_eq 和 reseller_id_eq 的赋值提至过滤 creator 判断之前
- 避免重复映射相同的权限边界字段
- 保持营销数据集订单相关过滤条件的正确性
- 简化 skipCreator 标签区域中重复的代码逻辑
2025-12-18 23:34:19 +08:00
zhouyonggao dd559f2f78 fix(api): 调整权限合并逻辑以支持plan_id_eq和reseller_id_eq过滤
- 在marketing数据源且主资源为order或order_info时
- 若filters包含非空的plan_id_eq或reseller_id_eq,则跳过creator过滤
- 优化了对权限中多个可能user id字段的检测逻辑
- 统一将识别到的用户ID写入filters的creator_in字段
- 保留了对reseller_id和merchant_id的兼容处理逻辑
2025-12-18 23:26:09 +08:00
zhouyonggao 5608897284 fix(api): 修复用户列表接口查询和去重逻辑
- 移除无效的查询参数处理,简化SQL查询语句
- 修复对用户ID的重复数据去重逻辑,确保结果唯一
- 统一代码格式和缩进,提高代码可读性
- 保留按user_id升序排序及查询限制功能
- 保证接口在无匹配路由时返回404状态码
2025-12-18 23:06:32 +08:00
zhouyonggao 9c34250d3e fix(schema): 修改订单外部交易号标签名称
- 将订单字段 "order.out_trade_no" 的标签由“支付流水号”改为“外部交易号”
2025-12-18 22:51:32 +08:00
zhouyonggao aad56c6c36 refactor(web): 移除订单导出中立减金批次号输入框
- 删除了订单导出页面中关于立减金批次号的输入项
- 优化了导出表单的布局结构
- 清理了条件渲染相关的无用代码
- 减少了页面冗余元素,提升渲染效率
2025-12-18 22:48:04 +08:00
zhouyonggao 02af4a91f4 fix(metadata): 修正发券方式字段隐藏状态
- 将 voucher.receive_mode 字段的 Hidden 属性从 false 改为 true
- 确保发券方式字段在界面中默认隐藏
- 保持其他字段的隐藏状态不变
2025-12-18 22:39:07 +08:00
zhouyonggao cf01466332 refactor(web): 移除表单中的“可见性”选择项
- 删除了可见性字段及其相关的选择组件
- 简化了表单布局,减少不必要的UI元素
- 保持了表单功能的其余部分不变
- 提升表单的简洁性和用户体验
2025-12-18 22:34:03 +08:00
zhouyonggao 723e61da9e refactor(ui): 移除编辑表单中可见性选择项
- 删除了编辑表单中的可见性字段相关代码
- 简化了表单布局,减少不必要的表单项
- 保证表单在无用户ID时不显示可见性选择器
- 优化了代码的可读性和维护性
2025-12-18 22:33:18 +08:00
zhouyonggao 3f629d83fb fix(web): 修复可见性选择框清除按钮问题
- 移除了可见性选择框中 clearable 属性,避免清除按钮显示错误
- 保持了选择框的禁用状态和其他原有属性不变
- 优化了用户交互体验,防止误操作导致数据丢失
2025-12-18 22:32:03 +08:00
zhouyonggao d9a8f67c88 feat(api): 添加 hasOnlyUserId 判断并更新导出组件的禁用逻辑
- 在 api.js 中新增 hasOnlyUserId 方法,用于检测 URL 中是否仅包含 userId 参数
- 在 main.js 里通过计算属性引入 hasOnlyUserId 状态
- 修改 index.html 中导出订单数据创建者选择框的禁用条件,从 hasUserId 改为 hasOnlyUserId
- 优化了导出表单组件对用户 ID 参数的判断逻辑,提高交互准确性
2025-12-18 22:28:41 +08:00