DDD的企业级落地
2026/6/3 7:48:18 网站建设 项目流程

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
接口路径方法功能说明
导入库存文件/initStockPOST(multipart)上传 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 服务调用)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询