Commit Graph

54 Commits

Author SHA1 Message Date
DaxPay Dev
9e26d6a2b2 refactor(trade): 订单查询编排下沉到 core 并清空增量 SQL
将运营/商户端交易订单查询与详情组装迁入 payment-core,两端 Controller 共用;同步清空 iam_perm_menu.sql 与 update-datas.sql。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 15:52:36 +08:00
DaxPay Dev
00ca747134 refactor(dashboard): 按运营/商户拆分交易报表 Mapper
运营端 Admin*、商户端 Mch* 各自持有 Mapper/Service,core 仅保留 Result 与 TradeReportSupport;同步商户工作台菜单与资金交易只读接口。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-23 10:50:18 +08:00
DaxPay Dev
1ab222f883 refactor(admin): 同步菜单 component/path 至新前端目录
对齐 terminal/route/global 通道商户与 mobile-app 搬家后的菜单路径,并追加已装库升级 SQL。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 21:53:05 +08:00
DaxPay Dev
365cb6ed5f feat(trade): 下单写入 provider 并修复报表口径
资金凭证创建时由 method 派生 provider,成功路径兜底补齐;SQL 回填历史 posted_amount/provider;时段分布改为日均。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-22 21:14:25 +08:00
DaxPay Dev
3095c509c8 feat(callback): 新增通道入站回调记录并落库审计
保存通道异步回调报文与处理结果,含 channelMchNo;一级菜单「交易记录」下可查询,去掉未使用的 errorCode。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 15:41:32 +08:00
DaxPay Dev
754a74721f feat(notice): 新增商户出站通知管线(任务/重试/协议SPI)
统一订单级与应用级 webhook,接入支付/退款终态与易支付协议发送,并提供管理端任务查询与手动重发。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 13:47:38 +08:00
DaxPay Dev
3300d94722 chore(menu): 交易菜单排序调整并清理已执行的升级脚本 2026-07-20 15:37:25 +08:00
DaxPay Dev
98f39595ab feat(device): 系统终端与通道终端台账功能,菜单迁移至商户管理
- 新增系统终端/通道终端/绑定关系实体与管理层(controller/service/dao/entity/param/result/convert)
- 权限码 device:terminal:system → merchant:terminal(PermCodes 迁移至 Merchant 域)
- 菜单 id=905 从设备管理(pid=9)移到商户管理组(pid=4040130), 改为 subpage 隐藏模式
- update-datas.sql 增量升级脚本(已部署库 UPDATE)
- 终端类型/状态枚举, 10语种 i18n
2026-07-19 00:07:40 +08:00
DaxPay Dev
ad36fe93f7 feat(audit): 统一支付接口审计日志与公共参数 reqId
开放 API 公共参数增加必填 reqId 并响应回显;在验签切面异步记录调用审计(mchNo+reqId 索引),不落 appId/业务单号列;运营端日志管理增加支付接口日志菜单与查询能力。
2026-07-17 17:38:15 +08:00
DaxPay Dev
86b0fa0be2 feat(security): 平台安全配置拆分并增强 nonce/防重放
将平台安全配置拆为 API/IAM/支付多份;nonce 校验可配置化;补齐 SQL、权限码与多语 validation/i18n。
2026-07-17 08:24:29 +08:00
DaxPay Dev
357ee494ee feat(sensitive-word): 新增平台敏感词过滤能力
新增 capability-sensitive-word 模块(词库 CRUD、命中审计、AC 匹配与繁转简规范化),平台配置策略开关,并接入支付标题/商品名与商户应用门店等展示字段校验;同步 DDL、菜单与后端 i18n。
2026-07-16 09:08:37 +08:00
DaxPay Dev
a42052b821 feat(risk): 新增支付风控插件(黑名单与命中记录)
新增 daxpay-plugin-risk 模块,支持黑名单管理、风险命中记录与支付前风控校验;补充表结构/菜单权限及多语言枚举与错误文案。
2026-07-15 23:08:19 +08:00
DaxPay Dev
694efe088d fix(naming): 统一通道/环境/能力编码与主数据
汇付通道合并为 huifu,抖音通道改为 douyin;ClientEnv 微信改为 wechat;
银联 capability/付款码对齐 union_qr 风格;同步 pay_md 种子、升级 SQL 与多语 enum。
2026-07-15 20:53:48 +08:00
DaxPay Dev
8260466071 feat(easypay): 接入易支付协议插件并打通应用级配置
新增 daxpay-plugin-easypay(V1/V2 API、应用凭证与独立订单),扩展插件支付策略与网关运行时结构;补充菜单/表结构 SQL,平台公钥 Result 去 PEM 便于对接方复制,接口地址尾部保留 /。
2026-07-15 12:35:39 +08:00
DaxPay Dev
a243a510aa refactor(i18n): 全面 i18n 改造——删除 nameCn/nameEn/titleCn/titleEn 双列存储,统一为 i18nKey + 语言包翻译
后端:
- 删除菜单/字典/字典项/角色/权限码实体的 nameCn/nameEn/titleCn/titleEn 字段
- 新增 i18nKey 字段(菜单已有,字典/角色/权限码新增)
- 权限码 i18nKey 由 PermCodeScanService 自动推导: perm.{code}
- DictItemData record 简化为仅 i18nKey
- TransService 删除 resolveLocaleAwareField 双语 fallback 逻辑
- PermCode 注解删除 nameCn/nameEn,PermCodes 常量类删除 *_NAME_CN/EN
- 角色删除 existsByNameCn/En 方法和端点

