public ReturnResult SimulationMTGetDeal(string url, DealRequestBody body) { ReturnResult result = new ReturnResult { IsSuccess = false, }; try { DealRequest requestData = new DealRequest { partnerId = agentinfo.mt_partnerId, body = body }; var responseStr = new MeiTuanInter(agentinfo.mt_partnerId, agentinfo.mt_secret, agentinfo.mt_client).DoRequest(url, JsonConvert.SerializeObject(requestData)); if (string.IsNullOrEmpty(responseStr)) { result.Message = "返回数据为空"; } else { DealResponse responseBody = (DealResponse)JsonConvert.DeserializeObject(responseStr, typeof(DealResponse)); if (responseBody.code == 200) { result.IsSuccess = true; result.Message = JsonConvert.SerializeObject(responseBody); } else { result.Message = responseBody.describe; } } } catch (Exception ex) { result.Message = "异常" + ex.Message; } return(result); }
/// 抓产品 public string GetProductList(Meituan_reqlog mlog) { var response = new DealResponse(); response.partnerId = agentinfo.mt_partnerId.ConvertTo <int>(0); try { var data = JsonConvert.DeserializeObject <DealRequest>(_requestParam); if (data.body == null) { response.code = 300; response.describe = "Body数据解析失败"; } else { DealRequestBody body = data.body; //todo 根据请求参数查询产品返回结果 if (body.method.Equals("multi", StringComparison.OrdinalIgnoreCase)) { #region 获取产品列表 int totalcount = 0; List <DealResponseBody> list = new DealResponseData().GetDealResponseBody(out totalcount, agentinfo, body.method, body.partnerDealIds); foreach (DealResponseBody rbody in list) { B2b_com_project pro_project = new B2b_com_projectData().GetProject(rbody.partnerPoiId.ConvertTo <int>(0)); if (pro_project != null) { List <ServicePhone> servicePhonelist = new List <ServicePhone>(); servicePhonelist.Add(new ServicePhone { phone = pro_project.Mobile.Split(' ')[0], startHour = "08", startMin = "00", endHour = "17", endMin = "00" }); //服务电话 rbody.servicePhones = servicePhonelist; //入园地址 rbody.getInAddresses = new string[] { pro_project.Address }; } //结算价 Agent_warrant warrant = new Agent_companyData().GetAgentWarrantInfo(agentinfo.Id, rbody.partnerDealId.ConvertTo <int>(0)); if (warrant != null) { rbody.settlementPrice = new B2bComProData().GetAgentPrice(rbody.partnerDealId.ConvertTo <int>(0), warrant.Warrant_level); } /******************************* * 产品图片(最多5张)=产品主图片+产品子图片(前4张) * ******************************/ List <DealImageInfo> imgs = rbody.dealImageInfos; int topnum = 4; List <int> childimgarr = new B2bComProData().GetProChildImgArr(rbody.partnerDealId.ConvertTo <int>(0), topnum); if (childimgarr.Count > 0) { foreach (int iimg in childimgarr) { imgs.Add(new DealImageInfo { imageName = "", imageUrl = iimg.ToString(), frontImage = false }); } } foreach (DealImageInfo iinfo in imgs) { var iimgurl = FileSerivce.GetImgUrl(iinfo.imageUrl.ConvertTo <int>(0)); iinfo.imageUrl = iimgurl; } rbody.dealImageInfos = imgs; } if (list.Count > 0) { response.code = 200; response.describe = "success"; response.partnerId = int.Parse(agentinfo.mt_partnerId); response.totalSize = totalcount; response.body = list; } else { response.code = 300; response.describe = "获取deal失败"; } #endregion } else if (body.method.Equals("page", StringComparison.OrdinalIgnoreCase)) { int pageindex = body.currentPage, pagesize = body.pageSize; if (pageindex <= 0) { pageindex = 1; } if (pagesize <= 0 || pagesize > 20) { pagesize = 20; } #region 获取产品列表 int totalcount = 0; List <DealResponseBody> list = new DealResponseData().GetDealResponseBody(out totalcount, agentinfo, body.method, body.partnerDealIds, pageindex, pagesize); foreach (DealResponseBody rbody in list) { B2b_com_project pro_project = new B2b_com_projectData().GetProject(rbody.partnerPoiId.ConvertTo <int>(0)); if (pro_project != null) { List <ServicePhone> servicePhonelist = new List <ServicePhone>(); servicePhonelist.Add(new ServicePhone { phone = pro_project.Mobile.Split(' ')[0], startHour = "08", startMin = "00", endHour = "17", endMin = "00" }); //服务电话 rbody.servicePhones = servicePhonelist; //入园地址 rbody.getInAddresses = new string[] { pro_project.Address }; } //结算价 Agent_warrant warrant = new Agent_companyData().GetAgentWarrantInfo(agentinfo.Id, rbody.partnerDealId.ConvertTo <int>(0)); if (warrant != null) { rbody.settlementPrice = new B2bComProData().GetAgentPrice(rbody.partnerDealId.ConvertTo <int>(0), warrant.Warrant_level); } /******************************* * 产品图片(最多5张)=产品主图片+产品子图片(前4张) * ******************************/ List <DealImageInfo> imgs = rbody.dealImageInfos; int topnum = 4; List <int> childimgarr = new B2bComProData().GetProChildImgArr(rbody.partnerDealId.ConvertTo <int>(0), topnum); if (childimgarr.Count > 0) { foreach (int iimg in childimgarr) { imgs.Add(new DealImageInfo { imageName = "", imageUrl = iimg.ToString(), frontImage = false }); } } foreach (DealImageInfo iinfo in imgs) { var iimgurl = FileSerivce.GetImgUrl(iinfo.imageUrl.ConvertTo <int>(0)); iinfo.imageUrl = iimgurl; } rbody.dealImageInfos = imgs; } if (list.Count > 0) { response.code = 200; response.describe = "success"; response.partnerId = int.Parse(agentinfo.mt_partnerId); response.totalSize = totalcount; //response.body = new List<DealResponseBody>(); response.body = list; } else { response.code = 300; response.describe = "获取deal为空"; } #endregion } else { response.code = 300; response.describe = "拉取方式(method:" + body.method + ")出错"; } } } catch (Exception ex) { response.code = 300; response.describe = "异常错误"; } string json = JsonConvert.SerializeObject(response); #region 把处理结果录入数据库 mlog.respstr = json; mlog.resptime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); mlog.code = response.code.ToString(); mlog.describe = response.describe; new Meituan_reqlogData().EditReqlog(mlog); #endregion return(json); }