Commit Graph

483 Commits

Author SHA1 Message Date
d50e85fc52 fix(order): 修复订单取消和退款流程中的并发安全问题
- 添加订单ID空值检查,防止空指针异常
- 使用条件更新替代直接更新,避免并发导致的状态污染
- 扩展退款状态检查范围,包含更多退款相关状态
- 添加未支付订单退款验证,防止脏状态产生
- 增加重复退款申请检查,避免状态冲突
- 区分用户取消和系统取消的原因标记
- 优化更新逻辑确保状态一致性
2026-02-07 15:36:35 +08:00
9b31b3ce57 feat(payment): 优化微信支付功能并添加回调兼容性支持
- 修复信用风险关系查询中的公司ID条件判断逻辑
- 将关键词搜索从main_body_name改为match_name以提高匹配准确性
- 在安全配置中添加/api/system/wx-pay/**路径到公共访问白名单
- 添加RoundingMode导入和WechatPrepaySnapshot数据类用于支付快照管理
- 实现微信支付预下单快照机制以解决请求重入参数不一致问题
- 添加多种回调地址候选方案包括新默认地址和历史兼容地址
- 实现支付金额转换为分的统一方法toFen,使用四舍五入避免精度问题
- 添加Redis缓存存储支付快照,TTL设置为30分钟
- 实现notifyUrl动态切换重试机制,支持多个回调地址备选
- 创建WxPayNotifyAliasController提供旧版回调地址兼容性支持
- 修复JSAPI和Native支付中的金额计算逻辑,优先使用payPrice字段
- 添加支付金额空值检查防止运行时异常
- 优化支付描述字段截断处理逻辑,改进默认值设置
2026-02-07 14:01:04 +08:00
78a3f8ce4c feat(order): 添加订单创建时间和过期时间设置功能
- 引入 LocalDateTime 用于时间操作
- 在订单创建时自动设置 createTime 和 updateTime
- 设置订单默认10分钟过期时间用于支付校验
- 确保时间戳只在为空时进行初始化避免覆盖
- 统一在服务层和控制层实现时间设置逻辑
2026-02-07 13:12:11 +08:00
fc8d49a768 feat(GltTicketTemplate): 添加根据商品ID查询水票功能
- 引入LambdaQueryWrapper用于构建查询条件
- 实现getByGoodsId接口支持按商品ID查询水票模板
- 添加按商品ID、删除状态排序和创建时间降序排序逻辑
- 限制查询结果只返回最新的一条记录
- 集成到现有服务层调用体系中
2026-02-07 12:39:58 +08:00
a20d1dd465 feat(tickets): 实现冻结水票自动释放功能
- 在 GltUserTicketMapper 中新增 releaseFrozenQty 方法用于释放冻结水票
- 新增 GltUserTicketReleaseMapper 处理释放记录的查询和状态更新
- 添加 H2 数据库依赖支持单元测试
- 创建 GltUserTicketAutoReleaseService 接口及其实现类
- 实现自动释放服务的核心逻辑包括加锁查询、数量更新和流水记录
- 新建定时任务 GltUserTicketAutoReleaseTask 定期执行释放操作
- 添加完整的单元测试覆盖正常释放、未到期和冻结不足等场景
- 创建测试专用数据库表结构文件
2026-02-07 00:25:24 +08:00
46de27611d fix(database): 修正水票配送订单表名错误
- 将 ALTER TABLE 语句中的表名从 glt_ticket_order 修正为 glt_ticket_order2
- 确保配送流程相关字段正确添加到目标表结构中
2026-02-06 23:31:50 +08:00
1d63c5cdc8 fix(controller): 修复登录验证失败返回值问题
- 修改riderPage方法中登录验证失败时的返回值格式
- 统一fail方法调用参数结构
2026-02-06 23:18:26 +08:00
922e7def9d feat(ticket): 添加水票订单配送流程功能
- 在GltTicketOrder实体类中新增配送相关的字段,包括配送状态、配送时间、收货人信息等
- 实现配送员端订单查询接口,支持按配送状态筛选和权限隔离
- 添加配送流程核心接口:接单、开始配送、确认送达、用户确认收货等功能
- 实现配送状态流转的状态机校验和并发安全的原子更新操作
- 优化数据库查询SQL,增加配送状态和租户ID的索引提升查询性能
- 添加配送员身份验证和权限检查机制,确保操作安全性
2026-02-06 22:00:59 +08:00
7191c93b4c feat(shop): 添加仓库关联功能到店铺实体
- 在 ShopStore 实体中添加 warehouseId 和 warehouseName 字段
- 为 warehouseName 添加 @TableField(exist = false) 注解标识非数据库字段
- 在 ShopStoreParam 参数类中添加 warehouseId 字段用于查询条件
- 更新实体类导入 TableField 注解支持
2026-02-06 20:02:51 +08:00
f8d134a330 feat(controller): 更新批量导入公司ID匹配逻辑
- 将公司名称匹配方法从精确匹配改为包含匹配模式
- 添加当事人角色字段的优先级处理机制:原告/上诉人 > 被告/被上诉人 > 其他当事人/第三人
- 在多个控制器中统一实现新的匹配策略
- 为CreditJudgmentDebtorController添加备用名称字段回退机制
- 移除原有的单一字段匹配参数,改用多角色字段组合匹配
2026-02-06 18:42:04 +08:00
6b401b8286 refactor(batch-import): 优化公司名称匹配算法
- 移除未使用的 HashSet 和 Set 导入
- 添加 patternLen 字段用于存储模式长度信息
- 修改 CompanyNameMatcher 构造函数以接收 patternLen 参数
- 在构建匹配器时收集并存储每个模式的长度
- 替换原有的 matchedIds 集合匹配逻辑
- 实现基于位置和长度的最优匹配选择算法
- 优先选择更长、更具体的匹配结果
- 处理相同位置不同长度的匹配冲突情况
- 改进模糊匹配的判断逻辑和性能表现
2026-02-06 18:27:13 +08:00
e7133f65c9 feat(case-filing): 更新批量导入功能以支持多角色公司名称匹配
- 实现了在文本中查找公司名称的功能,支持原告/上诉人、被告/被上诉人和其他当事人/第三人的多角色匹配
- 添加了特殊注释说明当事人列可能包含多个角色/名称的处理逻辑
- 调整了批量导入支持类的方法调用,改用新的公司ID刷新方法
- 修改了字段映射顺序,优先处理原告/上诉人字段,然后是被告/被上诉人和其他当事人/第三人字段
- 保持了原有的数据读取和设置逻辑不变
2026-02-06 18:10:18 +08:00
79612be1c6 feat(controller): 新增基于文本内容匹配企业名称的功能
- 在 BatchImportSupport 中新增 refreshCompanyIdByCompanyNameContainedInText 方法
- 实现 AC 自动机算法进行多模式字符串匹配
- 支持从文本字段中提取包含的企业名称并回填 companyId
- 添加 CompanyNameMatcher 内部类处理匹配逻辑
- 优化 CreditMediationController 使用新方法处理多方当事人字段
- 支持按租户分组避免跨租户误匹配
- 实现批量更新和事务处理机制
2026-02-06 17:46:53 +08:00
1b2d09049a refactor(credit): 调整判决债务人实体的金额字段命名
- 将CreditJudgmentDebtor实体中的amount字段描述从"执行标的(元)"改为"涉案金额"
- 将CreditJudgmentDebtorImportParam参数类中的amount字段重命名为involvedAmount
- 更新控制器中对金额字段的引用,使用新的involvedAmount字段名
- 移除参数类中重复的involvedAmount2字段定义
- 在导入模板示例中移除金额字段的默认值设置
2026-02-06 16:58:44 +08:00
a941e4a9ab feat(credit): 添加当事人信息字段到债务人实体
- 设置plaintiffAppellant字段值
- 设置appellee字段值
- 设置otherPartiesThirdParty字段值
- 支持上游XLS模板中的当事人姓名兼容性处理
2026-02-06 16:49:20 +08:00
bdc0acc097 Merge remote-tracking branch 'origin/master' 2026-02-06 16:42:07 +08:00
83cb7208a8 refactor(credit): 重构信用系统相关实体字段映射
- 将plaintiffUser和defendantUser字段替换为plaintiffAppellant和appellee
- 移除冗余的*2字段(如involvedAmount2、occurrenceTime2、courtName2)
- 统一使用标准字段进行数据映射避免重复逻辑
- 更新Excel注解标签以匹配新的字段命名规范
- 调整数据导入时的字段对应关系
2026-02-06 16:42:00 +08:00
d68a53e3d0 feat(entities): 添加实体字段并优化订单查询
- 在CreditJudgmentDebtor实体中新增原告/上诉人、被告/被上诉人和其他当事人字段
- 在CreditJudgmentDebtorImportParam参数类中添加对应的Excel映射字段
- 在GltTicketOrder实体中新增门店、配送员和仓库的名称地址相关字段
- 更新GltTicketOrderMapper.xml查询SQL,关联店铺和配送员信息
- 添加门店名称、地址、手机号及配送员姓名、手机号等非数据库字段映射
2026-02-06 16:41:47 +08:00
fe15c7120f feat(order): 实现订单地址快照功能
- 移除 GltTicketOrder 实体中 address 字段的 @TableField(exist = false) 注解
- 添加 ShopUserAddress 和 ShopUserAddressService 的依赖注入
- 在订单创建时实现地址快照逻辑,将用户地址信息保存到订单表
- 添加地址验证和权限检查功能
- 实现默认地址获取和地址拼接功能
- 添加订单参数空值校验
2026-02-06 13:43:08 +08:00
6285429753 feat(order): 添加订单实体扩展字段和用户关联查询
- 在GltTicketOrder实体中添加address、province、city、region等地址相关字段
- 在GltTicketOrder实体中添加nickname、phone、avatar等用户信息字段
- 所有新增字段均使用@TableField(exist = false)注解标记为非数据库字段
- 更新GltTicketOrderMapper.xml中的关联
2026-02-06 13:36:19 +08:00
46b5ce3971 1 2026-02-06 12:40:30 +08:00
4832929a11 1 2026-02-06 12:39:58 +08:00
1536f1780b feat(order): 添加订单快递单号同步到发货单功能
- 在订单更新时检查并同步快递单号到发货单表
- 使用LambdaQueryWrapper查询相关发货单记录
- 支持新增发货单或更新现有发货单的快递单号
- 添加异常处理避免同步失败影响主流程
- 实现手动录入和无需物流两种配送方式的处理
- 添加日志记录同步失败的情况便于排查问题
2026-02-06 02:27:56 +08:00
804a5a7bef feat(shop): 添加微信小程序发货信息自动同步功能
- 新增 ShopWechatShippingSyncService 接口及实现类
- 在订单发货时自动同步实物快递和无需物流的发货信息到微信后台
- 添加微信小程序 access_token 获取服务及缓存机制
- 优化订单发货逻辑,支持无需物流/自提订单的自动同步处理
- 添加详细的日志记录和异常处理机制
- 实现发货信息同步失败时的容错处理
2026-02-06 01:09:41 +08:00
60279fca4c fix(cache): 解决缓存中JSON null值导致的空指针问题
- 添加对历史缓存中JSON "null" 字符串的兼容处理
- 当缓存解析出null值时清理缓存并回源数据库
- 在CmsWebsiteServiceImpl中增加缓存清理逻辑
- 在ShopWebsiteServiceImpl中统一缓存异常处理机制
- 添加单元测试验证JSON null值场景的正确回退行为
2026-02-06 00:49:00 +08:00
2c076e2b0f feat(order): 添加送水订单配送时间和完整下单流程
- 在GltTicketOrder实体中新增sendTime字段用于记录配送时间
- 移除送水订单查询接口的权限验证要求,开放查询功能
- 实现完整的下单流程:验证登录用户、扣减水票、写入核销记录、创建订单
- 新增createWithWriteOff方法处理事务性下单操作,确保数据一致性
- 添加数据库行锁机制防止并发扣减问题
- 优化水票相关接口描述,明确为可用水票总数
- 移除水票日志添加接口的权限验证和操作日志注解
2026-02-06 00:15:31 +08:00
48cd2e1f7b feat(order): 添加送水订单配送时间和完整下单流程
- 在GltTicketOrder实体中新增sendTime字段用于记录配送时间
- 移除送水订单查询接口的权限验证要求,开放查询功能
- 实现完整的下单流程:验证登录用户、扣减水票、写入核销记录、创建订单
- 新增createWithWriteOff方法处理事务性下单操作,确保数据一致性
- 添加数据库行锁机制防止并发扣减问题
- 优化水票相关接口描述,明确为可用水票总数
- 移除水票日志添加接口的权限验证和操作日志注解
2026-02-06 00:15:20 +08:00
88afd149c3 feat(glt): 添加送水订单模块并优化经销商结算功能
- 新增送水订单实体类 GltTicketOrder 及其相关控制器、服务、映射器
- 添加送水订单参数类 GltTicketOrderParam 和 XML 映射配置
- 实现送水订单的增删改查、分页查询等完整 CRUD 功能
- 在经销商结算任务中引入分销设置功能,支持按级别控制分佣
- 更新总经销商分润计算逻辑,使用动态费率替代固定值
- 删除不再使用的中文字体修复脚本文件
- 重构经销商推荐佣金结算逻辑,支持最多三级分佣
- 优化订单状态检查逻辑,在退款流程中排除已完成订单
2026-02-05 18:51:53 +08:00
9672be2252 feat(settlement): 添加总经销商分润功能
- 引入 TOTAL_DEALER_DIVIDEND_RATE 常量用于总经销商分润计算
- 添加 findTotalDealerUserId 方法查找总经销商用户ID
- 新增 settleTotalDealerCommission 方法实现总经销商分润逻辑
- 修改 settleOneOrder 方法传入总经销商用户ID参数
- 更新 createDealerOrderRecord 方法支持总经销商分润记录
- 扩展 buildCommissionTraceComment 方法包含总经销商分润信息
- 添加 TotalDealerCommission 内部类封装总经销商分润数据
- 实现总经销商分润的幂等处理和日志记录功能
2026-02-05 15:47:40 +08:00
1107b9144f feat(settlement): 添加总经销商分润功能
- 引入 TOTAL_DEALER_DIVIDEND_RATE 常量用于总经销商分润计算
- 添加 findTotalDealerUserId 方法查找总经销商用户ID
- 新增 settleTotalDealerCommission 方法实现总经销商分润逻辑
- 修改 settleOneOrder 方法传入总经销商用户ID参数
- 更新 createDealerOrderRecord 方法支持总经销商分润记录
- 扩展 buildCommissionTraceComment 方法包含总经销商分润信息
- 添加 TotalDealerCommission 内部类封装总经销商分润数据
- 实现总经销商分润的幂等处理和日志记录功能
2026-02-05 15:43:02 +08:00
acc543b50a refactor(task): 将经销商订单结算任务从shop模块迁移到glt模块
- 修改包路径从com.gxwebsoft.shop.task到com.gxwebsoft.glt.task
- 调整模块间的依赖关系
- 更新相关的导入引用
2026-02-05 15:26:34 +08:00
b9c70bb4a3 perf(shop): 优化经销商设置列表排序逻辑
- 将默认排序字段从 create_time 改为 update_time
- 移除 PageParam 的排序方法,改用 Java Stream 的 sort 进行排序
- 添加空值检查,避免对空列表进行排序操作
- 使用 Comparator.nullsLast 处理空值情况
- 提升列表排序性能,减少不必要的对象创建
2026-02-05 15:15:51 +08:00
ee9ea88ce9 fix(entity): 修复ShopDealerSetting实体映射问题
- 添加TableField注解以正确映射数据库字段
- 将关键字字段名用反引号包围避免SQL语法冲突
- 更新XML映射文件中的字段引用为带反引号的形式
- 确保数据库查询与实体字段映射一致
2026-02-05 15:08:55 +08:00
093826435e feat(shop): 修改经销商设置实体ID生成策略并优化保存更新逻辑
- 将ShopDealerSetting实体的@TableId注解type从AUTO改为INPUT
- 新增saveOrUpdateByKey方法统一处理保存和更新操作
- 移除LambdaQueryWrapper手动构建的更新逻辑
- 简化控制器中的保存和更新接口实现
- 优化多租户场景下的数据操作逻辑
2026-02-05 15:06:50 +08:00
85a8d17194 feat(shop): 更新分销商设置表的保存和修改功能
- 添加 ShopDealerSettingSaveParam 参数类用于保存和修改操作
- 修改 save 方法使用新的参数类并实现实体构建逻辑
- 更新 update 方法使用 LambdaQueryWrapper 进行精确更新
- 添加 buildEntity 方法用于将参数转换为实体对象
- 实现 normalizeUpdateTime 方法处理时间戳溢出问题
- 添加租户ID默认值获取逻辑
- 增强更新操作的数据验证和错误处理机制
2026-02-05 14:33:17 +08:00
bbd41da1d3 fix(shop): 修复商城信息缓存解析逻辑
- 优化缓存数据解析流程,添加空值检查
- 当缓存解析失败时清理无效缓存键
- 改进异常处理机制,避免返回空数据
- 移除调试代码并完善日志记录
2026-02-05 10:46:28 +08:00
e4e10d46cc fix(mapper): 修复用户票券关联查询中的数据放大问题
- 修改 shop_order 表关联条件,从 order_no 改为 order_id + tenant_id 组合
- 添加 tenant_id 筛选避免跨租户数据污染
- 添加 deleted 字段过滤确保只关联未删除订单
- 将 pay_price 字段别名规范化为 camelCase 格式
2026-02-05 10:15:03 +08:00
195e90df5e fix(settlement): 修复经销商订单结算任务中的分润收入计算问题
- 注释掉三级经销商佣金计算逻辑以解决结算异常
- 保留直接推荐奖和二级分润收入的正常计算流程
- 防止因三级佣金计算导致的订单结算失败问题
2026-02-04 17:49:00 +08:00
c5da6f371b feat(order): 分离订单退款功能到独立接口并优化水票统计
- 将订单退款逻辑从update方法中分离到独立的refund接口
- 添加退款相关操作权限控制和参数验证
- 实现申请退款和同意退款两种状态的分别处理
- 新增水票总数统计功能,包括service、mapper和controller层实现
- 修改佣金注释文本从"第3级佣金"为"分润收入"
- 优化订单更新逻辑,禁止通过普通更新接口进行退款操作
2026-02-04 17:38:00 +08:00
51d3a029cc feat(shop): 添加订单支付功能支持
- 新增 OrderPrepayRequest DTO 用于处理支付请求参数
- 实现 prepay 接口支持 /pay、/prepay、/repay 多路径兼容
- 添加用户登录验证和租户权限校验机制
- 集成微信支付创建订单功能并返回支付信息
- 实现订单状态验证包括已支付、已删除、已过期等状态检查
- 支持通过订单ID或订单号查询并处理支付请求
- 添加支付类型参数处理和默认值设置逻辑
2026-02-04 15:57:34 +08:00
30c7e72a80 fix(order): 修复订单处理中的空指针异常和状态比较问题
- 添加 Objects 工具类导入用于安全的对象比较
- 修复 shopOrderNow 为空时的空指针异常
- 使用 Objects.equals 替换直接的 equals 比较避免 NPE
- 为发货状态变更逻辑添加清晰的注释说明
- 修复支付状态检查中的布尔值比较逻辑
2026-02-04 15:47:23 +08:00
36bf931274 feat(order): 更新订单发货状态为已发货
- 在订单状态更新时同步设置发货状态为"已发货"
- 确保订单处理流程中发货状态的一致性
2026-02-04 11:18:53 +08:00
58c755b715 feat(tickets): 实现套票购买量和赠送量的分离管理
- 购买量(buyQty)立即设置为可用状态
- 赠送量(giftQty)设置为冻结状态并按计划释放
- 修改总数量计算逻辑,将购买量和赠送量直接相加
- 更新套票记录中的可用数量和冻结数量字段
- 调整释放计划构建方法,仅基于赠送量进行释放规划
- 更新套票日志记录,区分可用量和冻结量的变化追踪
2026-02-04 10:24:46 +08:00
937e707890 refactor(glt): 优化套票发放服务逻辑
- 引入 IssueOutcome 枚举替代布尔返回值,提高代码可读性
- 恢复并完善订单时间条件查询逻辑
- 移除调试用的 System.out.println 语句
- 实现订单状态更新机制,发放完成后将订单置为已完成
- 增强幂等性处理,支持已处理订单的跳过逻辑
- 统一异常情况处理,各类失败场景返回对应枚举值
- 添加详细的注释说明业务逻辑和处理流程
2026-02-04 10:12:55 +08:00
9a79aff47d feat(ticket): 增加套票实体扩展字段和关联查询功能
- 在GltUserTicket实体中增加templateName、payPrice、goodsName、nickname、avatar、phone等扩展字段
- 在GltUserTicketLog实体中增加nickname、avatar、phone等用户信息扩展字段
- 在GltUserTicketRelease实体中增加nickname、avatar、phone等用户信息扩展字段
- 修改GltUserTicketMapper.xml实现用户表、模板表、订单表的LEFT JOIN关联查询
- 修改GltUserTicketLogMapper.xml实现用户表LEFT JOIN关联查询并优化搜索条件
- 修改GltUserTicketReleaseMapper.xml实现用户表LEFT JOIN关联查询并调整搜索逻辑
- 临时注释掉套票发放服务中的时间条件过滤逻辑
- 添加调试日志输出订单数量信息
2026-02-04 02:44:33 +08:00
d393de816f feat(ticket): 添加套票发放定时任务和核心服务
- 实现 GltTicketIssue10584Task 定时任务,每分钟扫描今日订单并生成套票账户
- 创建 GltTicketIssueService 服务,处理从订单生成用户套票和释放计划的完整流程
- 支持幂等处理,防止重复发放套票
- 实现月度释放计划生成功能,支持首期立即释放或次月释放模式
- 添加多租户支持和并发控制,确保任务执行安全
- 集成订单状态检查、套票模板验证和发放流水记录功能
2026-02-03 21:25:13 +08:00
27baa6ecf7 refactor(order): 移除套票发放相关代码
- 删除套票发放注释代码(冻结/可用、分期释放功能)
- 清理订单支付成功后的冗余业务逻辑
- 优化订单服务实现类的代码结构
2026-02-03 20:45:50 +08:00
d7a6b7cc94 feat(ticket): 实现套票分期释放功能核心数据结构
- 修改 GltUserTicketReleaseParam 中 id 和 userTicketId 类型从 Long 改为 Integer
- 移除 ShopOrderServiceImpl 中的 shopTicketBizService 依赖注入
- 注释掉订单支付成功后的套票发放调用
- 添加套票功能开发计划文档,定义套票模板、用户套票账户、释放计划和变更流水的核心概念
- 设计并创建套票相关数据库表,包括套票模板表、用户套票账户表、释放计划表和变更流水表
2026-02-03 20:37:11 +08:00
24133ef8a8 feat(glt): 添加水票功能模块
- 新增 GltTicketTemplate 实体类定义水票基础属性
- 实现 GltTicketTemplateController 提供水票管理API接口
- 创建 GltTicketTemplateMapper 和 XML 映射文件实现数据访问
- 定义 GltTicketTemplateParam 查询参数类
- 实现 GltTicketTemplateService 业务逻辑层接口
- 添加 GltUserTicket 实体类管理用户水票信息
- 实现 GltUserTicketController 控制器提供用户水票管理功能
- 新增 GltUserTicketLog 实体类记录消费日志
- 实现 GltUserTicketLogController 提供消费日志管理接口
- 完善相关 Mapper、Service 层接口及实现类
- 集成 Swagger 注解提供 API 文档支持
- 添加安全权限控制注解实现接口权限验证
2026-02-03 19:39:20 +08:00
35c155a1da feat(car): 实现车辆管理硬删除功能
- 在控制器中将删除方法改为硬删除(物理删除),绕过逻辑删除注解
- 在数据访问层添加硬删除SQL映射方法,支持单条和批量删除
- 在服务层定义硬删除接口方法并实现具体逻辑
- 添加空值校验确保删除操作的安全性
- 注释说明硬删除与逻辑删除的区别和用途
2026-02-02 18:33:54 +08:00