1
zj
2025-08-22 5cb579d8b09978f6fefd829fb6220fcf4391cd2f
ruoyi-admin/src/main/java/com/ruoyi/im/config/UpdateUserInfoRequest.java
@@ -1,207 +1,111 @@
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;
    @JsonProperty("avatar")
    private String avatar;
    public UpdateUserInfoRequest() {
        bodyData = new HashMap<>();
    @JsonProperty("name")
    private String name;
    @JsonProperty("sign")
    private String sign;
    @JsonProperty("email")
    private String email;
    @JsonProperty("mobile")
    private String mobile;
    // 无参构造函数
    public UpdateUserInfoRequest() {}
    // 全参构造函数(可选)
    public UpdateUserInfoRequest(String avatar, String name, String sign, String email, String mobile) {
        this.avatar = avatar;
        this.name = name;
        this.sign = sign;
        this.email = email;
        this.mobile = mobile;
    }
    /**
     * 设置name字段
     */
    public UpdateUserInfoRequest setName(String name) {
        if (name != null) {
            bodyData.put("name", name);
        }
    // Getter 和 Setter 方法
    public String getAvatar() {
        return avatar;
    }
    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSign() {
        return sign;
    }
    public void setSign(String sign) {
        this.sign = sign;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    // toString 方法(可选,便于调试)
    @Override
    public String toString() {
        return "UpdateUserInfoRequest{" +
                "avatar='" + avatar + '\'' +
                ", name='" + name + '\'' +
                ", sign='" + sign + '\'' +
                ", email='" + email + '\'' +
                ", mobile=" + mobile +
                '}';
    }
    // Builder 模式(可选,便于链式调用)
    public UpdateUserInfoRequest avatar(String avatar) {
        this.avatar = avatar;
        return this;
    }
    /**
     * 设置avatar字段
     */
    public UpdateUserInfoRequest setAvatar(String avatar) {
        if (avatar != null) {
            bodyData.put("avatar", avatar);
        }
    public UpdateUserInfoRequest name(String name) {
        this.name = name;
        return this;
    }
    /**
     * 设置sign字段
     */
    public UpdateUserInfoRequest setSign(String sign) {
        if (sign != null) {
            bodyData.put("sign", sign);
        }
    public UpdateUserInfoRequest sign(String sign) {
        this.sign = sign;
        return this;
    }
    /**
     * 设置email字段
     */
    public UpdateUserInfoRequest setEmail(String email) {
        if (email != null) {
            bodyData.put("email", email);
        }
    public UpdateUserInfoRequest email(String email) {
        this.email = email;
        return this;
    }
    /**
     * 设置birthday字段
     */
    public UpdateUserInfoRequest setBirthday(String birthday) {
        if (birthday != null) {
            bodyData.put("birthday", birthday);
        }
    public UpdateUserInfoRequest mobile(String mobile) {
        this.mobile = mobile;
        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);
    }
}
}