SQL:
- update-tables.sql: 加 i18n_key 列(system_dict/system_dict_item/iam_role)+ DROP 旧列
- update-datas.sql: 批量回填 i18n_key(role.{code} / dict.{dictCode}.{itemCode})
- iam_perm_menu.sql: 删除 title_cn/title_en 列定义和 INSERT 数据
2026-07-14 10:48:26 +08:00
DaxPay Dev
14b06b583b refactor(callback): 回调路径改用 channelMchNo 并显式装载商户上下文
删除 CallbackMchContextFilter,控制器入口 bindMchNoForCallback;
notify URL 由 {mchNo}/{appId} 改为 {mchNo}/{channelMchNo};
同步修复微信路径与 ISV 回调入口,并将 payment-common 收敛为 payment-core。
2026-07-13 21:24:50 +08:00
DaxPay Dev
f618da0828 refactor(payment): 拆分 core 包结构并移除遗留 ChannelConfig
将 payment-common 中 core 下的 auth/strategy/trade/route 等上移为一级包,同步更新通道与 unipay 引用;删除无写路径、无 DDL 的 ChannelConfig 及相关 API/i18n,配置以 PayProductConfig 与通道商户为准。
2026-07-13 18:12:14 +08:00
DaxPay Dev
b36fa4bcdd refactor(iam): 权限码全量直改(kebab、trade 域、通道统一、name 常量)
菜单与权限码统一 kebab-case;交易单据迁入 trade 域;通道应用/ISV 收成 channel:app 与 payment:isv;写权限仅 manage;跨 Controller 的 nameCn/nameEn 进 PermCodes,单类高频重复用局部常量。同步 iam_perm_menu 与 update-datas。
2026-07-13 11:58:50 +08:00
DaxPay Dev
959d84bb18 fix(iam): 统一菜单 component 路径为 /{views 相对路径}
去掉 views/ 前缀脏数据(用户管理、第三方平台),种子 SQL 与 update-datas 幂等补丁同步。
2026-07-13 10:36:27 +08:00
DaxPay Dev
59c302c9bd refactor(menu): 聚合扫码菜单更名为码牌和聚合支付
同步 iam_perm_menu 全量菜单标题,并清空已执行的 update-datas 增量脚本。
2026-07-11 16:52:50 +08:00
DaxPay Dev
24750bb9e5 feat(sql): 补充应用工作台与收银台配置菜单
新增应用配置子页 MchAppWorkbench(/payment/merchant/app/manage)及收银台配置菜单,同步全量菜单导出与增量升级脚本。
2026-07-11 15:44:09 +08:00
DaxPay Dev
13390cc99d feat(iam): 菜单子页面分组与类型不可变校验
支持 subpage_group 父子约束与统一处理;更新菜单时禁止修改 menuType,并补充错误与枚举 i18n。
2026-07-11 12:24:14 +08:00
DaxPay Dev
ddbc3e959d fix(sql): 同步移动端应用菜单导出并补齐 app_name 删除
更新 iam_perm_menu 导出快照;在 update-tables 中补 DROP app_name,与平台移动端应用表结构对齐。
2026-07-11 10:57:04 +08:00
DaxPay Dev
b48c18e01e fix(payment): 恢复辅助支付终端菜单(非 IoT 硬件)
辅助终端不属于云音箱/云打印硬件对接范围, 开源版应保留菜单占位。
2026-07-11 10:16:41 +08:00
DaxPay Dev
c9c9ffb614 refactor(payment): 开源版移除云音箱/云打印/厂商等硬件对接
硬件对接归商业版; 保留码牌收款能力。同步清理菜单种子与 i18n。
2026-07-11 10:15:50 +08:00
DaxPay Dev
17fb60161d refactor(system): 移动端应用配置从 payment 迁至 platform/system
- 删除 payment.app.mobile 实体链路与 MobileAppAdminController
- 迁入 platform.system:MobileAppTypeEnum/MobilePlatformEnum + entity/dao/service/controller
- API: /admin/mobile-app → /platform/config/mobile-app,权限码 system:config:mobile_app
- 菜单 40504/40505 父级改系统配置(304),路径改 /system/config/mobile-app(update-datas + iam_perm_menu baseline)
2026-07-10 17:58:21 +08:00
DaxPay Dev
6f0622fca8 feat(device): 运营端支付码牌管理(批量生成/绑定商户/商户名翻译)
支持空白码库存与划拨绑定,分页翻译商户名称;绑定默认走商户默认应用。
补齐码牌菜单落地、batch_no 升级 SQL 与中英校验/错误文案。
2026-07-10 16:50:47 +08:00
DaxPay Dev
4be249dd39 feat(notify): 微信消息通知模板配置迁入系统平台配置
凭据走三方平台 wechat_mp_auth,模板存 system_platform_config(wechat_notify);
发送记录落 service-notify 分层包,能力层仅保留纯发送。
2026-07-09 17:31:49 +08:00
DaxPay Dev
fa51d117d5 feat(payment): 支付宝通道认证与认证调试工具
平台级支付宝配置生成授权中间页/换 userId,新增开发调试认证页与菜单。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 17:12:08 +08:00
DaxPay Dev
1761e19a20 fix(sql): 初始化菜单同步为三方平台管理页
iam_perm_menu 种子数据与 update-datas 一致,指向 ThirdPlatform 路由与 i18n。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 16:20:58 +08:00
DaxPay Dev
c8840f4065 refactor(social): 三方登录配置 SocialConfig 重命名为 SocialLoginConfig
为避免与新增的「三方平台管理」命名冲突, 全量迁移社交登录配置体系:

