package com.ruoyi.im.config;
|
|
import cn.hutool.json.JSONObject;
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
public class UpdateUserInfoRequest {
|
private Map<String, Object> bodyData;
|
|
public UpdateUserInfoRequest() {
|
bodyData = new HashMap<>();
|
}
|
|
/**
|
* 设置name字段
|
*/
|
public UpdateUserInfoRequest setName(String name) {
|
if (name != null) {
|
bodyData.put("name", name);
|
}
|
return this;
|
}
|
|
/**
|
* 设置avatar字段
|
*/
|
public UpdateUserInfoRequest setAvatar(String avatar) {
|
if (avatar != null) {
|
bodyData.put("avatar", avatar);
|
}
|
return this;
|
}
|
|
/**
|
* 设置sign字段
|
*/
|
public UpdateUserInfoRequest setSign(String sign) {
|
if (sign != null) {
|
bodyData.put("sign", sign);
|
}
|
return this;
|
}
|
|
/**
|
* 设置email字段
|
*/
|
public UpdateUserInfoRequest setEmail(String email) {
|
if (email != null) {
|
bodyData.put("email", email);
|
}
|
return this;
|
}
|
|
/**
|
* 设置birthday字段
|
*/
|
public UpdateUserInfoRequest setBirthday(String birthday) {
|
if (birthday != null) {
|
bodyData.put("birthday", birthday);
|
}
|
return this;
|
}
|
|
/**
|
* 设置mobile字段
|
*/
|
public UpdateUserInfoRequest setMobile(String mobile) {
|
if (mobile != null) {
|
bodyData.put("mobile", mobile);
|
}
|
return this;
|
}
|
|
/**
|
* 设置gender字段
|
*/
|
public UpdateUserInfoRequest setGender(String gender) {
|
if (gender != null) {
|
bodyData.put("gender", gender);
|
}
|
return this;
|
}
|
|
/**
|
* 设置extension字段
|
*/
|
public UpdateUserInfoRequest setExtension(String extension) {
|
if (extension != null) {
|
bodyData.put("extension", extension);
|
}
|
return this;
|
}
|
|
/**
|
* 批量设置所有字段
|
*/
|
public UpdateUserInfoRequest setAllFields(Map<String, Object> fields) {
|
if (fields != null) {
|
for (Map.Entry<String, Object> entry : fields.entrySet()) {
|
String key = entry.getKey();
|
Object value = entry.getValue();
|
|
if (value != null) {
|
switch (key) {
|
case "name":
|
setName((String) value);
|
break;
|
case "avatar":
|
setAvatar((String) value);
|
break;
|
case "sign":
|
setSign((String) value);
|
break;
|
case "email":
|
setEmail((String) value);
|
break;
|
case "birthday":
|
setBirthday((String) value);
|
break;
|
case "mobile":
|
setMobile((String) value);
|
break;
|
case "gender":
|
setGender((String) value);
|
break;
|
case "extension":
|
setExtension((String) value);
|
break;
|
default:
|
// 忽略未知字段
|
break;
|
}
|
}
|
}
|
}
|
return this;
|
}
|
|
/**
|
* 构建JSON字符串
|
*/
|
public String build() {
|
JSONObject jsonObject = new JSONObject(bodyData);
|
return jsonObject.toString();
|
}
|
|
/**
|
* 获取Map形式的数据
|
*/
|
public Map<String, Object> getBodyData() {
|
return new HashMap<>(bodyData);
|
}
|
|
/**
|
* 清空所有已设置的数据
|
*/
|
public void clear() {
|
bodyData.clear();
|
}
|
|
/**
|
* 使用示例
|
*/
|
public static void main(String[] args) {
|
// 示例1: 只设置部分字段
|
UpdateUserInfoRequest builder = new UpdateUserInfoRequest();
|
String partialBody = builder
|
.setName("zhangsan")
|
.setEmail("zhangsan@corp.xx.com")
|
.setMobile("13312345678")
|
.build();
|
System.out.println("部分字段请求体: " + partialBody);
|
|
// 示例2: 使用Map批量设置
|
builder.clear();
|
Map<String, Object> fields = new HashMap<>();
|
fields.put("name", "lisi");
|
fields.put("avatar", "http://xxxx.xx/lisi.png");
|
fields.put("sign", "Hello World");
|
fields.put("gender", "1");
|
|
String batchBody = builder.setAllFields(fields).build();
|
System.out.println("批量设置请求体: " + batchBody);
|
|
// 示例3: 完全不设置任何字段
|
builder.clear();
|
String emptyBody = builder.build();
|
System.out.println("空请求体: " + emptyBody);
|
|
// 示例4: 设置所有字段
|
builder.clear();
|
String fullBody = builder
|
.setName("zhangsan")
|
.setAvatar("http://xxxx.xx/x.png")
|
.setSign("Hello World")
|
.setEmail("zhangsan@corp.xx.com")
|
.setBirthday("1990-01-01")
|
.setMobile("13312345678")
|
.setGender("2")
|
.setExtension("xxxx")
|
.build();
|
System.out.println("完整请求体: " + fullBody);
|
}
|
}
|