コード例 #1
0
        public async Task <string> GetAccessTokenByAppAsync(DingDingAppEnum app)
        {
            var config = await GetDingDingConfigByAppAsync(app);

            DingAccessToken accessToken = Get.GetJson <DingAccessToken>(string.Format("https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}", config.Appkey, config.Appsecret));

            Logger.InfoFormat("AccessToken response errmsg:{0} body:{1}", accessToken.errmsg, accessToken.access_token);
            return(accessToken.access_token);
        }
コード例 #2
0
        public async Task <DingDingUserDto> GetDingDingUserByCodeAsync(string code, DingDingAppEnum appId)
        {
            ddConfig = _dingDingAppService.GetDingDingConfigByApp(appId);
            //测试环境注释
            var assessToken = _dingDingAppService.GetAccessToken(ddConfig.Appkey, ddConfig.Appsecret);
            var userId      = _dingDingAppService.GetUserId(assessToken, code);
            //var userId = "16550049332052666774";
            // var userId = "1926112826844702";
            var query = await _employeeRepository.GetAsync(userId);

            var dduser = query.MapTo <DingDingUserDto>();
            var area   = await _employeeManager.GetAreaCodeByUserIdAsync(dduser.Id);//钉钉用户区县权限

            dduser.Area     = area.ToString();
            dduser.AreaCode = area;
            return(dduser);
        }
コード例 #3
0
        public async Task <DingDingAppConfig> GetDingDingConfigByAppAsync(DingDingAppEnum app)
        {
            DingDingAppConfig config = new DingDingAppConfig();
            var configList           = new List <DingTalkConfig>();

            switch (app)
            {
            case DingDingAppEnum.智能办公:
            {
                configList = await _dingTalkConfigRepository.GetAll()
                             .Where(d => d.Type == DingDingTypeEnum.公共配置 || d.Type == DingDingTypeEnum.智能办公)
                             .AsNoTracking()
                             .ToListAsync();
            }
            break;

            default:
                break;
            }

            foreach (var item in configList)
            {
                if (item.Code.ToLower() == DingDingConfigCode.CorpId.ToLower())
                {
                    config.CorpId = item.Value;
                }
                else if (item.Code.ToLower() == DingDingConfigCode.Appkey.ToLower())
                {
                    config.Appkey = item.Value;
                }
                else if (item.Code.ToLower() == DingDingConfigCode.Appsecret.ToLower())
                {
                    config.Appsecret = item.Value;
                }
                else if (item.Code.ToLower() == DingDingConfigCode.AgentID.ToLower())
                {
                    int outAgenId = 0;
                    if (int.TryParse(item.Value, out outAgenId))
                    {
                        config.AgentID = outAgenId;
                    }
                }
            }

            return(config);
        }
コード例 #4
0
        /// <summary>
        /// 获取钉钉配置根据 应用App
        /// </summary>
        public DingDingAppConfig GetDingDingConfigByApp(DingDingAppEnum app)
        {
            DingDingAppConfig config = new DingDingAppConfig();
            var configList           = new List <SystemData>();

            switch (app)
            {
            case DingDingAppEnum.任务拜访:
            {
                configList = _systemDataRepository.GetAll()
                             .Where(s => s.ModelId == ConfigModel.钉钉配置)
                             .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.任务拜访)
                             .ToList();
            }
            break;

            case DingDingAppEnum.智能报表:
            {
                configList = _systemDataRepository.GetAll()
                             .Where(s => s.ModelId == ConfigModel.钉钉配置)
                             .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.智能报表)
                             .ToList();
            }
            break;

            case DingDingAppEnum.会议申请:
            {
                configList = _systemDataRepository.GetAll()
                             .Where(s => s.ModelId == ConfigModel.钉钉配置)
                             .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.会议申请)
                             .ToList();
            }
            break;

            case DingDingAppEnum.资料标准库:
            {
                configList = _systemDataRepository.GetAll()
                             .Where(s => s.ModelId == ConfigModel.钉钉配置)
                             .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.企业标准库)
                             .ToList();
            }
            break;
            }
            foreach (var item in configList)
            {
                if (item.Code == DingDingConfigCode.CorpId)
                {
                    config.CorpId = item.Desc;
                }
                else if (item.Code == DingDingConfigCode.Appkey)
                {
                    config.Appkey = item.Desc;
                }
                else if (item.Code == DingDingConfigCode.Appsecret)
                {
                    config.Appsecret = item.Desc;
                }
                else if (item.Code == DingDingConfigCode.AgentID)
                {
                    int outAgenId = 0;
                    if (int.TryParse(item.Desc, out outAgenId))
                    {
                        config.AgentID = outAgenId;
                    }
                }
            }
            return(config);
        }
コード例 #5
0
        /// <summary>
        /// 获取钉钉AccessToken 根据App
        /// </summary>
        public string GetAccessTokenByApp(DingDingAppEnum app)
        {
            var config = GetDingDingConfigByApp(app);

            return(GetAccessToken(config.Appkey, config.Appsecret));
        }