- 类(entity/param/result/mapper/manager/convert/service/controller): SocialConfig* -> SocialLoginConfig*
- 表: iam_social_config -> iam_social_login_config (update-tables.sql)
- API 路由: /social/config -> /social/login-config; 权限码: iam:social:config -> iam:social:login-config
- 菜单 iam_perm_menu(id=900001): name/path/component/i18n_key 同步更新
- SocialLoginService 引用同步; justauth 的 SocialAuthConfig 保持不变(语义为运行时授权配置)
2026-07-09 13:12:16 +08:00
DaxPay Dev
e313c49f2e feat(channel): 通道元数据字典全量刷新+菜单治理+微信回调验签解析底座
- 新增 pay_md 通道元数据字典全量(能力/通道/产品映射)与增量刷新脚本
- iam_perm_menu 菜单全量快照: 标题/i18n_key 归一, 新增移动端应用管理/微信服务商子商户
- update-tables 新增拉卡拉(2表)+银联商务(2表)建表, 均含 COMMENT ON
- ProductEnum 新增10个第三方聚合通道枚举(汇付/斗拱/海科/富友/盛付通/银盛/快钱/杉德/易宝/jeepay)
- i18n product/validation 中英文同步
- 微信回调验签解析能力: 主应用通过声明式HTTP客户端转发子应用验签(支付/退款回调)
2026-07-05 23:54:57 +08:00
DaxPay Dev
3ce790ab99 feat(wechat): 微信服务商子商户应用功能 + 授权配置基类修复
- 新增微信服务商通道商户应用(WechatIsvMchApp)子商户自己的微信应用管理,
  含应用/能力绑定/授权配置三表及配套 controller/service/dao/convert/param/result
