qirong
2023-12-08 fb766b5ff9f913561f76aa747c76eae5c3678589
ruoyi-admin/src/main/java/org/dromara/web/controller/AuthController.java
@@ -3,6 +3,7 @@
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -23,12 +24,13 @@
import org.dromara.common.social.utils.SocialUtils;
import org.dromara.common.tenant.helper.TenantHelper;
import org.dromara.system.domain.SysClient;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.bo.SysTenantBo;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysTenantVo;
import org.dromara.system.service.ISysClientService;
import org.dromara.system.service.ISysConfigService;
import org.dromara.system.service.ISysSocialService;
import org.dromara.system.service.ISysTenantService;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.service.*;
import org.dromara.system.uitil.AutoLoginUtil;
import org.dromara.web.domain.vo.LoginTenantVo;
import org.dromara.web.domain.vo.LoginVo;
import org.dromara.web.domain.vo.TenantListVo;
@@ -61,6 +63,8 @@
    private final ISysTenantService tenantService;
    private final ISysSocialService socialUserService;
    private final ISysClientService clientService;
    private final ISysUserService userService;
    private final SysUserMapper userMapper;
    /**
@@ -186,4 +190,28 @@
        return R.ok(vo);
    }
    /**
     * 自动注册并登录
     */
//    @SaCheckPermission("system:user:auto")
    @GetMapping(value = "auto")
    public R<LoginVo> auto(RegisterBody user) {
        AutoLoginUtil.padding(user);
        String clientId = "e5cd7e4891bf95d1d19206ce24a7b32e";
        //pc
        SysClient client = clientService.queryByClientId(clientId);
        //检验是否存在账号
        boolean exists = userMapper.exists(new LambdaQueryWrapper<SysUser>()
            .eq(SysUser::getUserName, user.getUsername())
            .eq(SysUser::getStatus, "0")
            .eq(SysUser::getDelFlag, "0"));
        if(!exists){
            registerService.register(user);
        }
        LoginBody loginBody = AutoLoginUtil.create(user,clientId);
//         登录
        return R.ok(IAuthStrategy.login(loginBody, client));
    }
}