Skip to content

Commit d69067c

Browse files
author
WangJiuJun
committed
修正 java21下一guice和cglib反射问题;修复getFieldInfo和GetEmployeeFieldInfo请求成功后的反序列化问题;UpdateEmployeeFieldInfo暂时未用到,未做测试
1 parent 55b11b8 commit d69067c

7 files changed

Lines changed: 376 additions & 46 deletions

File tree

weixin-java-cp/pom.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,15 @@
126126
<suiteXmlFiles>
127127
<suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile>
128128
</suiteXmlFiles>
129+
<argLine>
130+
--add-opens java.base/java.lang=ALL-UNNAMED
131+
--add-opens java.base/java.lang.reflect=ALL-UNNAMED
132+
--add-opens java.base/java.io=ALL-UNNAMED
133+
--add-opens java.base/java.security=ALL-UNNAMED
134+
--add-opens java.base/java.util=ALL-UNNAMED
135+
--add-opens java.management/javax.management=ALL-UNNAMED
136+
--add-opens java.naming/javax.naming=ALL-UNNAMED
137+
</argLine>
129138
</configuration>
130139
</plugin>
131140
</plugins>

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldData.java

Lines changed: 94 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
import lombok.NoArgsConstructor;
66

77
import java.io.Serializable;
8-
import java.util.List;
98

