Skip to content

HR助手getEmployeeFieldInfo,getAll参数问题,没有此参数#3925

Merged
binarywang merged 5 commits into
binarywang:developfrom
softboy99:develop
Mar 12, 2026
Merged

HR助手getEmployeeFieldInfo,getAll参数问题,没有此参数#3925
binarywang merged 5 commits into
binarywang:developfrom
softboy99:develop

Conversation

@softboy99

Copy link
Copy Markdown
Contributor

HR助手getEmployeeFieldInfo,getAll参数问题,没有此参数,请求报错错误代码:40058, 错误信息:不合法的参数;传递参数不符合系统要求,需要参照具体API接口说明,微信原始报文:{"errcode":40058,"errmsg":"invalid Request Parameter

softboy99 and others added 2 commits March 11, 2026 09:34
merge latest from fork source
…参数不符合系统要求,需要参照具体API接口说明,微信原始报文:{"errcode":40058,"errmsg":"invalid Request Parameter
@binarywang

Copy link
Copy Markdown
Owner

auggie review

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

该 PR 试图修复/调整企业微信「人事助手」接口 getEmployeeFieldInfo 的入参处理方式,通过新增 getAll 参数与请求体字段来控制是否获取全部档案字段,并同步更新接口注释。

Changes:

  • WxCpHrService#getEmployeeFieldInfo 新增 (userid, boolean getAll, fields) 重载方法
  • WxCpHrServiceImpl#getEmployeeFieldInfo 请求体新增写入 get_all,并在 fields 为空时增加参数校验逻辑
  • 更新 WxCpHrService 中对 fields/getAll 的 Javadoc 描述

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.

File Description
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpHrServiceImpl.java 新增重载实现、请求体写入 get_all、调整 fields 为空时的校验逻辑
weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpHrService.java 新增重载方法签名并更新参数文档

Comment on lines 52 to 54
jsonObject.addProperty("userid", userid);
jsonObject.addProperty("get_all", getAll);
if (fields != null && !fields.isEmpty()) {

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里无条件向请求体写入了 get_all 字段(即使为 false 也会发送)。从该接口的既有用法/测试(WxCpHrServiceImplTest#testGetEmployeeFieldInfo 传 fields=null)以及 PR 描述来看,接口并不支持该参数,发送后会触发 40058「invalid Request Parameter」。建议不要在请求体中包含 get_all,需要“获取全部字段”时直接省略 fields 字段即可。

Copilot uses AI. Check for mistakes.
Comment thread weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpHrServiceImpl.java Outdated
Comment on lines 42 to +44
public WxCpHrEmployeeFieldDataResp getEmployeeFieldInfo(String userid, List<String> fields) throws WxErrorException {
return getEmployeeFieldInfo(userid,false,fields);
}

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里的格式与本文件其余部分不一致(逗号后缺少空格)。建议按既有风格调整为在逗号后留空格,避免 checkstyle/可读性问题。

Copilot uses AI. Check for mistakes.
Comment thread weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpHrServiceImpl.java Outdated
Comment on lines 40 to 45
* @param userid 员工userid
* @param fields 指定字段key列表,不填则返回全部字段
* @param fields 指定字段key列表
* @return 员工档案数据响应 wx cp hr employee field data resp
* @throws WxErrorException the wx error exception
*/
WxCpHrEmployeeFieldDataResp getEmployeeFieldInfo(String userid, List<String> fields) throws WxErrorException;

Copilot AI Mar 11, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

该接口原注释曾表明 fields 可不填以返回全部字段;并且测试用例也以 fields=null 调用。这里把 fields 描述改成必填会造成文档与实际/既有用法不一致。建议在 Javadoc 中明确 fields 为空时的行为(例如:不填则返回全部字段)。

Copilot uses AI. Check for mistakes.
Comment thread weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpHrService.java Outdated
Comment thread weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpHrService.java Outdated
@augmentcode

augmentcode Bot commented Mar 11, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Adds a getAll overload for HR assistant getEmployeeFieldInfo and includes get_all in the request payload.
Why: Aligns the request parameters with the upstream WeCom HR API to avoid 40058 invalid request parameter errors when fetching staff profile info.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.

* @return 员工档案数据响应 wx cp hr employee field data resp
* @throws WxErrorException the wx error exception
*/
WxCpHrEmployeeFieldDataResp getEmployeeFieldInfo(String userid, boolean getAll, List<String> fields) throws WxErrorException;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding a new abstract method to the public WxCpHrService interface is a source/binary breaking change for any external custom implementations. Please double-check this is acceptable for the project’s compatibility guarantees.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

jsonObject.add("fields", WxCpGsonBuilder.create().toJsonTree(fields));
}else{
if(!getAll)
throw new IllegalArgumentException("fields 不能为空");

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

With this validation, existing calls like getEmployeeFieldInfo(userid, null) will now throw IllegalArgumentException (and it also breaks WxCpHrServiceImplTest.testGetEmployeeFieldInfo). If the intent is to keep supporting “get all fields” when fields is omitted, this behavioral change likely needs to be revisited.

Severity: medium

Other Locations
  • weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/impl/WxCpHrServiceImpl.java:43

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@binarywang

Copy link
Copy Markdown
Owner

@copilot open a new pull request to apply changes based on the comments in this thread

@binarywang binarywang changed the title HR助手getEmployeeFieldInfo,getAll参数问题,没有此参数,请求报错错误代码:40058, 错误信息:不合法的参数;传递参数不符合系统要求,需要参照具体API接口说明,微信原始报文:{"errcode":40058,"errmsg":"invalid Request Parameter HR助手getEmployeeFieldInfo,getAll参数问题,没有此参数 Mar 12, 2026
@binarywang

Copy link
Copy Markdown
Owner

@softboy99 麻烦处理下review comment里提到的问题,谢谢

binarywang and others added 3 commits March 12, 2026 20:28
…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>
@binarywang
binarywang merged commit e3490e3 into binarywang:develop Mar 12, 2026
@binarywang binarywang added this to the 4.8.2 milestone Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants