‘liusuyi’
2023-08-10 ee29556679d92bdc1aa0d5951e4931d342c29c3f
优化首次用户登录获取不到融云token的bug
已修改4个文件
50 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -24,14 +24,13 @@
/**
 * 登录验证
 *
 *
 * @author ruoyi
 */
@RestController
@Api(tags = "登录验证接口")
@Anonymous
public class SysLoginController
{
public class SysLoginController {
    @Autowired
    private SysLoginService loginService;
@@ -43,14 +42,13 @@
    /**
     * 登录方法
     *
     *
     * @param loginBody 登录信息
     * @return 结果
     */
    @PostMapping("/login")
    @ApiOperation(value = "登录")
    public AjaxResult login(@RequestBody LoginBody loginBody)
    {
    public AjaxResult login(@RequestBody LoginBody loginBody) {
        AjaxResult ajax = AjaxResult.success();
        // 生成令牌
        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
@@ -61,14 +59,19 @@
    /**
     * 获取用户信息
     *
     *
     * @return 用户信息
     */
    @GetMapping("getInfo")
    @ApiOperation(value = "获取用户信息")
    public AjaxResult getInfo()
    {
    public AjaxResult getInfo() {
        SysUser user = SecurityUtils.getLoginUser().getUser();
        // 赋值融云token到用户信息
        String rongCloudToken = SecurityUtils.getLoginUser().getRongCloudToken();
        if (rongCloudToken != null) {
            user.setRongCloudToken(rongCloudToken);
        }
        // 角色集合
        Set<String> roles = permissionService.getRolePermission(user);
        // 权限集合
@@ -82,12 +85,11 @@
    /**
     * 获取路由信息
     *
     *
     * @return 路由信息
     */
    @GetMapping("getRouters")
    public AjaxResult getRouters()
    {
    public AjaxResult getRouters() {
        String userId = SecurityUtils.getUserId();
        List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
        return AjaxResult.success(menuService.buildMenus(menus));
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -27,19 +27,6 @@
     */
    private String uuid;
    /**
     * 是否APP用户
     */
    private Boolean isApp;
    public Boolean getApp() {
        return isApp;
    }
    public void setApp(Boolean app) {
        isApp = app;
    }
    public String getUsername()
    {
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -50,6 +50,7 @@
    @Autowired
    private ISysConfigService configService;
    @Resource
    RongCloudService rongCloudService;
@@ -63,6 +64,8 @@
     * @return 结果
     */
    public String login(String username, String password, String code, String uuid) {
        boolean captchaEnabled = configService.selectCaptchaEnabled();
        // 验证码开关
        if (captchaEnabled) {
@@ -89,10 +92,10 @@
        AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
        LoginUser loginUser = (LoginUser) authentication.getPrincipal();
        recordLoginInfo(loginUser.getUserId());
        getRongCloudToken(loginUser);
        // 生成token
        String token = tokenService.createToken(loginUser);
        //获取融云token
        getRongCloudToken(loginUser);
        return token;
    }
    /**
@@ -134,7 +137,7 @@
     *
     * @param loginUser 登录用户
     */
    public void getRongCloudToken(LoginUser loginUser) {
    public String getRongCloudToken(LoginUser loginUser) {
        try {
            String userId = loginUser.getUserId();
            String nickName = loginUser.getUser().getNickName();
@@ -144,6 +147,7 @@
            sysUser.setUserId(userId);
            sysUser.setRongCloudToken(token);
            userService.updateUserProfile(sysUser);
            return token;
        } catch (Exception ex) {
            throw ex;
        }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -13,6 +13,7 @@
import com.ruoyi.alarm.config.domain.ArdAlarmTypeConfig;
import com.ruoyi.alarm.config.mapper.ArdAlarmTypeConfigMapper;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DictUtils;