109
/**
11-
* 人事助手-员工档案数据(单个员工).
10+
* 人事助手-员工档案数据(单个字段).
1211
*
1312
* @author <a href="https://github.com/leejoker">leejoker</a> created on 2024-01-01
1413
*/
@@ -18,35 +17,120 @@ public class WxCpHrEmployeeFieldData implements Serializable {
1817
private static final long serialVersionUID = 4593693598671765396L;
1918

2019
/**
21-
* 员工userid.
20+
* 字段ID.
2221
*/
22+
@SerializedName("fieldid")
23+
private Integer fieldId;
24+
25+
/**
26+
* 子字段索引.
27+
*/
28+
@SerializedName("sub_idx")
29+
private Integer subIdx;
30+
31+
/**
32+
* 结果状态,1表示成功.
33+
*/
34+
@SerializedName("result")
35+
private Integer result;
36+
37+
/**
38+
* 值类型:1-字符串,2-uint64,3-uint32,4-int64,5-mobile.
39+
*/
40+
@SerializedName("value_type")
41+
private Integer valueType;
42+
43+
/**
44+
* 字符串值(value_type=1时使用).
45+
*/
46+
@SerializedName("value_string")
47+
private String valueString;
48+
49+
/**
50+
* 无符号32位整数值(value_type=3时使用).
51+
*/
52+
@SerializedName("value_uint32")
53+
private Long valueUint32;
54+
55+
/**
56+
* 有符号64位整数值(value_type=4时使用).
57+
*/
58+
@SerializedName("value_int64")
59+
private Long valueInt64;
60+
61+
/**
62+
* 无符号64位整数值(value_type=2时使用).
63+
*/
64+
@SerializedName("value_uint64")
65+
private Long valueUint64;
66+
67+
/**
68+
* 手机号值(value_type=5时使用).
69+
*/
70+
@SerializedName("value_mobile")
71+
private MobileValue valueMobile;
72+
73+
/**
74+
* 手机号值.
75+
*/
76+
@Data
77+
@NoArgsConstructor
78+
public static class MobileValue implements Serializable {
79+
private static final long serialVersionUID = 1L;
80+
81+
/**
82+
* 国家代码.
83+
*/
84+
@SerializedName("value_country_code")
85+
private String valueCountryCode;
86+
87+
/**
88+
* 手机号.
89+
*/
90+
@SerializedName("value_mobile")
91+
private String valueMobile;
92+
}
93+
94+
/**
95+
* 员工userid(兼容旧版本,实际API不返回此字段).
96+
* @deprecated 此字段在API响应中不存在
97+
*/
98+
@Deprecated
2399
@SerializedName("userid")
24100
private String userid;
25101

26102
/**
27-
* 字段数据列表.
103+
* 字段数据列表(兼容旧版本,实际API不返回此字段).
104+
* @deprecated 此字段在API响应中不存在
28105
*/
106+
@Deprecated
29107
@SerializedName("field_list")
30-
private List<FieldItem> fieldList;
108+
private java.util.List<FieldItem> fieldList;
31109

32110
/**
33-
* 字段数据项.
111+
* 字段数据项(用于更新员工档案).
34112
*/
35113
@Data
36114
@NoArgsConstructor
37115
public static class FieldItem implements Serializable {
38116
private static final long serialVersionUID = 1L;
39117

40118
/**
41-
* 字段key.
119+
* 字段ID.
42120
*/
43-
@SerializedName("field_key")
44-
private String fieldKey;
121+
@SerializedName("fieldid")
122+
private Integer fieldId;
45123

46124
/**
47-
* 字段值.
125+
* 字段值对象(推荐使用,支持多种类型).
48126
*/
49127
@SerializedName("field_value")
50128
private WxCpHrEmployeeFieldValue fieldValue;
129+
130+
/**
131+
* 字符串值(简化用法,适用于文本类型字段).
132+
*/
133+
@SerializedName("value_string")
134+
private String valueString;
51135
}
52136
}

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldDataResp.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,28 @@ public class WxCpHrEmployeeFieldDataResp extends WxCpBaseResp {
2121
private static final long serialVersionUID = 6593693598671765396L;
2222

2323
/**
24-
* 员工档案数据列表.
24+
* 字段数据列表(API实际返回field_info).
2525
*/
26-
@SerializedName("employee_field_list")
27-
private List<WxCpHrEmployeeFieldData> employeeFieldList;
26+
@SerializedName("field_info")
27+
private List<WxCpHrEmployeeFieldData> fieldInfoList;
28+
29+
/**
30+
* 员工档案数据列表(兼容旧版本方法名).
31+
* @deprecated 请使用 getFieldInfoList()
32+
*/
33+
@Deprecated
34+
public List<WxCpHrEmployeeFieldData> getEmployeeFieldList() {
35+
return this.fieldInfoList;
36+
}
37+
38+
/**
39+
* 员工档案数据列表(兼容旧版本方法名).
40+
* @deprecated 请使用 setFieldInfoList()
41+
*/
42+
@Deprecated
43+
public void setEmployeeFieldList(List<WxCpHrEmployeeFieldData> employeeFieldList) {
44+
this.fieldInfoList = employeeFieldList;
45+
}
2846

2947
/**
3048
* From json wx cp hr employee field data resp.

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/bean/hr/WxCpHrEmployeeFieldInfo.java

Lines changed: 93 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,43 @@ public class WxCpHrEmployeeFieldInfo implements Serializable {
1818
private static final long serialVersionUID = 2593693598671765396L;
1919

2020
/**
21-
* 字段key.
21+
* 字段ID.
2222
*/
23-
@SerializedName("field_key")
24-
private String fieldKey;
25-
26-
/**
27-
* 字段英文名称.
28-
*/
29-
@SerializedName("field_en_name")
30-
private String fieldEnName;
23+
@SerializedName("fieldid")
24+
private Integer fieldId;
3125

3226
/**
33-
* 字段中文名称.
27+
* 字段名称.
3428
*/
35-
@SerializedName("field_zh_name")
36-
private String fieldZhName;
29+
@SerializedName("field_name")
30+
private String fieldName;
3731

3832
/**
3933
* 字段类型.
40-
* 具体取值参见 {@link WxCpHrFieldType}
34+
* 1: 文本
35+
* 2: 单选/多选
36+
* 3: 日期
4137
*/
4238
@SerializedName("field_type")
4339
private Integer fieldType;
4440

41+
/**
42+
* 是否必填.
43+
*/
44+
@SerializedName("is_must")
45+
private Boolean isMust;
46+
47+
/**
48+
* 值类型.
49+
* 1: 字符串
50+
* 2: uint64
51+
* 3: uint32
52+
* 4: int64
53+
* 5: mobile
54+
*/
55+
@SerializedName("value_type")
56+
private Integer valueType;
57+
4558
/**
4659
* 获取字段类型枚举.
4760
*
@@ -52,22 +65,79 @@ public WxCpHrFieldType getFieldTypeEnum() {
5265
}
5366

5467
/**
55-
* 是否系统字段.
56-
* 0: 否
57-
* 1: 是
68+
* 选项列表(单选/多选字段专用).
69+
*/
70+
@SerializedName("option_list")
71+
private List<Option> optionList;
72+
73+
/**
74+
* 选项.
75+
*/
76+
@Data
77+
@NoArgsConstructor
78+
public static class Option implements Serializable {
79+
private static final long serialVersionUID = 1L;
80+
81+
/**
82+
* 选项ID.
83+
*/
84+
@SerializedName("id")
85+
private Integer id;
86+
87+
/**
88+
* 选项值.
89+
*/
90+
@SerializedName("value")
91+
private String value;
92+
}
93+
94+
// ===== 以下字段为兼容旧版本 =====
95+
96+
/**
97+
* 字段key(兼容旧版本,实际API不返回此字段).
98+
* @deprecated 使用 fieldId 代替
5899
*/
100+
@Deprecated
101+
@SerializedName("field_key")
102+
private String fieldKey;
103+
104+
/**
105+
* 字段英文名称(兼容旧版本,实际API不返回此字段).
106+
* @deprecated 此字段在API响应中不存在
107+
*/
108+
@Deprecated
109+
@SerializedName("field_en_name")
110+
private String fieldEnName;
111+
112+
/**
113+
* 字段中文名称(兼容旧版本).
114+
* @deprecated 使用 fieldName 代替
115+
*/
116+
@Deprecated
117+
@SerializedName("field_zh_name")
118+
private String fieldZhName;
119+
120+
/**
121+
* 是否系统字段(兼容旧版本,实际API不返回此字段).
122+
* @deprecated 此字段在API响应中不存在
123+
*/
124+
@Deprecated
59125
@SerializedName("is_sys")
60126
private Integer isSys;
61127

62128
/**
63-
* 字段详情.
129+
* 字段详情(兼容旧版本).
130+
* @deprecated 使用 optionList 直接访问选项列表
64131
*/
132+
@Deprecated
65133
@SerializedName("field_detail")
66134
private FieldDetail fieldDetail;
67135

68136
/**
69-
* 字段详情.
137+
* 字段详情(兼容旧版本).
138+
* @deprecated 使用 optionList 代替
70139
*/
140+
@Deprecated
71141
@Data
72142
@NoArgsConstructor
73143
public static class FieldDetail implements Serializable {
@@ -77,15 +147,17 @@ public static class FieldDetail implements Serializable {
77147
* 选项列表(单选/多选字段专用).
78148
*/
79149
@SerializedName("option_list")
80-
private List<Option> optionList;
150+
private List<OldOption> optionList;
81151
}
82152

83153
/**
84-
* 选项.
154+
* 旧版选项(兼容旧版本).
155+
* @deprecated 使用 Option 代替
85156
*/
157+
@Deprecated
86158
@Data
87159
@NoArgsConstructor
88-
public static class Option implements Serializable {
160+
public static class OldOption implements Serializable {
89161
private static final long serialVersionUID = 1L;
90162

91163
/**

0 commit comments

Comments
 (0)