企业微信人事助手api响应序列化问题#3977
Conversation
softboy99
commented
May 7, 2026
merge latest from fork source
…参数不符合系统要求,需要参照具体API接口说明,微信原始报文:{"errcode":40058,"errmsg":"invalid Request Parameter
…rvice.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…pHrServiceImpl.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…rvice.java Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…序列化问题;UpdateEmployeeFieldInfo暂时未用到,未做测试
🤖 Augment PR SummarySummary: This PR fixes 企业微信「人事助手」相关接口的响应反序列化/字段映射不一致问题,并补充向后兼容的字段/方法。 Changes:
Technical Notes: 新增了 mobile 值的对象结构(国家码/手机号)以及 option 列表的新版/旧版兼容结构;整体意图是与官方返回字段名保持一致并为旧 API 入口提供平滑过渡。 🤖 Was this summary useful? React with 👍 or 👎 |
| <suiteXmlFiles> | ||
| <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> | ||
| </suiteXmlFiles> | ||
| <argLine> |
There was a problem hiding this comment.
weixin-java-cp/pom.xml:128: These --add-opens JVM args are only supported on Java 9+, so if this module’s tests are ever executed on JDK8 the forked test JVM will fail to start. Consider guarding this configuration so it only applies on JDK9+ runs.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
Pull request overview
该 PR 旨在修复企业微信「人事助手」相关接口在响应反序列化时字段结构与实际 API 返回不一致导致的解析问题,通过调整 HR 相关 Bean 的 @SerializedName 映射与数据结构,并补充对应的接口测试覆盖。
Changes:
- 调整 HR 字段定义/员工档案数据响应的字段映射,使其与实际返回的
group_list、field_info等结构对齐,并提供部分旧方法名的兼容入口。 - 扩展
WxCpHrEmployeeFieldInfo/WxCpHrEmployeeFieldData的字段模型以承载更多返回信息(字段ID、值类型、选项等)。 - 新增
WxCpHrServiceImplTest到 TestNG suite,并在weixin-java-cp模块 surefire 配置中加入 JVM--add-opens参数。
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| weixin-java-cp/src/test/resources/testng.xml | 将 HR API 测试类加入 TestNG suite 以执行验证 |
| weixin-java-cp/src/test/java/me/chanjar/weixin/cp/api/impl/WxCpHrServiceImplTest.java | 更新/增强 HR 接口集成测试用例 |
| weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldInfoResp.java | 将字段定义响应调整为按分组返回(group_list)并提供旧 getter 兼容 |
| weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldInfo.java | 扩展字段定义模型(fieldId/optionList/valueType 等)并尝试兼容旧字段 |
| weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldDataResp.java | 将员工档案数据响应映射改为 field_info 并保留旧方法名 |
| weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldData.java | 将单条档案数据建模为“单个字段数据”,补齐 value_* 等返回字段,并调整更新请求字段 |
| weixin-java-cp/pom.xml | surefire 增加 --add-opens 相关 JVM 参数以支持反射访问 |
|
请逐条阅读comments,做出相应处理,要么修改代码,要么如果确实不需要修改,给出合理的回应,然后点resolve |
项目的log设置调试时,控制台不显示 Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>