private async Task <T> PostRequest <T>(string url, Dictionary <string, string> parameters)
            where T : class
        {
            try
            {
                if (parameters.ContainsKey("token") == false)
                {
                    parameters.Add("token", DingDingScrypt.jEncrypt("DING" + DingDingScrypt.GetTimeSpanByDate()));
                }
                var response = await _httpClient.PostAsync($"{url}?{GetUrlParameter(parameters)}", null);

                if (response.IsSuccessStatusCode)
                {
                    var str = (await response.Content.ReadAsStringAsync()).Replace("\\", "");
                    if (str.Length >= 2)
                    {
                        var json = str.Remove(0, 1).Remove(str.Length - 2, 1);
                        return(JsonConvert.DeserializeObject <T>(json));
                    }
                }
            }
            catch (Exception)
            {
            }
            return(default(T));
        }
        public async Task <IActionResult> MultipleRoundsAsync(string title,
                                                              [FromHeader(Name = "x-dd-userid")] string userId)
        {
            if (string.IsNullOrEmpty(title))
            {
                return(Ok());
            }
            // 当前钉钉用户
            var ddUser = await GetCurrentDDUserInfoAsync(userId);

            // 获取当前钉钉用户所在部门及父级部门
            var departIds = GetCurrentDDUserDepartIds(ddUser);

            var parameters = new Dictionary <string, string>();

            parameters.Add("title", DingDingScrypt.jEncrypt(title));
            var url = await _settings.GetAsync(SettingKeys.BusinessInquiryUrl) ??
                      throw new ArgumentNullException(SettingKeys.BusinessInquiryUrl);

            var result = await PostRequest <List <ModularResponseResult> >($"{url}/api/Employee/GetSearchRestultByTitle", parameters);

            // None
            if (result?.Count <= 0)
            {
                // 未找到意图,记录问题
                await _issueService.Record(new Unknown { Id = Guid.NewGuid(), Content = title, TimeOfOccurrence = DateTime.Now, Remarks = "此问题未匹配到意图", Type = 1 });
            }
            // 过滤权限
            var finalResult = await _permissionService.FilterModulePermissionAsync(departIds, result);

            return(Ok(finalResult));
        }
        public async Task <IActionResult> Final(string listName, string id, string colummName = "")
        {
            var parameters = new Dictionary <string, string>();

            parameters.Add("listName", DingDingScrypt.jEncrypt(listName));
            parameters.Add("id", DingDingScrypt.jEncrypt(id));
            parameters.Add("colummName", DingDingScrypt.jEncrypt(colummName ?? ""));

            var url = await _settings.GetAsync(SettingKeys.BusinessInquiryUrl) ??
                      throw new ArgumentNullException(SettingKeys.BusinessInquiryUrl);

            var result = await PostRequest <List <ModularResponseFinnalResult> >($"{url}/api/Employee/GetSearchRestultByColumn", parameters);

            return(Ok(result?.Where(r => !string.IsNullOrEmpty(r.TValue))));
        }