Commit Graph

158 Commits

Author SHA1 Message Date
zhouyonggao 743e2bc4d2 fix(api): 修改 YMTUsersAPI 列表方法以忽略搜索关键词
- 在 list 方法中,始终返回所有用户数据,忽略查询参数 q。
- 将 keyword 变量设置为空字符串,以确保不进行过滤。
2025-12-20 15:54:21 +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 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 c5f6f6c6e9 fix(api): 增强创建者选择逻辑以支持手机号自动匹配
- 更新创建者查询逻辑,新增手机号字段以便于选择
- 修改前端逻辑,支持通过 URL 中的手机号自动选中创建者
- 优化创建者选择组件,确保在禁用状态下仍能正确显示选项
- 增强日志记录,提供手机号匹配的调试信息,提升用户体验
2025-12-19 17:09:39 +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 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 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 02af4a91f4 fix(metadata): 修正发券方式字段隐藏状态
- 将 voucher.receive_mode 字段的 Hidden 属性从 false 改为 true
- 确保发券方式字段在界面中默认隐藏
- 保持其他字段的隐藏状态不变
2025-12-18 22:39:07 +08:00
zhouyonggao 8868051767 fix(api): 修正userId字段JSON键名
- 修改JSON_CONTAINS中字段键名由'user_id'为'userId'
- 保证用户ID匹配逻辑正确执行
- 防止因键名错误导致的查询失败
2025-12-18 22:04:33 +08:00
zhouyonggao 962d1c0ae3 fix(api): 修复商户列表查询逻辑并增强用户过滤条件
- 修改查询条件,将 `delete_time` 为空作为有效数据筛选
- 优化用户过滤,支持 `user_id` 字段匹配及 JSON 字段中包含该用户
- 修正代码格式和缩进以提升可读性
- 增加对请求参数 `limit` 的范围校验
- 优化错误处理逻辑,确保查询异常时返回正确状态码
2025-12-18 22:02:04 +08:00
zhouyonggao c45cabbfdc fix(api): 修复分销商查询时销售员ID筛选条件错误
- 修改SQL查询,添加 salesmen_id 作为筛选条件
- 传递salesman_id对应的参数,确保查询参数正确
- 保持原有creator参数传递逻辑不变
- 解决遗漏salesman_id参数引起的查询异常问题
2025-12-18 21:56:42 +08:00
zhouyonggao a8b7c77e03 feat(api): 支持按creator参数过滤经销商列表
- 新增creator参数解析,支持按多个creator过滤
- 根据传入creator构建SQL查询条件及参数绑定
- 当creator参数为空时,返回空列表避免无效查询
- 保持原有按q参数模糊搜索功能不变
- 限制默认返回记录数为2000,增强接口性能
2025-12-18 21:38:28 +08:00
zhouyonggao 11a93996e5 feat(api): 支持营销代理数据库并优化代理列表查询
- 新增配置项支持营销代理数据库连接
- 主服务启动时根据配置连接营销代理MySQL,若无配置则使用营销库回退
- ResellersAPI 使用独立的营销代理数据库替代原营销数据库查询
- 优化代理列表接口,改为从reseller表查询代理Id及名称
- 修改路由注册,使用营销代理数据库处理代理相关路由请求
- 调整相关代码实现,提升代理数据查询灵活性和健壮性
2025-12-18 21:37:13 +08:00
zhouyonggao 6dbc3eb1a1 fix(constants): 修正红包领取状态映射的键值
- 将红包领取状态映射的键从1开始调整为0开始
- 重新排列状态值对应,保持顺序一致
- 修正代码逻辑中状态码对应的实际含义
2025-12-18 21:29:54 +08:00
zhouyonggao ae04be7ea0 fix(constants): 修改营销系统立减金状态描述
- 将状态码2的描述由“已实扣”更改为“已核销”
2025-12-18 21:25:52 +08:00
zhouyonggao 4b313adebb fix(exports): 修复导出接口用户ID参数传递问题
- 取消从查询参数中获取 current_user_id 和 userId 的逻辑
- 调用 CountJobs 和 ListJobs 时传入空字符串替代用户ID
- 避免因传递错误用户ID导致的数据过滤错误
2025-12-18 21:11:18 +08:00
zhouyonggao b09865fcbd fix(api): 修正导出接口中用户ID参数获取逻辑
- 优先从请求参数中获取 current_user_id
- 若 current_user_id 为空则退回获取 userId
- 保证查询用户导出任务时使用正确的用户ID参数
- 提升接口的兼容性和灵活性
2025-12-18 21:09:12 +08:00
zhouyonggao 0de192c9b4 feat(export): 根据预估行数限制xlsx格式导出
- 新增xlsx格式最大行数阈值配置,超过该阈值则导出格式强制为csv
- 查询export_jobs表中作业的预估行数用于判断格式切换
- 记录格式切换时的日志,包含作业ID、预估行数及阈值信息
- 避免xlsx格式导出过大文件,提高导出效率和稳定性
- 在export常量中添加XlsxMaxRows配置项,默认值为100000行
2025-12-18 20:58:23 +08:00
zhouyonggao 5020b6bc61 fix(api): 统一用户ID参数及禁止删除公共模板
- 将模板相关接口中用户ID参数"userId"改为"current_user_id"
- 修改前端模板列表删除按钮的显示逻辑
- API新增检查删除模板时是否为公共模板,owner_id为0时禁止删除
- 删除模板前检查模板存在性,返回404错误
- 修改调用构建查询字符串时使用"current_user_id"参数
- 更新请求URL构建逻辑,确保传递正确的用户ID参数
2025-12-18 18:27:25 +08:00
zhouyonggao c6abab1406 fix(schema): 修复订单编号字段标签不一致问题
- 新增“order_cash.order_number”字段标签映射为“订单号”
- 保持旧字段“order_cash.order_no”标签不变,确保兼容性
- 统一订单编号相关字段的标签显示规范
2025-12-18 18:03:13 +08:00
zhouyonggao 0bc28ee9f8 fix(schema): 修复 order_cash.receive_user_id 标签缺失问题
- 在字段标签映射中添加 order_cash.receive_user_id 项
- 将该标签映射为“领取账号”以保持一致性
- 修正了相关字段显示时的标签缺失导致的问题
2025-12-18 18:01:26 +08:00
zhouyonggao 57ecdbe692 fix(exporter): 修复ymt数据源下reseller_id_eq过滤器处理
- 不再将reseller_id_eq转换为merchant_id_in过滤条件
- 保留reseller_id_eq作为独立的WHERE子句进行过滤
- 删除零值的reseller_id_eq以避免无效查询条件
- 优化了过滤器的逻辑,避免删改遗漏问题
2025-12-18 17:57:07 +08:00
zhouyonggao bc6bc3945e fix(exporter): 修正易码通订单 reseller_id_eq 过滤器逻辑
- 易码通订单中 reseller_id_eq 不再转为 merchant_id_in 与 creator_in 做 OR 逻辑
- 保留 reseller_id_eq 作为单独的 WHERE 条件,不做合并删除
- 移除无效的过滤器跳过逻辑,优化过滤器处理流程
- 修改立减金相关标签名称,"未核销过期时间"改为"立减金过期时间"
2025-12-18 17:46:46 +08:00
zhouyonggao 41e00e3fd6 fix(api): 隐藏组合商品基础信息字段
- 修改 code_batch.group_info 字段的 Hidden 属性为 true
- 保持其他字段显示状态不变
- 确保组合商品基础信息在前端不再默认展示
2025-12-18 17:38:38 +08:00
zhouyonggao d5eec5c0a6 fix(api): 将部分卡券字段设置为隐藏
- 修改voucher.card_type字段的隐藏属性为true
- 修改voucher.early_notifier字段的隐藏属性为true
- 保持其他字段的隐藏状态不变,增强数据展示的隐私性和整洁度
2025-12-18 17:35:50 +08:00