- 修复 WechatIsvAppAuthConfig 基类错误(MchBaseEntity→MpBaseEntity):
  服务商应用为平台级全局配置, 不挂商户维度, 移除冗余的 mchNo/channelMchNo 字段,
  修复 channel_mch_no / mch_no 列不存在的运行时异常
- 支付宝支付异步通知地址改用平台端点配置(backendBaseUrl)生成
- 微信直连凭证组装从通道商户绑定表取真实 wxMchId(channelMchNo 为系统雪花号)
- 支付方式枚举与 i18n 文案统一精简(去掉冗余'支付'后缀, 统一大小写)
- 校验消息 key 修正(wechatIsvAppId / wechatIsvMchAppId)
2026-07-05 11:00:11 +08:00
DaxPay Dev
cc3a9f87e1 feat(payment): 微信直连渠道对接(退款/支付/关闭/同步) + 退款菜单 2026-07-03 22:06:43 +08:00
DaxPay Dev
49d160b29e feat(payment): P0 alipay退款全链路 + 清理old包PayCloseRecord冲突
退款(channel-one → 主应用 → 策略 → 订单管理 → SQL):
- channel-one: alipay refund/refund-sync 端点 + DTO + service
- AlipayChannelClient 加 refund/refundSync, direct/isv 退款策略
- PayRefundOrder 实体 + Mapper/Manager/Convert/Result/Query
- PayRefundService(锁/校验/创建/调策略/回写) + PayRefundSyncService
- PayRefundOrderAdminController(/admin/order/refund)
- AbsRefundStrategy + AbsSyncRefundStrategy 抽象策略
- RefundOrderStatusEnum + i18n(zh/en)
- SQL: pay_refund_order 建表 + 退款菜单(payment:refund)

清理 old(修复 ConflictingBeanDefinitionException):
- 删除 old PayCloseRecord 链(8文件), core 版为唯一实现
- 删除 old PayCloseService/PaySyncService/PayOrderService/PaySyncResultBo
2026-07-03 12:24:07 +08:00
DaxPay Dev
0ac65d7e6f feat(merchant): 商户应用事件通知配置(entity/service/controller/菜单SQL/i18n) 2026-07-02 04:25:31 +08:00
DaxPay Dev
9208422abd feat(order): 普通支付交易订单管理(admin视角): NormalPayOrder+PayTrade 列表/详情/同步/关闭 2026-07-02 02:23:22 +08:00
DaxPay Dev
58fef669c7 refactor(alipay): DTO 强类型化 + client 分包 + 子应用 service 重构
- DTO 强类型: config Map→AlipaySdkCredential, method String→AlipayPayMethod,
  payBodyType String→AlipayPayBodyType, expireTime/finishTime String→OffsetDateTime
