public List <bx_agent_config> GetAgentConfigByCity(int agentId, int cityCode) { List <bx_agent_config> configModel = new List <bx_agent_config>(); var key = string.Format("agent_config_{0}_{1}_list", agentId, cityCode); var cachelst = CacheProvider.Get <List <bx_agent_config> >(key); if (cachelst == null) { var lst = _agentConfigRepository.FindBy(agentId, cityCode); if (lst.Any()) { CacheProvider.Set(key, lst, 10800); configModel = lst; } } else { configModel = cachelst; } return(configModel); }
public async Task <SpecialListResponse> GetSpeciaList(GetSpecialListRequest request, IEnumerable <KeyValuePair <string, string> > pairs) { SpecialListResponse response = new SpecialListResponse(); string ukeyId; var agentConfig = _agentConfig.FindBy(request.AgentId, request.CityId).FirstOrDefault(conf => conf.source == SourceGroupAlgorithm.GetOldSource(request.Source)); if (agentConfig == null) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10001; response.BusinessMessage = "没有找到代理人配置"; return(response); } else { ukeyId = agentConfig.ukey_id.ToString(); } bx_agent agentModel = GetAgent(request.AgentId); //参数校验 if (agentModel == null) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10001; response.BusinessMessage = "没有找到代理人"; return(response); } if (!ValidateReqest(pairs, agentModel.SecretKey, request.SecCode)) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10001; response.BusinessMessage = "参数校验失败"; return(response); } string SpecicalCacheKey = CommonCacheKeyFactory.CreateKeyWithLicense(request.AgentId.ToString() + request.CityId.ToString() + request.Source.ToString()); var key = string.Format("{0}-SpecialOptions-key", SpecicalCacheKey); string cacheKey = CacheProvider.Get <string>(key); if (cacheKey != null) { if (cacheKey == "1") { string listcachekey = string.Format("{0}-SpecialOptions", SpecicalCacheKey); response = CacheProvider.Get <SpecialListResponse>(listcachekey); response.Status = HttpStatusCode.OK; response.BusinessStatus = 1; response.BusinessMessage = "获取特约成功"; response.Key = listcachekey; return(response); } else { CacheProvider.Remove(key); } } object msgBody; msgBody = new { Source = SourceGroupAlgorithm.GetOldSource(request.Source), CityId = request.CityId, TopAgentId = request.AgentId, ukeyId = ukeyId, NotifyCacheKey = SpecicalCacheKey }; _messageCenter.SendToMessageCenter(msgBody.ToJson(), ConfigurationManager.AppSettings["MessageCenter"], ConfigurationManager.AppSettings["SpecialOption"]); for (int i = 0; i < 115; i++) { cacheKey = CacheProvider.Get <string>(key); //step1val = xuBaoKey; //step1va2 = cacheKey; if (!string.IsNullOrWhiteSpace(cacheKey)) { if (cacheKey == "0" || cacheKey == "1") { break; } } else { await Task.Delay(TimeSpan.FromSeconds(1)); } } if (cacheKey == null) { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = -10003;//缓存异常 response.BusinessMessage = "请求超时或缓存异常,请重试"; response.Key = ""; return(response); } else if (cacheKey == "0") { response.Status = HttpStatusCode.Forbidden; response.BusinessStatus = 0; response.BusinessMessage = "获取特约检索失败"; response.Key = ""; return(response); } else { string listcachekey = string.Format("{0}-SpecialOptions", SpecicalCacheKey); response = CacheProvider.Get <SpecialListResponse>(listcachekey); response.Status = HttpStatusCode.OK; response.BusinessStatus = 1; response.BusinessMessage = "获取特约成功"; response.Key = listcachekey; return(response); } }