1
zj
2025-09-20 02d6a517f7d4dac2d5271cefe421a628d838414b
ruoyi-admin/src/main/java/com/ruoyi/im/ImApiController.java
@@ -3,6 +3,7 @@
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.im.comm.Result;
@@ -11,6 +12,7 @@
import com.ruoyi.im.service.ImApiServcie;
import com.ruoyi.im.dto.RegisterDto;
import com.ruoyi.im.util.SymmetricCryptoUtil;
import com.ruoyi.im.util.ValidatorUtil;
import com.ruoyi.system.domain.GroupWelcomeConfig;
import com.ruoyi.system.domain.IpBlacklist;
import com.ruoyi.system.domain.UserAccount;
@@ -37,10 +39,7 @@
import java.nio.file.Paths;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Date;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import java.util.*;
@RestController
@RequestMapping("/im/api")
@@ -55,6 +54,8 @@
    @Autowired
    UserAccountService userAccountService;
    @Autowired
    GroupWelcomeConfigService groupWelcomeConfigService;
@@ -71,6 +72,11 @@
    @PostMapping("/register")
    public Result register(@Validated RegisterDto dto){
        try {
            // 验证手机号
            boolean isPhoneValid = ValidatorUtil.isValidPhone(dto.getAccount());
            if(!isPhoneValid){
                return Result.error("手机号格式不正确");
            }
            return imApiServcie.register(dto);
        } catch (RuntimeException e) {
            // 从异常消息中解析Result对象
@@ -78,6 +84,24 @@
        }
    }
    /**
     * 获取二维码链接和邀请码
     */
    @GetMapping("/getUserCodeAndUrl")
    public Result getUserCodeAndUrl(@RequestParam("account") String account){
        try {
            GroupWelcomeConfig groupWelcomeConfig = groupWelcomeConfigService.getOne(new LambdaQueryWrapper<>(GroupWelcomeConfig.class)
                    .eq(GroupWelcomeConfig::getConfigurationName, "IM-BASICS").last(" limit 1"));
            UserAccount userAccount = userAccountService.getOne(new LambdaQueryWrapper<UserAccount>().eq(UserAccount::getAccount, account));
            Map<String,String> map = new HashMap<>();
            map.put("url",ObjectUtil.isNotEmpty(groupWelcomeConfig.getCodeUrl()) ? groupWelcomeConfig.getCodeUrl() : "");
            map.put("code",userAccount.getInvitationCode());
            return Result.success(map);
        } catch (RuntimeException e) {
            // 从异常消息中解析Result对象
            return JSON.parseObject(e.getMessage(), Result.class);
        }
    }
    /**
     * 修改用户信息只有数据库