1
zj
2025-08-28 2160f80eaa4a9a2b62fc58bb06335493cee4528f
1
6 files modified
1 files added
86 ■■■■■ changed files
ruoyi-admin/src/main/java/com/ruoyi/im/config/UpdateUserInfoRequest.java 38 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/im/dto/UpdateUserBusinessDto.java 3 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/ImApiServcieImpl.java 20 ●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java 4 ●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java 11 ●●●● patch | view | raw | blame | history
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/GroupVo.java 8 ●●●●● patch | view | raw | blame | history
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountUpdateVo.java 2 ●●●●● patch | view | raw | blame | history
ruoyi-admin/src/main/java/com/ruoyi/im/config/UpdateUserInfoRequest.java
@@ -18,16 +18,20 @@
    @JsonProperty("mobile")
    private String mobile;
    @JsonProperty("gender")
    private Integer gender;
    // 无参构造函数
    public UpdateUserInfoRequest() {}
    // 全参构造函数(可选)
    public UpdateUserInfoRequest(String avatar, String name, String sign, String email, String mobile) {
    // 全参构造函数
    public UpdateUserInfoRequest(String avatar, String name, String sign, String email, String mobile, Integer gender) {
        this.avatar = avatar;
        this.name = name;
        this.sign = sign;
        this.email = email;
        this.mobile = mobile;
        this.gender = gender;
    }
    // Getter 和 Setter 方法
@@ -71,7 +75,15 @@
        this.mobile = mobile;
    }
    // toString 方法(可选,便于调试)
    public Integer getGender() {
        return gender;
    }
    public void setGender(Integer gender) {
        this.gender = gender;
    }
    // toString 方法
    @Override
    public String toString() {
        return "UpdateUserInfoRequest{" +
@@ -79,11 +91,12 @@
                ", name='" + name + '\'' +
                ", sign='" + sign + '\'' +
                ", email='" + email + '\'' +
                ", mobile=" + mobile +
                ", mobile='" + mobile + '\'' +
                ", gender=" + gender +
                '}';
    }
    // Builder 模式(可选,便于链式调用)
    // Builder 模式方法
    public UpdateUserInfoRequest avatar(String avatar) {
        this.avatar = avatar;
        return this;
@@ -108,4 +121,19 @@
        this.mobile = mobile;
        return this;
    }
    public UpdateUserInfoRequest gender(Integer gender) {
        this.gender = gender;
        return this;
    }
    // 可以添加一个构建方法
    public static UpdateUserInfoRequest builder() {
        return new UpdateUserInfoRequest();
    }
    // 可以添加一个构建完成的方法
    public UpdateUserInfoRequest build() {
        return this;
    }
}
ruoyi-admin/src/main/java/com/ruoyi/im/dto/UpdateUserBusinessDto.java
@@ -1,5 +1,6 @@
package com.ruoyi.im.dto;
import io.swagger.models.auth.In;
import lombok.Data;
@Data
@@ -11,7 +12,7 @@
    private String email;//用户邮箱地址
    private String birthday;//用户生日
    private String mobile;//用户手机号码
    private String gender;//用户性别
    private Integer gender;//用户性别
    private String token;//用户账号对应的登录密钥 Token
    private Boolean enabled;//该账号是否可用。默认可用,若设为 false,则表示禁用该账号。
    private String p2p_chat_banned;//单聊禁言标记。true:禁言。
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/ImApiServcieImpl.java
@@ -276,23 +276,8 @@
            httpPatch.setHeader("CurTime", curTime);
            httpPatch.setHeader("CheckSum", checkSum);
            // 构建请求体
