• 浙政钉用户登陆


    /**
     * 浙政钉用户登陆
     *
     * @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信息获取失败");
        }
    }
  • 相关阅读:
    R语言筛选data.table数据中特定数据列大于某一个具体值的数据行(greater than)
    BluePrism里WorkQueue的几种传法和区别
    【Linux】Ubuntu环境(mxml的存储与读取实例+16进制与字符串转化)
    使用cannon.js创建3D物理仿真场景
    NoSQL之redis高可用(主从复制、哨兵、集群)搭建
    避免defer陷阱:拆解延迟语句,掌握正确使用方法
    【机器学习】图像语义分割常用指标Dice系数 敏感性 特异性 IOU及python代码实现
    发个阿里云广告,对园子脱困很重要
    学生管理系统(Java版)
    怎么在插件列表中隐藏一个WordPress插件?
  • 原文地址:https://blog.csdn.net/qq_39716220/article/details/126948528