美文网首页
钉钉查询NCC薪资

钉钉查询NCC薪资

作者: 更真实 | 来源:发表于2024-02-15 23:34 被阅读0次

功能效果

1.jpg
2.jpg
3.jpg

根据钉钉code单点NCC

1. 根据钉钉code查询钉钉用户信息

    /**
     * @description 通过编码获取用户信息
     * @param code
     * @return
     */
    public DingTalkUser getUser(String code) {
        String token=this.getToken();
        String url=String.format(dingTalkConfig.getUserinfoUrl(), token);
        Map<String,String> param=new HashMap<String,String>();
        param.put("code", code);
        ResponseEntity<Response<DingTalkUser>> userInfo=restTemplate.exchange(url,HttpMethod.POST, new HttpEntity<>(param), new ParameterizedTypeReference<Response<DingTalkUser>>(){});
        if(userInfo.getBody()!=null&&userInfo.getBody().getErrcode()==ERROR_CODE_SUCCESS) {
            return userInfo.getBody().getResult();
        }else {
            Logger.error("获取钉钉用户信息失败:"+code);
            throw new BusinessException("获取钉钉用户信息失败:code="+code+",token="+token);
        }
    }

2.根据钉钉userid生成NCC accessToken

/**根据钉钉code生成NCC accessToken
 * 前提 钉钉LoginId与NCC userCode一致 
 * @author 
 */
public class DingtalkLoginStrategy implements IMobLoginStrategy{
    public String mobLogin(IMobHttpOperator operator) {
        String token = null;
        String str = operator.getRequest().read();
        IJson json = JsonFactory.create();
        DingtalkLoginVO dingtalkLoginVO = (DingtalkLoginVO) json.fromJson(str, DingtalkLoginVO.class);
        try {
            IBusiCenterManageService bcmService = (IBusiCenterManageService) ServiceLocator.find(IBusiCenterManageService.class);
            BusiCenterVO busiVO = bcmService.getBusiCenterByCode(dingtalkLoginVO.getBusiCenterCode());
            if (busiVO == null) {
                throw new MobileException("找不到" + dingtalkLoginVO.getBusiCenterCode() + "对应的账套,请检查在钉钉配置的地址");
            }
            IUserService userService = (IUserService) ServiceLocator.find(IUserService.class);
            DingTalkUser dingTalkUser=userService.getUser(dingtalkLoginVO.getDingtalkCode());
            // 如果钉钉和NCC手机号一致,需要使用BaseDAO 通过手机号查询NCC userCode
            UserVO userVO = ((INCUserQueryService) ServiceLocator.find(INCUserQueryService.class)).findUserVO(busiVO.getDataSourceName(), dingTalkUser.getLoginId());
            if(userVO==null) {
                throw new MobileException("NCC未查询到用户:"+dingtalkLoginVO.getUserCode()+",请先在NCC创建用户");
            }
            Map<String, String> userObject = new HashMap<String, String>();
//          userObject.put(MobNCCloudAccessToken.tenantId, "123");
            userObject.put(MobNCCloudAccessToken.yhtUserId, userVO.getUser_code());
//          userObject.put(MobNCCloudAccessToken.userPhone, "12345678910");
            token = MobTokenUtil.generateMobToken(busiVO, userVO, operator, userObject);
        } catch (Exception e) {
            ExceptionUtils.wrapException(e);
        }
        return token;
    }
    public MobLoginType getLoginType() {
        return null;
    }
}

3.使用accessToken调用NCC接口

相关文章

  • 钉钉,钉钉

    由于疫情的发展,学生们的开学时间推迟,为了保证学生“停课不停学”,我开始跟着学用“钉钉这个软件”。 从接触钉钉后,...

  • java接入钉钉机器人(附源码)

    前言 登录钉钉网页: https://im.dingtalk.com 登录说明文档地址,以备随时查询:https:...

  • 钉钉钉

    恶蛟抬头望, 烛火噬镜心, 身心皆沦陷, 从此完无人; 以身说试法, 白头告衰鬓, 自摧长生路, 放眼望人间! 亦...

  • 钉钉之歌

    钉钉之歌 钉钉复钉钉,钉钉生不易。 默默本无名,鹊起因时疫。 钉钉复钉钉,钉钉好得意。 久长的假期,未让浮生歇。 ...

  • 来对个好玩的对联

    昊日仄旭出的对联 上联:爸爸在钉钉,儿子在钉钉,父子都钉钉,钉钉非钉钉。(上联的意思是,爸爸在钉 钉子 ,儿子在钉...

  • 钉钉辟谣钉钉收费

    近日,网传钉钉基础版超过10人将收费,对于此事,钉钉方面回应称:该为不实消息,实际为钉钉内的一款项目管理功能“钉钉...

  • 【常用公共方法】其他(钉钉)

    设置钉钉导航右侧 设置钉钉导航标题 设置钉钉分享 设置

  • 出鞘——同学,你的钉钉卸了吗?

    钉钉钉钉,钉钉钉。多么美妙的声音! 你若问: 阿里哪家最服人?钉钉雄起说我行。 在已经过去的这个漫长的...

  • 钉钉

    马云,阿里巴巴,天猫,淘宝,支付宝,蚂蚁金服,现在的钉钉。。。 马云,让浙江杭州闪耀,改变了我们的生活。说天...

  • 钉钉

    历时两年,两代产品,钉钉的全链路通讯框架持续在升级,从json over http -> msgpack RPC ...

网友评论

      本文标题:钉钉查询NCC薪资

      本文链接:https://www.haomeiwen.com/subject/lkdyadtx.html