• 浙政钉用户登陆


    /**
     * 浙政钉用户登陆
     *
     * @param request
     * @return
     */
    public AjaxResult zzdLogin(ZZDLoginRequest request) {
        //默认租户dnCd
        ThreadLocalUtil.set(videoCallConfig.getTenant());
        Map result = new HashMap();
        //根据appid找到对应得应用
        TZzdConfig zzdConfig = zzdConfigMapper.selectTZzdConfigByAppId(request.getAppId());
        if (zzdConfig == null) {
            ThreadLocalUtil.remove();
            return AjaxResult.error("配置信息错误");
        }
        //删除租户信息
        ThreadLocalUtil.remove();
        //重新设置租户信息为配置的租户
        ThreadLocalUtil.set(zzdConfig.getSjzTenant());
        //获取应用access_token
        String accesstoken = zzdService.getToken(zzdConfig);
        log.debug("accesstoken返回:{}", accesstoken);
        if (StringUtils.isNotEmpty(accesstoken)) {
            //根据accesstoken+authcode获取当前当前的用户信息
            ZZDUser zzdUser = zzdService.getLoginUser(zzdConfig, request.getAuth_code(), accesstoken);
            log.warn("zzduser:{}", zzdUser);
            if (zzdUser != null) {
                //根据用户accountId读取系统用户
                SysUser sysUser = userService.getSysUserByAccountId(zzdUser.getAccountId());
                if (sysUser == null) {
                    ThreadLocalUtil.remove();
                    return AjaxResult.error("未绑定系统用户");
                }
                //开始执行登录
                LoginUser loginUser = new LoginUser();
                loginUser.setTenant(zzdConfig.getSjzTenant());
                loginUser.setUser(sysUser);
    
                // 生成token
                String token = tokenService.createToken(loginUser);
                log.warn("浙政钉登录token:{}", token);
                AsyncManager.me()
                        .execute(AsyncFactory.recordLogininfor(null, null, loginUser.getToken(), loginUser.getDeptPk(),
                                loginUser.getLoginUserId(), EnumUserType.ADMIN.getCode(), zzdConfig.getSjzTenant(), sysUser.getUserName(),
                                nickName(loginUser), Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
    
                // 修改用户登录时间
                SysUser user = new SysUser();
                user.setPkId(loginUser.getLoginUserId());
                user.setLoginDate(new Date());
                userService.updateUserProfile(user);
                //查询部门信息和单位信息
                SysDept dept = deptService.selectDeptById(sysUser.getDeptId());
                log.warn("dept:{}", dept);
                if (dept != null) {
                    result.put("deptName", dept.getDeptName());
                }
                SysOrg org = orgService.selectSysOrgById(sysUser.getOrgPk());
                log.warn("org:{}", org);
                if (org != null) {
                    result.put("orgName", org.getOrgName());
                }
                //读取用户权限
                Set permissions = permissionService.getMenuPermission(sysUser);
                result.put("permissions", permissions);
                result.put("token", token);
                ThreadLocalUtil.remove();
                return AjaxResult.success(result);
            } else {
                ThreadLocalUtil.remove();
                return AjaxResult.error("用户信息读取失败");
            }
        } else {
            ThreadLocalUtil.remove();
            return AjaxResult.error("accesstoken信息获取失败");
        }
    }
  • 相关阅读:
    Excel VLOOKUP实用教程之 09 VLOOKUP 与多个条件一起使用?(教程含数据excel)
    蓝桥杯备赛第三篇(图论)
    VCP-DCV VMware vSphere,即将开课~想了解点击查看
    Java项目:工艺品商城系统(java+SSM+JSP+bootstrap+Mysql)
    【零基础入门MyBatis系列】第十五篇——分页插件与注解式开发
    【C#】RestSharp踩坑日记
    人工智能 框架 paddlepaddle 飞桨 使用指南& 使用例子 线性回归模型demo 详解
    JAVA基础-正则表达式(12)
    秋招面经第一弹:百度一面-大数据开发工程师
    css控制整个div下的所有元素中的文字放大缩小
  • 原文地址:https://blog.csdn.net/qq_39716220/article/details/126948528