//            UpdateUserInfoRequest builder = new UpdateUserInfoRequest();
//            if(StringUtils.isNotEmpty(dto.getMobile())){
//                builder.setMobile(dto.getMobile());
//            }
//            if(StringUtils.isNotEmpty(dto.getName())){
//                builder.setName(dto.getName());
//            }
//            if(StringUtils.isNotEmpty(dto.getSign())){
//                builder.setSign(dto.getSign());
//            }
//            if(StringUtils.isNotEmpty(dto.getAvatar())){
//                builder.setAvatar(dto.getAvatar());
//            }
//            String body = builder.build();
            UpdateUserInfoRequest requestBody = new UpdateUserInfoRequest(dto.getAvatar(),
                    dto.getName(),dto.getSign(),dto.getEmail(),dto.getMobile());
                    dto.getName(),dto.getSign(),dto.getEmail(),dto.getMobile(),dto.getGender());
            String jsonBody = objectMapper.writeValueAsString(requestBody);
            httpPatch.setEntity(new StringEntity(jsonBody, StandardCharsets.UTF_8));
@@ -346,6 +331,9 @@
        if(StringUtils.isNotEmpty(vo.getSignature())){
            dto.setSign(vo.getSignature());
        }
        if(ObjectUtil.isNotEmpty(vo.getGender())){
            dto.setGender(vo.getGender());
        }
        Map<String, Object> map = updateUserAvatar(vo.getAccountId(), dto);
        //更新用户属性 状态 密码
        if ((Boolean) map.get("success")) {
ruoyi-admin/src/main/java/com/ruoyi/im/service/impl/NeteaseTeamServiceImpl.java
@@ -270,7 +270,9 @@
    @Override
    public AjaxResult inviteTeamMembers(AddTeamMembersRequest request) {
        try {
            if(null != request.getNumber() && request.getNumber() > 99){
                return AjaxResult.error("拉人数量单次最多99!");
            }
            NeteaseTeam neteaseTeam = neteaseTeamMapper.selectById(request.getGroupId());
            if(ObjectUtil.isEmpty(neteaseTeam)){
                return AjaxResult.error("群不存在!");
ruoyi-admin/src/main/java/com/ruoyi/web/controller/group/ImGroupController.java
@@ -13,6 +13,7 @@
import com.ruoyi.im.service.NeteaseTeamService;
import com.ruoyi.system.domain.NeteaseTeam;
import com.ruoyi.system.domain.UserAccount;
import com.ruoyi.system.domain.vo.GroupVo;
import com.ruoyi.system.domain.vo.UserAccountVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -54,19 +55,19 @@
     */
//    @PreAuthorize("@ss.hasPermi('im:group:list')")
    @GetMapping("/list")
    public TableDataInfo list(@PathVariable(value = "keywords", required = false) String keywords)
    public TableDataInfo list(GroupVo vo)
    {
        // 创建查询条件包装器
        LambdaQueryWrapper<NeteaseTeam> queryWrapper = new LambdaQueryWrapper<>();
        // 只有当 keyword 不为空时才添加 OR 条件
        if (ObjectUtil.isNotEmpty(keywords)) {
        if (ObjectUtil.isNotEmpty(vo.getKeywords())) {
            queryWrapper.and(wrapper -> wrapper
                    .eq(NeteaseTeam::getTid, keywords)
                    .eq(NeteaseTeam::getTid, vo.getKeywords())
                    .or()
                    .eq(NeteaseTeam::getOwnerAccountId, keywords)
                    .eq(NeteaseTeam::getOwnerAccountId, vo.getKeywords())
                    .or()
                    .eq(NeteaseTeam::getName,keywords)
                    .eq(NeteaseTeam::getName,vo.getKeywords())
            );
        }
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/GroupVo.java
New file
@@ -0,0 +1,8 @@
package com.ruoyi.system.domain.vo;
import lombok.Data;
@Data
public class GroupVo {
    private String keywords;
}
ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountUpdateVo.java
@@ -42,6 +42,8 @@
    // 个性签名
    private String signature;
    // 用户性别,0-未知,1-男,2-女。
    private Integer gender;
//    // 是否支持昵称搜索
//    private Boolean supportNicknameSearch = true;