feat(channel): 支持微信小店电子面单服务 - #4102
Conversation
There was a problem hiding this comment.
🟡 Changes recommended
存在可能导致 Checkstyle 失败的注解排版问题且部分回归测试断言较脆弱,建议先按行内评论修正后再合并。
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
本 PR 在 weixin-java-channel 模块中新增“微信小店电子面单(Ewaybill)”能力,补齐官方文档所列的模板/账号/订单/打印等接口常量与调用封装,并将服务入口接入 WxChannelService,同时补充了 JSON 契约相关的 TestNG 回归用例。
Changes:
- 新增
WxChannelEwaybillService及其实现WxChannelEwaybillServiceImpl,封装 16 个电子面单相关接口调用。 - 新增电子面单请求/响应 Bean(含动态参数容器
AbstractEwaybillRequest/Response)及对应的 URL 常量分组WxChannelApiUrlConstants.Ewaybill。 - 新增/补充 TestNG 用例,覆盖动态参数序列化与服务入口可用性。
需要关注的阻塞点
- 新增的
AbstractEwaybillRequest/Response中存在注解与字段同行写法,较可能触发 Checkstyle(已给出可直接套用的行内修复建议)。 WxChannelEwaybillBeanTest中对extra的断言字段选择较脆弱,可能在未来补充显式字段时导致测试误报失败(已给出更稳健的断言方式)。
File summaries
| File | Description |
|---|---|
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelService.java | 在顶层服务接口新增电子面单服务入口方法声明 |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/WxChannelEwaybillService.java | 新增电子面单 Service API 定义 |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/WxChannelEwaybillServiceImpl.java | 新增电子面单接口的具体调用实现与参数封装 |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/api/impl/BaseWxChannelServiceImpl.java | 在基础实现中懒加载接入 getEwaybillService() |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/constant/WxChannelApiUrlConstants.java | 增加 Ewaybill URL 常量分组以覆盖官方接口路径 |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AbstractEwaybillRequest.java | 新增动态请求参数容器(@JsonAnySetter/@JsonAnyGetter) |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AbstractEwaybillResponse.java | 新增动态响应参数容器(未知字段收集到 extra) |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateConfigResponse.java | 新增模板配置响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateCreateRequest.java | 新增模板创建请求 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateUpdateRequest.java | 新增模板更新请求 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateInfoResponse.java | 新增模板信息响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateIdResponse.java | 新增模板 ID 响应 Bean(显式字段映射) |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateIdParam.java | 新增模板 ID 请求参数 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/TemplateCodeParam.java | 新增模板编码请求参数 Bean(建议补齐无参构造以保持一致性) |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AccountInfoResponse.java | 新增账号信息响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/DeliveryListResponse.java | 新增快递公司列表响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PreCreateRequest.java | 新增预取号请求 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PreCreateResponse.java | 新增预取号响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/CreateOrderRequest.java | 新增取号请求 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/CreateOrderResponse.java | 新增取号响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/AddSubOrderRequest.java | 新增子件追加请求 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/OrderDetailResponse.java | 新增面单详情响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PrintContentParam.java | 新增打印报文请求参数 Bean(建议补齐无参构造以保持一致性) |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/PrintContentResponse.java | 新增打印报文响应 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/WaybillIdParam.java | 新增运单 ID 请求参数 Bean |
| weixin-java-channel/src/main/java/me/chanjar/weixin/channel/bean/ewaybill/WaybillIdsParam.java | 新增批量运单 ID 请求参数 Bean |
| weixin-java-channel/src/test/java/me/chanjar/weixin/channel/bean/ewaybill/WxChannelEwaybillBeanTest.java | 新增动态参数序列化/反序列化契约测试(存在可维护性改进点) |
| weixin-java-channel/src/test/java/me/chanjar/weixin/channel/bean/ewaybill/PrintContentParamTest.java | 新增打印请求 JSON 契约测试 |
| weixin-java-channel/src/test/java/me/chanjar/weixin/channel/api/impl/WxChannelEwaybillServiceAccessorTest.java | 新增服务入口可用性测试(getEwaybillService()) |
Review details
- Files reviewed: 29/29 changed files
- Comments generated: 5
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4393ad0d20
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🤖 Augment PR Summary摘要:本 PR 为微信小店新增电子面单服务,并将其接入
🤖 Was this summary useful? React with 👍 or 👎 |
概要
新增微信小店电子面单服务,覆盖模板、账号、订单与打印的 16 个官方接口,并接入
WxChannelService。相较 #4036 的改进:
params/extra的问题;template_code查询标准模板;waybill_ids数组承载批量打印与打印报文请求;develop重放,避免旧 PR 的合并冲突。Closes #3984
Replaces #4036
验证
mvn -pl weixin-java-channel -DskipTests compile