
DDD的企业级落地模块概述该模块负责小程序兑礼Redeem相关功能的 HTTP 接口层包含业务接口和运维接口两部分遵循接口层只做参数接收与响应返回、不包含业务逻辑的设计原则。类说明1. MiniProgramRedeemApi — 业务接口Swagger 分组小程序兑礼相关依赖服务MiniProgramRedeemApplicationService统一异常处理捕获MiniProgramRedeemException返回业务错误码和消息其他异常统一返回 500接口路径方法功能说明下单/redeemPOST接收兑礼下单请求返回订单号取消订单/cancelPOST根据 orderId、brand、baCode 取消订单退货/refundPOST根据 orderId、brand、baCode 发起退货退物流/refundExpressNumPOST退回物流单号修改地址/updateAddressPOST修改订单收货地址所有接口均配置Authority(free true)免鉴权并通过DigestLogAnnotated(full true)记录摘要日志。2. MiniProgramRedeemOperationApi — 运维接口Swagger 分组小程序运维依赖服务MiniProgramOperationApplicationService接口路径方法功能说明导入库存文件/initStockPOSTmultipart上传 Excel 文件批量导入库存需指定品牌、兑礼类型、库存类型、活动类型、门店类型、活动编码、NCO编码等扣真实库存/handleStockByRedeemIdPOST根据兑礼ID扣减真实库存所有运维接口均免鉴权。3. MiniProgramRedeemQueryApi — 查询接口空预留的查询接口类当前未实现任何接口。设计特点职责单一接口层仅负责接收请求、调用应用服务、包装响应不包含业务逻辑统一响应所有接口使用ResultMsg统一封装返回结果统一异常区分业务异常MiniProgramRedeemException和系统异常分别处理日志记录业务接口通过DigestLogAnnotated记录请求摘要日志Swagger 文档所有接口通过Operation注解提供 API 文档模块整体架构图┌─────────────────────────────────────────────────────────────────────────────┐ │ WebApi 层 (接口层) │ │ ┌──────────────────────┐ ┌──────────────────────┐ ┌───────────────────┐ │ │ │ MiniProgramRedeemApi │ │ OperationApi │ │ QueryApi (预留) │ │ │ │ 下单/取消/退货/ │ │ 导入库存/扣库存 │ │ │ │ │ │ 退物流/修改地址 │ │ │ │ │ │ │ └──────────┬───────────┘ └──────────┬───────────┘ └─────────┬─────────┘ │ └─────────────┼──────────────────────────┼────────────────────────┼───────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Application 层 (应用服务层) │ │ ┌──────────────────────────┐ ┌──────────────────────────┐ │ │ │ RedeemApplicationService │ │ OperationApplicationSvc │ │ │ │ StockApplicationService │ │ QueryApplicationService │ │ │ └──────────┬───────────────┘ └──────────┬───────────────┘ │ │ │ │ │ │ ┌──────────┴──────────────┐ ┌──────────┴──────────────┐ │ │ │ RedeemAssembler │ │ Query 对象 │ │ │ │ (DTO ↔ 模型转换) │ │ (RedeemQuery/StockQry) │ │ │ └─────────────────────────┘ └─────────────────────────┘ │ └─────────────┼──────────────────────────────┼───────────────────────────────┘ │ │ ▼ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Domain 层 (领域层) │ │ │ │ ┌─── Domain Service (领域服务) ──────────────────────────────────────────┐ │ │ │ RedeemDomainService StockDomainService OperationService │ │ │ │ MemberRedeemQueryService │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── Strategy - 下单策略 (策略模式) ─────────────────────────────────────┐ │ │ │ RedeemStrategyRouter │ │ │ │ ├── BrandRedeemStrategy (接口) │ │ │ │ │ └── AbstractBrandRedeemStrategy (抽象基类) │ │ │ │ │ ├── CLRedeemStrategy (CL品牌下单策略) │ │ │ │ │ └── CommonRedeemStrategy (通用下单策略) │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── Strategy - 库存策略 (策略模式) ─────────────────────────────────────┐ │ │ │ StockStrategyRouter │ │ │ │ ├── BrandStockStrategy (接口) │ │ │ │ │ └── AbstractBrandStockStrategy (抽象基类) │ │ │ │ │ ├── CLStockStrategy (CL品牌库存策略) │ │ │ │ │ └── CommonStockStrategy (通用库存策略) │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── Model (领域模型) ──────────────────────────────────────────────────┐ │ │ │ order/ : MiniProgramRedeem, RedeemDetail, AndPointRedeem, │ │ │ │ RefundOrderExpress │ │ │ │ stock/ : RealStock, VirtualStock │ │ │ │ logistic/ : MiniProgramLogistic │ │ │ │ error/ : ErrorMiniProgramRedeem │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── Repository 接口 ──────────────────────────────────────────────────┐ │ │ │ order/ : RedeemRepo, RedeemDetailRepo, AndPointRedeemRepo, │ │ │ │ RefundOrderExpressRepo │ │ │ │ stock/ : RealStockRepo, VirtualStockRepo │ │ │ │ 其他 : LogisticRepo, ErrorRedeemRepo, LevelRepo, FestivalRepo │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── Gateway 接口 ─────────────────────────────────────────────────────┐ │ │ │ OmsGateway (OMS订单推送) RedisGateway (分布式锁/缓存) │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── SOA 接口 (外部服务调用) ──────────────────────────────────────────┐ │ │ │ CounterSoaService CustomerSoaService VvipSoaService │ │ │ │ DataRealTimeSoaService EmailSoaService │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────┘ │ │ ▼ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Infrastructure 层 (基础设施层) │ │ │ │ ┌─── Repository 实现 ──────────────────────────────────────────────────┐ │ │ │ BaseDomainRepo → 各 RepositoryImpl (order/stock/error/...) │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── Gateway 实现 ─────────────────────────────────────────────────────┐ │ │ │ OmsGatewayImpl RedisGatewayImpl │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── SOA 实现 ─────────────────────────────────────────────────────────┐ │ │ │ CounterSoaServiceImpl CustomerSoaServiceImpl │ │ │ │ VvipSoaServiceImpl DataRealTimeSoaServiceImpl │ │ │ │ EmailSoaServiceImpl │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── MQ 消息 ──────────────────────────────────────────────────────────┐ │ │ │ MiniProgramRedeemConsumer ← MiniProgramRedeemEvent │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── AOP 切面 ─────────────────────────────────────────────────────────┐ │ │ │ RedeemExceptionAspect (异常处理切面) │ │ │ │ RedisCacheAspect RedisCache (缓存切面) │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─── 工具 ─────────────────────────────────────────────────────────────┐ │ │ │ AssertUtil (断言工具) │ │ │ └───────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────┘调用链路示意HTTP 请求 │ ▼ WebApi (参数接收 异常捕获) │ ▼ ApplicationService (编排事务、DTO 转换) │ ▼ DomainService (核心业务逻辑) │ ├──→ StrategyRouter → BrandStrategy (品牌差异化策略) │ ├──→ Repository (持久化) │ ├──→ Gateway (OMS/Redis 外部网关) │ └──→ SoaService (外部 SOA 服务调用)