本文件记录 ddes-open-sdk(com.xiaojukeji.esapi:ddes-open-sdk)的版本变更。
格式参考 Keep a Changelog,版本号遵循 语义化版本。
- legalentity:
get请求新增outLegalEntityId;get响应 records 新增outParentId;add/edit请求新增outParentId(2025.06.18 批次)。 - member:请求新增
residentsAdcode、homeAddress(single/edit 共用);single响应新增memberId/status(员工已存在场景,2025.11.17);detail响应新增otherCompaniesList(一人多企业,保守建模List<Object>);getQuota请求新增monthlyLimitOnlyQuery(2026.02 限额升级);del请求新增employeePhone/employeeEmail及__obj__便捷字段(2025.06.18)。 - traveler:
TravelerInfo新增type(项目维度外部出行人,2026.06.23)。 - regulation:detail 响应新增
CarRule(callType/useScene)及regulationEmployeeName/regulationEmployeeDescription。 - 集团账户「上级公司统一对接」参数:为 19 个接口补齐
belongEnterpriseName/taxpayerNo可选参数(budgetcenter add/edit/del、member get/detail、project 等在 1.2.0 已支持,本批不涉及):legalentity add/edit/del 与 member single/edit/del 为 POST body 顶层字段;legalentity get、budgetcenter get、member getQuota、regulation get/list、role get、rank getRanks 为 GET query 参数;rank create/update/del 与 traveler create/update/del 随param_json内嵌提交,位于RankInfo/TravelerInfo(param_json 形态接口服务端不读请求体顶层,与 Go SDK 契约对齐)。query_sub_company/next_token属/open-apis/v2/...备用路径专属参数,主路径不生效,本次未提供(member get 请求侧既有字段保持不动)。 - Sample:7 个服务域示例类新增上述字段的用法示例。
- 新增 4 个集团账户查询方法(【上级公司统一对接】备用路径
/open-apis/v2/...):legalentity.v1.getLegalEntityV2→/open-apis/v2/legalEntity/getbudgetcenter.v1.getBudgetCenterV2→/open-apis/v2/budgetCenter/getmember.v1.listMemberV2→/open-apis/v2/member/getregulation.v1.listRegulationV2→/open-apis/v2/regulation/get
- 响应为统一信封(
records/nextToken/companyTotal/companyListHasChange/progress,后三者为实测补充字段、文档暂未声明);各域集团 Record 独立建模(legalentity 集团返回legal_entity_id为字符串)。 - 注意:
query_sub_company服务端按整数解析,请传"1"/"0"(文档标注 boolean 有误,传"true"会报错)。 - 废弃标记:
member.ListMemberRequest.querySubCompany/nextToken标注@Deprecated(主路径不生效),集团场景请迁移至listMemberV2。
- budgetcenter:V2 get 请求(
GetBudgetCenterV2Request)新增isNeedLimitRule(与 v1 get 同名同型,真机验证参数透传至下游 zeus 服务);BudgetCenterV2Record新增companyId(company_id,服务端 IDL 佐证,真机实测集团 records 均返回该字段且为字符串)。 - member:V2 get 请求(
ListMemberV2Request)新增email/employeeNumber/phone/status过滤字段(与 v1 get 同名同型;文档未声明 v2 支持,真机实测 email/employee_number/status 过滤均生效);GetMemberDetailReply新增belongEnterpriseName(一人多企业场景,主对象与otherCompaniesList元素均携带;非该场景缺失时为 null)。 - V2 分页口径:4 个 V2 请求采用游标分页(
length+next_token),不设offset,真机复验通过(不带 offset 返回 errno=0,此前「必填」实测结论过时);member V2 真机实测regulation_id确以数组返回(佐证List<String>建模正确);regulation V2 真机实测响应为嵌套信封(data 为对象),现行建模正确。 - 有意保留、不跟随 Go 的差异:v1 get 集团参数(
belongEnterpriseName/taxpayerNo,以文档为更高基准);ResidentsListInfo.id维持Long(1.2.0 已发布存量字段,避免真实破坏性更新;97000 条真实流量回放验证数字形态零失败);member getQuota 金额字段维持BigDecimal(优于 Go 的 float32);GetMemberDetailReply.otherCompaniesList维持List<Object>保守建模;monthlyLimitOnlyQuery维持String。
- 集团账户备用路径已随 1.3.0 落地(见上方"集团账户专用路径");信封中
company_total/company_list_has_change/progress为实测补充字段,官方语义待文档补全。 - Go SDK 已于 2026-09-14(
097910a)完成 V2 集团接口参数口径收敛与字段审计,Java 侧本次对齐以该版本为基准;Go 侧遗留缺口(v1 get 缺集团参数、core 加密与__obj__替换顺序缺陷)不在 Java 仓库范围,已反馈 Go 侧跟进。
以下字段类型变更会导致对应 getter/setter 签名变化,升级后需调整调用方代码(如
Long lastId = reply.getLastId()将编译失败)。本次对齐源于后端 API 实际返回结构变化——ID 类字段统一为字符串,避免大整数精度丢失。
字段类型变更:
| 所在 Model | Java 字段(API 字段名) | 旧类型 | 新类型 |
|---|---|---|---|
bill.BillListItemOfWangYC |
isSensitive(is_sensitive) |
BigDecimal |
String |
bill.GetBillDetailOfWangYCReply |
lastId(last_id) |
Long |
String |
member.DelMemberApiReply |
data(data) |
List<Long> |
List<String> |
枚举值变更:
budgetcenter.BudgetCycleEnum:YEAR的 code 由2修正为3(原先与QUARTER重复为2,属缺陷修复),并新增ONCE(4)、DAILY(5)、CUSTOM(6)、ORIGINAL_DEPT(7)四个枚举值。依赖BudgetCycleEnum.YEAR.getCode()的下游代码需关注。
- 新增
Project(项目)服务模块,对外暴露 4 个 API 方法(client.project().v1()):getProjectDetail— 查询项目下的人员关联信息(GET/river/Project/detail)outTravelerList— 查询项目外部出行人列表(GET/open-apis/v2/project/outTravelerList)updateMember— 绑定项目与人员关系(POST/river/Project/updateMember)delMember— 删除项目与人员关系(POST/river/Project/delMember)
Config为所有带默认值的字段补充@Builder.Default注解(baseUrl、signMethod、enableAES、enableHoldToken、超时、重试次数等)—— 修复使用 Builder 构造Config时默认值丢失的隐患。
budgetcenter(成本中心):BudgetCenterRecord、CreateBudgetCenterRequest、UpdateBudgetCenterRequest、GetBudgetCenterRequest、DelBudgetCenterRequest等新增字段;新增ExtendFieldItem、LimitRuleItem、OutTravelerItem、PoiItem、RelatedEmployeeItem等 model。member(员工):GetMemberDetailReply、MemberRecord、ListMemberRequest/Reply新增字段;新增HomeAddressInfo、LimitRuleInfo、ResidentsListInfo等 model。
BaseService.setDecryptData:用Boolean.TRUE.equals(config.getEnableAES())替代直接布尔判定,避免enableAES未设置时的潜在空指针。- 流量回放 bug 修复。
- 新增独立子模块
integration:真实脱敏流量回放验证引擎(43 个 URI 回放,仅integrationprofile 激活时构建,与主模块 59 个 mock 测试完全隔离)。 - 新增
Project、Member、BudgetCenter、City的 mock 测试。
- Maven 依赖:
<dependency>
<groupId>com.xiaojukeji.esapi</groupId>
<artifactId>ddes-open-sdk</artifactId>
<version>1.2.0</version>
</dependency>
⚠️ 已知遗留问题(非本版本引入):README.md依赖示例的 GAV 仍为错误的历史值(com.xiaoju.sdk:ddes-open-sdk:1.0.0),请以上方正确 GAV 为准。