- 字段贴近支付宝: outTradeNo/tradeNo/body, 删 channel/otherMethod/transOrderNo
- notifyUrl 从 config Map 拆出为 Req 独立字段
- 删除通用 ChannelPayReq/ChannelPayResp(仅 alipay 使用)
- 主应用 client 分包: req/resp/enums/credential 四子包
- 沙箱字段: AlipayDirectConfigAssembler 从 PayProductConfig.activeEnv 读取
- 子应用: 删 demo 模式, pay() 分发 payWap/payApp/payPage/payQr 子方法
- 子应用 dto→req/resp 分包
- 新增 PayBodyTypeEnum QR_CODE/ORDER_STR 枚举值
2026-07-01 16:16:22 +08:00
DaxPay Dev
918437abc7 feat(menu): 工作台设为默认首页, 补充dashboard菜单编码占位与排序调整
- Dashboard 目录 redirect /analytics → /workspace
- 工作台(id=102) menu_code=dashboard:workspace, sort_no=1
- 分析页(id=101) menu_code=dashboard:analytics, sort_no=2
2026-06-27 22:22:43 +08:00
DaxPay Dev
d1c1b008d3 feat(device): 新增云打印设备管理, 镜像云音箱实现本地台账与绑定/解绑 2026-06-26 13:00:49 +08:00
DaxPay Dev
f4bb434028 refactor(device): 设备实例类统一 Device 前缀, 新增厂商配置域与设备枚举, 术语统一云音箱
SpeakerDevice → DeviceSpeaker(entity/dao/param/result/convert/service/controller); 新增 device.vendor 域与 DeviceTypeEnum/DeviceVendorEnum; DeviceStatusEnum i18n key 解耦至 error.device.common; SQL 厂商配置提升设备管理顶层、清理 iot 残留、删除冗余厂商入口; 云音响 → 云音箱
2026-06-25 23:05:33 +08:00
DaxPay Dev
ef5a960142 chore: 同步数据库菜单/数据快照及杂项(i18n校验/social/pom清理) 2026-06-25 10:49:21 +08:00
DaxPay Dev
7f34c9db57 feat(payment): 新增开发调试接口与菜单
- 新增 develop 签名调试接口 /admin/develop/sign/{gen,verify}
- 新增 develop 支付调试接口 /admin/develop/trade/{sign,pay}
- 新增 DevelopParam/DevelopSignParam/DevelopVerifyParam 参数类
- 新增 DevelopSignResult/DevelopPayResult 结果类
- 新增 DevelopSignService/DevelopTradeService 服务
- iam_perm_menu 新增开发调试目录及支付/签名调试菜单
2026-06-23 23:49:32 +08:00
DaxPay Dev
002688eeeb feat(channel): 通道连通性 demo 链路, 含声明式通道客户端与 traceparent 透传 2026-06-23 13:56:27 +08:00
DaxPay Dev
810f754a60 feat(mq): 新增 Artemis 消息队列演示页并修复 Topic 路由与消息转换问题
后端:
- ArtemisTemplateService 区分 Queue/Topic 语义,新增 sendTopic/sendTopicDelay/sendTopicDelayAt
- ArtemisCommonAutoConfiguration 新增 topicJmsTemplate Bean(pubSubDomain=true),
  并 @AutoConfiguration(after=JmsAutoConfiguration) 避免抢占默认 jmsTemplate 的自动装配
- 修复 Topic 广播误用 anycast 路由导致的 broker 路由不匹配异常
- 简化 ArtemisMessageConverter 为纯 TextMessage 传输,移除 _type 类型绑定
- CacheInvalidationPublisher 改用 sendTopic,修复同源广播路由问题
- 新增 demo 演示模块(Controller/Consumer/Param/Result/Store/Message/Config)
- 新增 demo 校验/错误国际化(zh-CN/en-US),修复 validation.json 末尾多余逗号
- 新增演示菜单 SQL

前端:
- 新增 /demos/artemis 演示页(点对点/发布订阅/延时/Tag 过滤四场景)
- 将 a-input-group 替换为 a-space-compact(antdv-next 已废弃 Input.Group)
2026-06-18 23:02:04 +08:00
DaxPay Dev
1e0be25105 refactor: 支付渠道/产品启停功能 + 表重命名 + 描述字段
- 表重命名: pay_* → pay_md_* (8张主数据表)
- 启停功能: PayProvider/PayProduct 增加 enabled 字段及 switch 接口
- PayProductConfig 移除 enabled 字段
- PayProvider 增加 description 字段
- SQL: update-tables.sql 完整迁移脚本
2026-06-17 18:54:14 +08:00
DaxPay Dev
36bb88f1c8 清理: 删除抖音表SQL, 清空菜单和更新SQL文件 2026-06-16 11:22:40 +08:00
DaxPay Dev
2a0441e3d2 feat: 抖音支付通道新增 entity/param/result/service/dao/controller 全套代码
- 新增抖音支付产品策略、直连支付策略
- Alipay 直连应用调整
- 新增抖音 SQL 建表脚本
2026-06-15 23:22:17 +08:00
DaxPay Dev
b1df4c3211 feat(channel): 微信服务商通道管理迁移(后端) 2026-06-14 01:36:55 +08:00
DaxPay Dev
07b5aa3927 refactor: alipay_isv_app SQL添加注释&移除索引,修复权限码冲突 2026-06-14 00:37:59 +08:00