Пример #1
0
        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);
        }
Пример #2
0
        ///     抓产品
        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);
        }