示例#1
0
        public string pnocode(int id)
        {
            string pno = "";

            if (id != 0)
            {
                //根据订单信息得到产品详情
                B2b_com_pro proo = new B2bComProData().GetProByOrderID(id);
                if (proo != null)
                {
                    int sourcetype = proo.Source_type;
                    if (sourcetype == 1)
                    {
                        //根据订单号得到电子码信息
                        B2b_eticket eticket = new B2bEticketData().SelectOrderid(id);
                        if (eticket != null)
                        {
                            pno = eticket.Pno;
                        }
                    }
                    if (sourcetype == 2)
                    {
                        B2b_order order = new B2bOrderData().GetOrderById(id);
                        pno = order.Pno;
                    }
                }
            }
            return(pno);
        }
示例#2
0
        internal DataSet DayJSListByPosId(string pos_id)
        {
            //判断验码日志表中是否含有pos未验证的记录(有,向当日结算表中录入新纪录,同时更改验码日志表中jsid;没有,返回null)
            var verifylogcount = DayJieSuanData.GetVerifyLogCount(pos_id);

            if (verifylogcount > 0)
            {
                B2b_dayjiesuan newdayjs = new B2b_dayjiesuan
                {
                    Id          = 0,
                    Jstime      = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                    Jsstartdate = new B2bEticketLogData().GetFrontNotJS() == null?DateTime.Parse("1900-01-01") : new B2bEticketLogData().GetFrontNotJS().Actiondate,  //得到未开始结算的记录
                                      Jsenddate = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd")),
                                      Com_id    = new B2bCompanyPosData().GetPosByPosId(pos_id).Id,
                                      PosId     = int.Parse(pos_id)
                };
                var JSid = new DayJieSuanData().InsertOrUpdate(newdayjs);

                //更改此次结算的电子票发码日志表中的关联jsid(当前pos 验码 状态成功 js=0即未结算过的)
                new B2bEticketLogData().ModifyJsidByPosId(JSid, pos_id);

                const string sqltxt = @"SELECT   
      [eticket_id] 
      ,COUNT(1) as TotalVerifyNum
      ,sum(use_pnum) as TotalConsumedNum
  FROM [EtownDB].[dbo].[b2b_etcket_log] where jsid=@jsid group by eticket_id";
                var          cmd    = this.sqlHelper.PrepareTextSqlCommand(sqltxt);
                cmd.AddParam("@jsid", JSid);

                using (var reader = cmd.ExecuteReader())
                {
                    DataTable  dt  = new DataTable("dayjs");
                    DataColumn dc1 = dt.Columns.Add("proname");
                    DataColumn dc2 = dt.Columns.Add("TotalConsumedNum");
                    DataColumn dc3 = dt.Columns.Add("e_face_price");
                    DataColumn dc4 = dt.Columns.Add("TotalVerifyNum");//验票笔数
                    DataRow    drr;

                    while (reader.Read())
                    {
                        drr                     = dt.NewRow();
                        drr["proname"]          = new B2bEticketData().GetEticketByID(reader.GetValue <int>("eticket_id").ToString()).E_proname;
                        drr["TotalConsumedNum"] = reader.GetValue <int>("TotalConsumedNum");
                        drr["TotalVerifyNum"]   = reader.GetValue <int>("TotalVerifyNum");
                        drr["e_face_price"]     = new B2bEticketData().GetEticketByID(reader.GetValue <int>("eticket_id").ToString()).E_face_price.ToString("f2");

                        dt.Rows.Add(drr);
                    }

                    DataSet ds = new DataSet();
                    ds.Tables.Add(dt);
                    return(ds);
                }
            }
            else
            {
                return(null);
            }
        }
示例#3
0
        /// <summary>
        /// 测试去哪消费通知
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button1_Click(object sender, EventArgs e)
        {
            string    pno         = TextBox1.Text.Trim();
            var       eticketinfo = new B2bEticketData().GetEticketDetail(pno);
            B2b_order ordermodel  = new B2bOrderData().GetOrderById(eticketinfo.Oid);

            EticketJsonData.AsyncSend_qunar(ordermodel);
        }
示例#4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            int order_no = Int32.Parse(Request.QueryString["out_trade_no"]);            //获取订单号
            //返回订单号
            int orderid = order_no;

            if (orderid != 0)
            {
                //根据订单id得到订单信息
                B2bOrderData dataorder     = new B2bOrderData();
                B2b_order    modelb2border = dataorder.GetOrderById(orderid);

                //根据产品id得到产品信息
                B2bComProData datapro     = new B2bComProData();
                B2b_com_pro   modelcompro = datapro.GetProById(modelb2border.Pro_id.ToString());


                //生成电子码
                int            u_num           = modelb2border.U_num;
                int            comid           = modelcompro.Com_id;
                RandomCodeData datarandomcode  = new RandomCodeData();
                RandomCode     modelrandomcode = datarandomcode.GetRandomCode();//得到未用随机码对象

                //设置取出的电子码状态为1(已使用)
                modelrandomcode.State = 1;
                int    randomcodeid = datarandomcode.InsertOrUpdate(modelrandomcode);
                string eticketcode  = "9" + comid.ToString() + modelrandomcode.Code.ToString();
                string sendstr      = "";

                //录入电子票列表
                B2bEticketData eticketdata = new B2bEticketData();
                B2b_eticket    eticket     = new B2b_eticket()
                {
                    Id           = 0,
                    Com_id       = comid,
                    Pro_id       = modelcompro.Id,
                    Agent_id     = 0,//直销
                    Pno          = eticketcode,
                    E_type       = (int)EticketCodeType.ShuZiMa,
                    Pnum         = modelb2border.U_num,
                    Use_pnum     = modelb2border.U_num,
                    E_proname    = modelcompro.Pro_name,
                    E_face_price = modelcompro.Face_price,
                    E_sale_price = modelcompro.Advise_price,
                    E_cost_price = modelcompro.Agentsettle_price,
                    V_state      = (int)EticketCodeStatus.NotValidate,
                    Send_state   = (int)EticketCodeSendStatus.NotSend,
                    Subdate      = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
                };
                int eticketid = eticketdata.InsertOrUpdate(eticket);
                if (eticketid > 0)
                {
                    //生成电子码短信,稍后可单独写类或写到数据库中
                    diveticketcode.InnerText = "电子码生成成功:" + eticketcode;
                    sendstr = "感谢您订购" + modelcompro.Pro_name + modelb2border.U_num + "张" + ",电子码:" + eticketcode + " 有效期至:" + modelcompro.Pro_end.ToString("yyyy-MM-dd");
                }
                else
                {
                    diveticketcode.InnerText = "电子码生成ERROR";
                }
            }
        }
示例#5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Request.ValidateInput();
            string u = Request.ServerVariables["HTTP_USER_AGENT"];

            //bool bo = detectmobilebrowser.HttpUserAgent(u);
            proclass = Request["proclass"].ConvertTo <int>(0);

            uid = Request["uid"].ConvertTo <int>(0);
            //获取IP地址
            uip = CommonFunc.GetRealIP();

            buyuid    = Request["buyuid"].ConvertTo <int>(0);
            tocomid   = Request["tocomid"].ConvertTo <int>(0);
            projectid = Request["id"].ConvertTo <int>(0);

            pno = Request["pno"].ConvertTo <string>("");

            string pno1 = EncryptionHelper.EticketPnoDES(pno, 1);//解密

            var B2bEticketdata = new B2bEticketData();
            var eticketinfo    = B2bEticketdata.GetEticketDetail(pno1);

            if (eticketinfo != null)
            {
                comid     = eticketinfo.Com_id;
                usepnonum = eticketinfo.Use_pnum;
            }


            if (comid == 0)
            {
                if (Domain_def.Domain_yanzheng(RequestUrl))//如果符合shop101.etown.cn的格式,则从多微信商户基本信息表中获取comid
                {
                    comid = Int32.Parse(Domain_def.Domain_Huoqu(RequestUrl));
                }
                else
                {
                    B2b_company_info companyinfo = B2bCompanyData.GetComId(RequestUrl);
                    if (companyinfo != null)
                    {
                        comid = companyinfo.Com_id;
                    }
                }
            }

            //微信转发访问归属渠道
            if (uid != 0)//必须记录转发用户信息才能继续统计
            {
                //判断有转发人的渠道
                var    crmdata       = new B2bCrmData();
                var    pro           = crmdata.Readuser(uid, comid);//读取转发人用户信息
                string zhuanfa_phone = "";
                if (pro != null)
                {
                    zhuanfa_phone = pro.Phone;
                }

                if (zhuanfa_phone != "")
                {                                                                                  //转发人手机存在
                    MemberChannelData channeldata = new MemberChannelData();
                    var channeinfo = channeldata.GetPhoneComIdChannelDetail(zhuanfa_phone, comid); //查询渠道
                    if (channeinfo != null)
                    {
                        //转发人渠道记录COOKI
                        HttpCookie cookie = new HttpCookie("ZF_ChanneId");     //实例化HttpCookie类并添加值
                        cookie.Value   = channeinfo.Id.ToString();
                        cookie.Expires = DateTime.Now.AddDays(120);
                        Response.Cookies.Add(cookie);
                    }
                }
            }


            //根据项目id得到项目信息
            if (projectid != 0)
            {
                B2b_com_project mod = new B2b_com_projectData().GetProject(projectid, comid);
                if (mod != null)
                {
                    projectname   = mod.Projectname;
                    projectimgurl = FileSerivce.GetImgUrl(mod.Projectimg);
                    projectbrief  = mod.Briefintroduce;
                }


                B2bComProData prodata1 = new B2bComProData();
                var           prohotel = prodata1.Selectpro_hotel(comid, projectid);
                if (prohotel == 1)
                {
                    // Response.Redirect("hotel/hotelshow.aspx?projectid=" + projectid + "&id=" + comid + "&uid =" + uid + "&buyuid=" + buyuid + "&tocomid=" + tocomid + " ");
                }
            }


            if (comid != 0)
            {
                B2b_company companyinfo = B2bCompanyData.GetCompany(comid);

                B2bCompanyInfoData info = new B2bCompanyInfoData();
                if (companyinfo != null)
                {
                    comName = companyinfo.Com_name;
                    if (comName.Length >= 9)
                    {
                        comName = comName.Substring(0, 9) + "..";
                    }

                    remark = info.GetCompanyInfo(comid).Scenic_intro + "&nbsp;&nbsp;<a style=\"color:#1a9ed9\" href=\"OrderinfoTitle.aspx?id=" + comid + "\">(查看全部)</a>";
                    if (remark.Length > 42)
                    {
                        remark = remark.Substring(0, 42) + "&nbsp;&nbsp;<a style=\"color:#1a9ed9\" href=\"OrderinfoTitle.aspx?id=" + comid + "\">(查看全部)</a>";
                    }


                    if (companyinfo.B2bcompanyinfo != null)
                    {
                        Wxfocus_url    = companyinfo.B2bcompanyinfo.Wxfocus_url;
                        Wxfocus_author = companyinfo.B2bcompanyinfo.Wxfocus_author;;
                    }
                }

                B2b_company_saleset saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString());
                if (saleset != null)
                {
                    if (saleset.Smalllogo != null && saleset.Smalllogo != "")
                    {
                        headPortraitImgSrc = FileSerivce.GetImgUrl(saleset.Smalllogo.ConvertTo <int>(0));
                    }
                }
            }


            //------------------------------新添加代码(主要目的就是获取微信号使用户处于登录状态以及判断用户转发时引发的微信号混乱问题)===========================

            string weixincode = Request["code"].ConvertTo <string>("");

            if (weixincode == "")//未认证微信
            {
                openid     = Request["openid"].ConvertTo <string>("");
                weixinpass = Request["weixinpass"].ConvertTo <string>("");
                int questtype = 1;                                   //1=一次性密码验证
                DealUserinfo1(openid, weixinpass, comid, questtype); //判断用户微信号(1,点击的转发链接进来的2,点击微信菜单进来的);使用户处于登录状态(不包括点击转发链接的)
            }
            else//已认证微信

            {
                int questtype = 2;                               //1=微信授权验证
                DealUserinfo1("", weixincode, comid, questtype); //获取微信号;使用户处于登录状态
            }
        }
示例#6
0
        public void AsyncSend(string updateurl, string pno, int confirmnum, string confirmtime, int agentcomid, int comidd1, int validateticketlogid)
        {
            Agent_asyncsendlog log = new Agent_asyncsendlog
            {
                Id                = 0,
                Pno               = pno,
                Num               = confirmnum,
                Sendtime          = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                Confirmtime       = DateTime.Parse(confirmtime),
                Issendsuc         = 0,//0失败;1成功
                Agentupdatestatus = (int)AgentUpdateStatus.Fail,
                Agentcomid        = agentcomid,
                Comid             = comidd1,
                Remark            = "",
                Issecondsend      = 0,
                Platform_req_seq  = (1000000000 + agentcomid).ToString() + DateTime.Now.ToString("yyyyMMddhhssmm") + CommonFunc.CreateNum(6),//请求流水号
                Request_content   = "",
                Response_content  = "",
                b2b_etcket_logid  = validateticketlogid
            };
            int inslog = new Agent_asyncsendlogData().EditLog(log);

            log.Id = inslog;
            try
            {
                //获得分销商信息
                Agent_company agentinfo = new AgentCompanyData().GetAgentCompany(agentcomid);
                if (agentinfo != null)
                {
                    string agent_updateurl = agentinfo.Agent_updateurl;

                    #region 糯米分销
                    if (agentinfo.Agent_type == (int)AgentCompanyType.NuoMi)//糯米分销
                    {
                        string re = new GetUrlData().HttpPost(updateurl, "");

                        XmlDocument doc  = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + re + "}");
                        XmlElement  root = doc.DocumentElement;
                        string      info = root.SelectSingleNode("info").InnerText;

                        //只要返回了数据,则是发送成功
                        log.Id               = inslog;
                        log.Issendsuc        = 1;
                        log.Request_content  = updateurl;
                        log.Response_content = re;

                        if (info == "success")
                        {
                            string errCode = root.SelectSingleNode("res/errCode").InnerText;//分销商更新结果
                            if (errCode == "0")
                            {
                                log.Agentupdatestatus = (int)AgentUpdateStatus.Suc;
                                new Agent_asyncsendlogData().EditLog(log);
                            }
                            else
                            {
                                log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                new Agent_asyncsendlogData().EditLog(log);
                            }
                        }
                        else
                        {
                            log.Remark            = info;
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                            new Agent_asyncsendlogData().EditLog(log);
                        }
                    }
                    #endregion
                    #region 一般分销
                    else //一般分销
                    {
                        var eticketinfo = new B2bEticketData().GetEticketDetail(pno);
                        if (eticketinfo == null)
                        {
                            log.Remark            = "获得电子票信息失败";//单引号替换为'',双引号不用处理;
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                            new Agent_asyncsendlogData().EditLog(log);
                            return;
                        }

                        //a订单:原分销向指定商户提交的订单;b订单:指定商户下的绑定分销向拥有产品的商户提交的订单
                        //电子票表中记录的Oid是b订单
                        //判断b订单 是否 属于某个a订单
                        B2b_order loldorder = new B2bOrderData().GetOldorderBybindingId(eticketinfo.Oid);
                        if (loldorder != null)
                        {
                            eticketinfo.Oid = loldorder.Id;
                        }

                        if (eticketinfo.Oid == 0)
                        {
                            log.Remark            = "电子票对应的订单号为0";//单引号替换为'',双引号不用处理;
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                            new Agent_asyncsendlogData().EditLog(log);
                            return;
                        }


                        /*根据订单号得到分销商订单请求记录(当前需要得到原订单请求流水号)*/
                        List <Agent_requestlog> listagent_rlog = new Agent_requestlogData().GetAgent_requestlogByOrdernum(eticketinfo.Oid.ToString(), "add_order", "1");
                        if (listagent_rlog == null)
                        {
                            log.Remark            = "根据订单号得到分销商订单请求记录失败";//单引号替换为'',双引号不用处理;
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                            new Agent_asyncsendlogData().EditLog(log);
                            return;
                        }
                        if (listagent_rlog.Count == 0)
                        {
                            log.Remark            = "根据订单号得到分销商订单请求记录失败.";//单引号替换为'',双引号不用处理;
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                            new Agent_asyncsendlogData().EditLog(log);
                            return;
                        }


                        /*验证通知发送内容*/
                        string sbuilder = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                                                        "<business_trans>" +
                                                        "<request_type>sync_order</request_type>" +  //<!--验证同步-->
                                                        "<req_seq>{0}</req_seq>" +                   //<!--原订单请求流水号-->
                                                        "<platform_req_seq>{1}</platform_req_seq>" + //<!--平台请求流水号-->
                                                        "<order>" +                                  //<!--订单信息-->
                                                        "<order_num>{2}</order_num>" +               //<!-- 订单号 y-->
                                                        "<num>{3}</num>" +                           //<!-- 使用张数 -->
                                                        "<use_time>{4}</use_time>" +                 //<!--  使用时间  -->
                                                        "</order>" +
                                                        "</business_trans>", listagent_rlog[0].Req_seq, log.Platform_req_seq, eticketinfo.Oid, confirmnum, ConvertDateTimeInt(DateTime.Parse(confirmtime)));

                        updateurl += "?xml=" + sbuilder;


                        string re = new GetUrlData().HttpPost(updateurl, "");

                        //只要返回了数据,则是发送成功
                        log.Id               = inslog;
                        log.Issendsuc        = 1;
                        log.Request_content  = updateurl;
                        log.Response_content = re;

                        log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理;
                        if (re.Length >= 7)
                        {
                            re = re.Substring(0, 7);
                        }
                        if (re == "success")
                        {
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Suc;
                            new Agent_asyncsendlogData().EditLog(log);
                        }
                        else
                        {
                            log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                            new Agent_asyncsendlogData().EditLog(log);
                        }
                    }
                    #endregion
                }
                else
                {
                    log.Remark            = "分销商获取失败";
                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                    new Agent_asyncsendlogData().EditLog(log);
                }
            }
            catch (Exception e)
            {
                log.Id     = inslog;
                log.Remark = e.Message.Replace("'", "''");//单引号替换为'',双引号不用处理
                new Agent_asyncsendlogData().EditLog(log);
            }
        }
示例#7
0
        //str4=电话,str7=预订热线

        protected void Page_Load(object sender, EventArgs e)
        {
            id = Request["orderid"].ConvertTo <int>(0);

            B2bOrderData orderdata = new B2bOrderData();
            var          orderinfo = orderdata.GetOrderById(id);

            if (orderinfo == null)
            {
                Response.Redirect("Order.aspx");//未查询到订单
                return;
            }
            //订单数量
            ordernum = orderinfo.U_num;
            subtime  = orderinfo.U_subdate;

            B2bEticketData eticketdata = new B2bEticketData();

            //已打印数量
            printnum   = eticketdata.AlreadyPrintNumbyOrderid(id);
            unprintnum = ordernum - printnum;


            B2bComProData prodate = new B2bComProData();
            var           proinfo = prodate.GetProById(orderinfo.Pro_id.ToString());

            if (proinfo != null)
            {
                comid_temp = proinfo.Com_id;
                proname    = proinfo.Pro_name;
                Face_price = proinfo.Face_price;
                pro_end    = proinfo.Pro_end.ToString("yyyy年MM月dd日");
                pro_start  = proinfo.Pro_start.ToString("yyyy年MM月dd日");
                Pro_Remark = "备注: " + proinfo.pro_note;

                B2b_com_projectData projectdate = new B2b_com_projectData();
                var projectinfo = projectdate.GetProject(proinfo.Projectid, proinfo.Com_id);
                if (projectinfo != null)
                {
                    address = "地址:" + projectinfo.Address;
                    mobile  = projectinfo.Mobile;
                    //proname = projectinfo.Projectname + proname;//不增加项目信息
                }

                if (orderinfo.Agentid != 0)
                {
                    var agentinfo = AgentCompanyData.GetAgentByid(orderinfo.Agentid);
                    if (agentinfo != null)
                    {
                        mobile       = agentinfo.Mobile;//读取分销电话
                        agentcompany = agentinfo.Company;
                    }
                }
            }
            B2b_company companyinfo = B2bCompanyData.GetAllComMsg(comid_temp);

            if (companyinfo != null)
            {
                company = companyinfo.Com_name;
            }

            if (Session["Agentid"] != null)
            {
                //账户信息
                Agentid = Int32.Parse(Session["Agentid"].ToString());
                Account = Session["Account"].ToString();

                if (Agentid != orderinfo.Agentid)
                {
                    //订单与分销不匹配
                    Response.Redirect("order.aspx");
                }


                Agent_company agenginfo = AgentCompanyData.GetAgentWarrant(Agentid, comid_temp);
                if (agenginfo != null)
                {
                    yufukuan     = "您预付款:" + agenginfo.Imprest.ToString("0.00") + " 元";
                    Warrant_type = agenginfo.Warrant_type;
                    if (Warrant_type == 1)
                    {
                        Warrant_type_str = "销售扣款";
                    }
                    if (Warrant_type == 2)
                    {
                        Warrant_type_str = "验证扣款";
                    }
                }
                else
                {
                    Response.Redirect("/Agent/Default.aspx");
                }
            }
        }
示例#8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            pno = Request["pno"].ConvertTo <string>("");

            if (pno != "")
            {
                string pno1 = EncryptionHelper.EticketPnoDES(pno, 1);//解密

                var prodata     = new B2bEticketData();
                var eticketinfo = prodata.GetEticketDetail(pno1);
                if (eticketinfo != null)
                {
                    comid = eticketinfo.Com_id;//重新设定最大数 不能大于可以预定数量
                    title = eticketinfo.E_proname;

                    //if (eticketinfo.V_state == 2) {
                    //    if (eticketinfo.sendcard == 0) {
                    //        err = 1;
                    //        errtext = "此电子票已验证,不可购买服务,请到窗口办理!";
                    //    }
                    //}


                    //if (eticketinfo.Pnum > 1) {
                    //    err = 1;
                    //    errtext = "此电子票不可购买服务,请到窗口办理!";
                    //}

                    var orderinfo = new B2bOrderData().GetOrderById(eticketinfo.Oid);
                    if (orderinfo != null)
                    {
                        u_phone = orderinfo.U_phone;
                        name    = orderinfo.U_name;
                    }



                    proid = eticketinfo.Pro_id;
                    B2b_com_pro pro = new B2bComProData().GetProById(proid.ToString());
                    if (pro != null)
                    {
                        if (pro.Rentserverid == "")
                        {
                            err     = 1;
                            errtext = "此产品不可购买服务!";
                        }
                    }
                    else
                    {
                        err     = 1;
                        errtext = "此产品不可购买服务!";
                    }
                }
                else
                {
                    err     = 1;
                    errtext = "此电子票不可用!";
                }
            }
            else
            {
                err     = 1;
                errtext = "此电子票不可用";
            }
        }
示例#9
0
        private string GetDealNoticeSend(Meituan_reqlog mlog)
        {
            var response = new MtpApiResponse();

            response.partnerId = agentinfo.mt_partnerId.ConvertTo <int>(0);
            try
            {
                var data = JsonConvert.DeserializeObject <MtpOrderRefundedMessageRequest>(_requestParam.Replace("operator", "operator1"));
                if (data.body == null)
                {
                    response.code     = 300;
                    response.describe = "Body数据解析失败";
                }
                else
                {
                    MtpOrderRefundedMessageRequestBody body = data.body;

                    /*
                     * 把电子票作废,数量清零
                     * 1.根据美团订单号得到系统订单号
                     * 2.根据系统订单号得到电子票
                     * 3.把电子票作废
                     */
                    int sysOrderid = new Meituan_reqlogData().GetSysorderidByMtorderid(body.orderId.ToString());
                    if (sysOrderid == 0)
                    {
                        //把这次操作计入日志文档中
                        LogHelper.RecordSelfLog("Error", "美团重要错误记录", "1--美团订单号:" + body.orderId + ",系统订单号:" + body.partnerOrderId + ",退款流水号:" + body.refundSerialNo + ",凭证码:" + String.Join(",", body.voucherList) + ",单张门票退款金额:" + body.refundPrice + ",已退款消息类型:" + body.refundMessageType + ",退款原因:" + body.reason + ",退款时间:" + body.refundTime + ",退款份数:" + body.count);
                    }
                    else
                    {
                        string pno = new SendEticketData().HuoQuEticketPno(sysOrderid);
                        if (pno == "")
                        {
                            //把这次操作计入日志文档中
                            LogHelper.RecordSelfLog("Error", "美团重要错误记录", "2--美团订单号:" + body.orderId + ",系统订单号:" + body.partnerOrderId + ",退款流水号:" + body.refundSerialNo + ",凭证码:" + String.Join(",", body.voucherList) + ",单张门票退款金额:" + body.refundPrice + ",已退款消息类型:" + body.refundMessageType + ",退款原因:" + body.reason + ",退款时间:" + body.refundTime + ",退款份数:" + body.count);
                        }
                        else
                        {
                            try
                            {
                                string[] pnoarr = pno.Split(',');
                                for (var i = 0; i < pnoarr.Length; i++)
                                {
                                    if (pnoarr[i] != "")
                                    {
                                        //清空电子票数量
                                        int r = new B2bEticketData().ClearPnoNum(pnoarr[i]);
                                    }
                                }
                            }
                            catch { }

                            //把这次操作计入日志文档中
                            LogHelper.RecordSelfLog("Error", "美团重要错误记录", "3--美团订单号:" + body.orderId + ",系统订单号:" + body.partnerOrderId + ",退款流水号:" + body.refundSerialNo + ",凭证码:" + String.Join(",", body.voucherList) + ",单张门票退款金额:" + body.refundPrice + ",已退款消息类型:" + body.refundMessageType + ",退款原因:" + body.reason + ",退款时间:" + body.refundTime + ",退款份数:" + body.count);
                        }
                    }
                }
                response.code      = 200;
                response.describe  = "successful";
                response.partnerId = int.Parse(agentinfo.mt_partnerId);
            }
            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);
        }
示例#10
0
        public bool iswxsubscribenum = false;    //是否是微信认证订阅号/订阅号

        protected void Page_Load(object sender, EventArgs e)
        {
            string u = Request.ServerVariables["HTTP_USER_AGENT"];

            bo = detectmobilebrowser.HttpUserAgent(u);


            proclass  = Request["proclass"].ConvertTo <int>(0);
            projectid = Request["projectid"].ConvertTo <int>(0);

            //string u = Request.ServerVariables["HTTP_USER_AGENT"];
            //bool bo = detectmobilebrowser.HttpUserAgent(u);

            id       = Request["id"].ConvertTo <int>(0);
            num      = Request["num"].ConvertTo <int>(1);
            nowdate  = DateTime.Now.ToString("yyyy-MM-dd");
            nowtoday = DateTime.Now;
            buyuid   = Request["buyuid"].ConvertTo <int>(0);
            tocomid  = Request["tocomid"].ConvertTo <int>(0);
            pno      = Request["pno"].ConvertTo <string>("");
            if (id != 0)
            {
                B2b_com_pro pro = new B2bComProData().GetProById(id.ToString());
                if (pro != null)
                {
                    isSetVisitDate = pro.isSetVisitDate;
                    // 作废超时未支付订单,完成回滚操作
                    int rs = new B2bComProData().CancelOvertimeOrder(pro);

                    if (pro.Source_type == 4)
                    {
                        iscanbook = 1;
                    }
                    else
                    {
                        iscanbook = new B2bComProData().IsYouxiao(pro.Id, pro.Server_type, pro.Pro_start, pro.Pro_end, pro.Pro_state);//判断产品是否有效:1.票务,直接判断有效期 和产品上线状态2.酒店,跟团游,当地游 则判断是否含有有效的房态/团期 以及产品上下线状态
                    }

                    //判断微信 是否是认证服务号
                    WeiXinBasic mbasic = new WeiXinBasicData().GetWxBasicByComId(pro.Com_id);
                    if (mbasic == null)
                    {
                        iswxsubscribenum = false;
                    }
                    else
                    {
                        if (mbasic.Weixintype == 1 || mbasic.Weixintype == 2)
                        {
                            iswxsubscribenum = true;
                        }
                        else
                        {
                            iswxsubscribenum = false;
                        }
                    }


                    pro_servertype = pro.Server_type;
                    pickuppoint    = pro.pickuppoint;
                    dropoffpoint   = pro.dropoffpoint;


                    childreduce = pro.Childreduce;
                    imgurl      = FileSerivce.GetImgUrl(pro.Imgurl);

                    //实物产品必须进入 新商城页面订购
                    if (pro.Server_type == 11)
                    {
                        Response.Redirect("/h5/order/pro.aspx?id=" + id);
                    }

                    face_price = pro.Face_price;

                    manyspeci = pro.Manyspeci;
                    //如果多规格读取规格
                    if (manyspeci == 1)
                    {
                        gglist = new B2b_com_pro_SpeciData().Getgglist(pro.Id);
                    }
                }
                if (pro.Ispanicbuy == 1)
                {
                    panic_begintime  = pro.Panic_begintime;
                    panicbuy_endtime = pro.Panicbuy_endtime;


                    TimeSpan tss = pro.Panic_begintime - nowtoday;
                    var      day = tss.Days * 24 * 3600;;  //这是相差的天数
                    var      h   = tss.Hours * 3600;       //这是相差的小时数,
                    var      m   = tss.Minutes * 60;
                    var      s   = tss.Seconds;
                    shijiacha = day + h + m + s;
                }
                projectid = pro.Projectid;
                comid     = pro.Com_id;
                pro_name  = pro.Pro_name;
                price     = pro.Advise_price.ToString();
                if (price == "0.00" || price == "0")
                {
                    price = "0";
                }
                else
                {
                    CommonFunc.OperTwoDecimal(price);
                    //price = price.IndexOf(".") != -1 ? price.Substring(0, price.IndexOf(".")) : price;
                }

                nowdate   = DateTime.Now.ToString("yyyy-MM-dd");
                summary   = "包含服务:" + pro.Service_Contain;
                sumaryend = summary;
                if (pro.Service_NotContain != "")
                {
                    sumaryend += "</br> 不包含服务:" + pro.Service_NotContain + "</br>";
                }
                if (pro.Precautions != "")
                {
                    sumaryend += "注意事项:" + pro.Precautions;
                }

                //如果服务类型是 票务;  则备注信息中 显示 电子码使用限制
                if (pro.Server_type == 1)
                {
                    if (pro.Iscanuseonsameday == 0)//电子码当天不可用
                    {
                        sumaryend = "此产品当天预订不可用<br>" + sumaryend;
                    }
                    if (pro.Iscanuseonsameday == 1)//电子码当天可用
                    {
                        sumaryend = "此产品当天预订可用<br>" + sumaryend;
                    }
                    if (pro.Iscanuseonsameday == 2)//电子码出票2小时内不可用
                    {
                        sumaryend = "此产品出票2小时内不可用<br>" + sumaryend;
                    }
                }
                if (summary.Length > 30)
                {
                    summary = summary.Substring(0, 30);
                }
                if (summary.Length > 150)
                {
                    summary = summary.Substring(0, 150) + "...";
                }
                remark  = pro.Pro_Remark;
                pro_num = pro.Pro_number;
                if (pro_num == 0)
                {
                    pro_max = 100;
                    pro_min = 1;
                }
                else
                {
                    pro_min = 1;
                    pro_max = pro_num;
                }


                if (pno != "")
                {
                    pro_max = 1;

                    string pno1 = EncryptionHelper.EticketPnoDES(pno, 1);//解密

                    var prodata     = new B2bEticketData();
                    var eticketinfo = prodata.GetEticketDetail(pno1);
                    if (eticketinfo != null)
                    {
                        Use_pnum = eticketinfo.Use_pnum;//重新设定最大数 不能大于可以预定数量

                        bindingname  = eticketinfo.bindingname;
                        bindingphone = eticketinfo.bindingphone;
                        bindingcard  = eticketinfo.bindingcard;
                    }


                    //查询绑定状态
                    var busbindingdata = new Bus_FeeticketData();
                    var busbindinginfo = busbindingdata.Bus_Feeticket_proById(0, 0, id, pno1);
                    if (busbindinginfo != null)
                    {
                        limitweek       = busbindinginfo.limitweek;
                        limitweekdaynum = busbindinginfo.limitweekdaynum;
                        limitweekendnum = busbindinginfo.limitweekendnum;

                        if (busbindinginfo.Busid != 0)
                        {
                            var busfeetticketinfo = busbindingdata.GetBus_FeeticketById(busbindinginfo.Busid, eticketinfo.Com_id);
                            if (busfeetticketinfo != null)
                            {
                                Iuse = busfeetticketinfo.Iuse;
                            }
                        }
                    }

                    //如果不是限制个人使用 则 最大限购数不为 电子票剩余使用量
                    if (Iuse == 0)
                    {
                        pro_max = Use_pnum;
                    }
                }



                if (pro.Server_type == 1)
                {
                    pro_explain = pro.Pro_explain;
                }

                #region 产品有效期判定(微信模板--门票订单预订成功通知 中也有用到)
                provalidatemethod = pro.ProValidateMethod; //判断 1按产品有效期,2指定有效期
                appointdate       = pro.Appointdata;       //1=一星期,,2=1个月,3=3个月,4=6个月,5=一年
                iscanuseonsameday = pro.Iscanuseonsameday; //1当天可用,0当天不可用

                DateTime pro_end = pro.Pro_end;
                //返回有效期
                pro_youxiaoqi = new B2bComProData().GetPro_Youxiaoqi(pro.Pro_start, pro.Pro_end, provalidatemethod, appointdate, iscanuseonsameday);

                #endregion



                var commodel = B2bCompanyData.GetCompany(comid);

                if (commodel != null)
                {
                    if (commodel.B2bcompanyinfo != null)
                    {
                        Wxfocus_url    = commodel.B2bcompanyinfo.Wxfocus_url;
                        Wxfocus_author = commodel.B2bcompanyinfo.Wxfocus_author;
                        weixinname     = commodel.B2bcompanyinfo.Weixinname;
                        Scenic_intro   = commodel.B2bcompanyinfo.Scenic_intro;
                    }

                    title = commodel.Com_name;
                }


                B2b_company_saleset procom = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString());
                if (procom != null)
                {
                    comlogo = FileSerivce.GetImgUrl(procom.Smalllogo.ConvertTo <int>(0));
                    logoimg = comlogo;
                }


                var saleset = B2bCompanySaleSetData.GetDirectSellByComid(comid.ToString());
                if (saleset != null)
                {
                    phone = saleset.Service_Phone;
                }

                //查询项目电话,如果有项目电话调取项目电话
                var projectdata  = new B2b_com_projectData();
                var projectmodel = projectdata.GetProject(projectid, comid);
                if (projectmodel != null)
                {
                    if (projectmodel.Mobile != "")
                    {
                        phone = projectmodel.Mobile;
                    }
                }



                //从cookie中得到微信号
                if (Request.Cookies["openid"] != null)
                {
                    openid = Request.Cookies["openid"].Value;
                }
                B2bCrmData b2b_crm = new B2bCrmData();
                if (openid != "")
                {
                    B2b_crm b2bmodle = b2b_crm.b2b_crmH5(openid, comid);
                    if (b2bmodle != null)
                    {
                        Imprest  = b2bmodle.Imprest;
                        Integral = b2bmodle.Integral;
                    }
                }
            }
        }
示例#11
0
        public string AsyncSend(Agent_asyncsendlog log1)
        {
            lock (lockobj)
            {
                Agent_asyncsendlog log = new Agent_asyncsendlog
                {
                    Id                = 0,
                    Pno               = log1.Pno,
                    Num               = log1.Num,
                    Sendtime          = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                    Confirmtime       = log1.Confirmtime,
                    Issendsuc         = 0,//0失败;1成功
                    Agentupdatestatus = (int)AgentUpdateStatus.Fail,
                    Agentcomid        = log1.Agentcomid,
                    Comid             = log1.Comid,
                    Remark            = "",
                    Issecondsend      = 1,
                    Platform_req_seq  = log1.Platform_req_seq,//平台流水号,同一次验证的平台流水号相同,分销商根据平台流水号判断是否是同一次验证
                    Request_content   = "",
                    Response_content  = "",
                    b2b_etcket_logid  = log1.b2b_etcket_logid
                };
                int inslog = new Agent_asyncsendlogData().EditLog(log);
                log.Id = inslog;
                try
                {
                    var eticketinfo = new B2bEticketData().GetEticketDetail(log1.Pno);
                    if (eticketinfo.Agent_id > 0)//分销商电子票,需要发送验证同步请求
                    {
                        //获得分销商信息
                        Agent_company agentinfo = new AgentCompanyData().GetAgentCompany(log1.Agentcomid);
                        if (agentinfo != null)
                        {
                            string agent_updateurl = agentinfo.Agent_updateurl;
                            #region 糯米分销
                            if (agentinfo.Agent_type == (int)AgentCompanyType.NuoMi)//糯米分销
                            {
                                //查询站外码状态
                                string username    = agentinfo.Agent_auth_username; //百度糯米用户名
                                string token       = agentinfo.Agent_auth_token;    //百度糯米token
                                string code        = eticketinfo.Pno;               //券码
                                string bindcomname = agentinfo.Agent_bindcomname;   //供应商名称

                                string updateurl = agent_updateurl + "?auth={\"userName\":\"" + username + "\",\"token\":\"" + token + "\"}&code=" + code + "&userName="******"&dealId=&phone=";;


                                string re = new GetUrlData().HttpPost(updateurl, "");

                                XmlDocument doc  = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + re + "}");
                                XmlElement  root = doc.DocumentElement;
                                string      info = root.SelectSingleNode("info").InnerText;

                                //只要返回了数据,则是发送成功
                                log.Id               = inslog;
                                log.Issendsuc        = 1;
                                log.Request_content  = updateurl;
                                log.Response_content = re;

                                if (info == "success")
                                {
                                    string errCode = root.SelectSingleNode("res/errCode").InnerText;//分销商更新结果
                                    if (errCode == "0")
                                    {
                                        log.Agentupdatestatus = (int)AgentUpdateStatus.Suc;
                                        new Agent_asyncsendlogData().EditLog(log);

                                        return("糯米成功");
                                    }
                                    else
                                    {
                                        log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                        new Agent_asyncsendlogData().EditLog(log);

                                        return("糯米失败:" + log.Agentupdatestatus);
                                    }
                                }
                                else
                                {
                                    log.Remark            = info;
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                    new Agent_asyncsendlogData().EditLog(log);

                                    return("糯米失败:" + log.Remark);
                                }
                            }
                            #endregion
                            #region 一般分销推送验证同步请求
                            else
                            {
                                //一般分销推送验证同步请求

                                if (agent_updateurl.Trim() == "" || agentinfo.Inter_deskey == "")
                                {
                                    log.Remark            = "分销商验证同步通知或秘钥没提供";//单引号替换为'',双引号不用处理;
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                    new Agent_asyncsendlogData().EditLog(log);
                                    return(log.Remark);
                                }

                                if (eticketinfo.Oid == 0)
                                {
                                    log.Remark            = "电子票对应的订单号为0";//单引号替换为'',双引号不用处理;
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                    new Agent_asyncsendlogData().EditLog(log);
                                    return(log.Remark);
                                }

                                //a订单:原分销向指定商户提交的订单;b订单:指定商户下的绑定分销向拥有产品的商户提交的订单
                                //电子票表中记录的Oid是b订单
                                //判断b订单 是否 属于某个a订单
                                B2b_order loldorder = new B2bOrderData().GetOldorderBybindingId(eticketinfo.Oid);
                                if (loldorder != null)
                                {
                                    eticketinfo.Oid = loldorder.Id;
                                }
                                /*根据订单号得到分销商订单请求记录(当前需要得到原订单请求流水号)*/
                                List <Agent_requestlog> listagent_rlog = new Agent_requestlogData().GetAgent_requestlogByOrdernum(eticketinfo.Oid.ToString(), "add_order", "1");
                                if (listagent_rlog == null)
                                {
                                    log.Remark            = "根据订单号得到分销商订单请求记录失败";//单引号替换为'',双引号不用处理;
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                    new Agent_asyncsendlogData().EditLog(log);
                                    return(log.Remark);
                                }

                                if (listagent_rlog.Count == 0)
                                {
                                    log.Remark            = "根据订单号得到分销商订单请求记录失败.";//单引号替换为'',双引号不用处理;
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                    new Agent_asyncsendlogData().EditLog(log);
                                    return(log.Remark);
                                }


                                /*验证通知发送内容*/
                                string sbuilder = string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                                                                "<business_trans>" +
                                                                "<request_type>sync_order</request_type>" +  //<!--验证同步-->
                                                                "<req_seq>{0}</req_seq>" +                   //<!--原订单请求流水号-->
                                                                "<platform_req_seq>{1}</platform_req_seq>" + //<!--平台请求流水号-->
                                                                "<order>" +                                  //<!--订单信息-->
                                                                "<order_num>{2}</order_num>" +               //<!-- 订单号 y-->
                                                                "<num>{3}</num>" +                           //<!-- 使用张数 -->
                                                                "<use_time>{4}</use_time>" +                 //<!--  使用时间  -->
                                                                "</order>" +
                                                                "</business_trans>", listagent_rlog[0].Req_seq, log.Platform_req_seq, eticketinfo.Oid, log.Num, ConvertDateTimeInt(log.Confirmtime));

                                string updateurl = agent_updateurl + "?xml=" + sbuilder;


                                string re = new GetUrlData().HttpPost(updateurl, "");

                                //只要返回了数据,则是发送成功
                                log.Id               = inslog;
                                log.Issendsuc        = 1;
                                log.Request_content  = updateurl;
                                log.Response_content = re;

                                log.Remark = re.Replace("'", "''");//单引号替换为'',双引号不用处理;
                                if (re.Length >= 7)
                                {
                                    re = re.Substring(0, 7);
                                }
                                if (re == "success")
                                {
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Suc;
                                    new Agent_asyncsendlogData().EditLog(log);

                                    return("成功");
                                }
                                else
                                {
                                    log.Agentupdatestatus = (int)AgentUpdateStatus.Fail;
                                    new Agent_asyncsendlogData().EditLog(log);

                                    return(re);
                                }
                            }
                            #endregion
                        }
                        else
                        {
                            return("分销商信息获取失败");
                        }
                    }
                    else
                    {
                        return("直销订单无需发送验证通知");
                    }
                }
                catch (Exception e)
                {
                    log.Id     = inslog;
                    log.Remark = e.Message.Replace("'", "''");//单引号替换为'',双引号不用处理
                    new Agent_asyncsendlogData().EditLog(log);

                    return(log.Remark);
                }
            }
        }
示例#12
0
        ///     产品查询
        public string Getorderquery(Meituan_reqlog mlog)
        {
            var response = new OrderQueryResponse();

            response.partnerId = int.Parse(agentinfo.mt_partnerId);
            try
            {
                var data = JsonConvert.DeserializeObject <OrderQueryRequest>(_requestParam);
                if (data.body == null)
                {
                    response.code     = 399;
                    response.describe = "Body数据解析失败";
                    return(EditMTlog_Err(response, mlog));
                }
                else
                {
                    OrderQueryRequestBody body = data.body;

                    string mtorderid = body.orderId.ToString();
                    //如果合作商订单Id不存在,则查询美团订单创建日志
                    if (body.partnerOrderId == "")
                    {
                        Meituan_reqlog mtOrderCrateSucLog = new Meituan_reqlogData().GetMtOrderCrateLogByMtorder(body.orderId.ToString(), "200");
                        body.partnerOrderId = mtOrderCrateSucLog.ordernum;
                    }
                    string ordernum = body.partnerOrderId;

                    mlog.mtorderid = mtorderid;
                    mlog.ordernum  = ordernum;


                    int organization = agentinfo.Id;

                    //判断分销商查询订单是否是 自己发送的接口订单
                    Agent_requestlog mrequestlogg = new Agent_requestlogData().GetAgent_addorderlogByReq_seq(organization.ToString(), mtorderid);
                    if (mrequestlogg == null)
                    {
                        response.code     = 301;
                        response.describe = "当前查询的订单不存在";
                        return(EditMTlog_Err(response, mlog));
                    }
                    if (mrequestlogg.Is_dealsuc == 0)
                    {
                        response.code     = 301;
                        response.describe = "当前查询的订单不存在";
                        return(EditMTlog_Err(response, mlog));
                    }
                    if (mtorderid.Trim() == "")
                    {
                        response.code     = 301;
                        response.describe = "美团订单号 不可为空";
                        return(EditMTlog_Err(response, mlog));
                    }

                    B2b_order morder = new B2bOrderData().GetOrderByAgentRequestReqSeq(mtorderid);
                    if (morder != null)
                    {
                        if (morder.Pro_id > 0)
                        {
                            B2b_com_pro pro = new B2bComProData().GetProById(morder.Pro_id.ToString());
                            if (pro == null)
                            {
                                response.code     = 399;
                                response.describe = "产品不存在";
                                return(EditMTlog_Err(response, mlog));
                            }
                            else
                            {
                                #region 主要用途 判断是否是商家自己产品,如果为外来接口产品,暂时不售卖
                                //判断产品码来源 (4分销倒过来的产品 1系统自动生成产品  2倒码产品 判断分销是否是 自己发码;3外来接口产品暂时不售卖)
                                int prosourtype = pro.Source_type;
                                //if (prosourtype == 3)//外来接口产品,暂时只有阳光接口产品(需要手机号)
                                //{
                                //    //暂时只售卖商家自己产品,主要是产品有效期 需要另外通过外部接口获取,过于麻烦
                                //    response.code = 301;
                                //    response.describe = "暂时只可查询商家自己产品";
                                //    return EditMTlog_Err(response, mlog);

                                //}
                                if (prosourtype == 4)                                                              //分销导入产品;
                                {
                                    int old_proid = new B2bComProData().GetOldproidById(morder.Pro_id.ToString()); //绑定产品的原始编号
                                    if (old_proid == 0)
                                    {
                                        response.code     = 399;
                                        response.describe = "分销导入产品的原始产品编号没有查到";
                                        return(EditMTlog_Err(response, mlog));
                                    }
                                    else
                                    {
                                        prosourtype = new B2bComProData().GetProSource_typeById(old_proid.ToString());
                                        //if (prosourtype == 3)
                                        //{
                                        //    //暂时只售卖商家自己产品,主要是产品有效期 需要另外通过外部接口获取,过于麻烦
                                        //    response.code = 300;
                                        //    response.describe = "暂时只可查询商家自己产品";
                                        //    return EditMTlog_Err(response, mlog);

                                        //}
                                    }
                                }
                                #endregion

                                #region 产品有效期
                                //经过以上赋值prosourtype,只可能2个值:1系统自动生成码产品;2倒码产品
                                DateTime pro_start = pro.Pro_start;
                                DateTime pro_end   = pro.Pro_end;
                                if (prosourtype == 2) //倒码产品
                                {
                                }
                                if (prosourtype == 1) //系统自动生成码产品
                                {
                                    #region 产品有效期判定(微信模板--门票订单预订成功通知 中也有用到)
                                    string provalidatemethod = pro.ProValidateMethod;
                                    int    appointdate       = pro.Appointdata;
                                    int    iscanuseonsameday = pro.Iscanuseonsameday;

                                    //DateTime pro_end = modelcompro.Pro_end;
                                    if (provalidatemethod == "2")//按指定有效期
                                    {
                                        if (appointdate == (int)ProAppointdata.NotAppoint)
                                        {
                                        }
                                        else if (appointdate == (int)ProAppointdata.OneWeek)
                                        {
                                            pro_end = DateTime.Now.AddDays(7);
                                        }
                                        else if (appointdate == (int)ProAppointdata.OneMonth)
                                        {
                                            pro_end = DateTime.Now.AddMonths(1);
                                        }
                                        else if (appointdate == (int)ProAppointdata.ThreeMonth)
                                        {
                                            pro_end = DateTime.Now.AddMonths(3);
                                        }
                                        else if (appointdate == (int)ProAppointdata.SixMonth)
                                        {
                                            pro_end = DateTime.Now.AddMonths(6);
                                        }
                                        else if (appointdate == (int)ProAppointdata.OneYear)
                                        {
                                            pro_end = DateTime.Now.AddYears(1);
                                        }

                                        //如果指定有效期大于产品有效期,则按产品有效期
                                        if (pro_end > pro.Pro_end)
                                        {
                                            pro_end = pro.Pro_end;
                                        }
                                    }
                                    else //按产品有效期
                                    {
                                        pro_end = pro.Pro_end;
                                    }

                                    //DateTime pro_start = modelcompro.Pro_start;
                                    DateTime nowday = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd"));
                                    if (iscanuseonsameday == 1) //当天可用
                                    {
                                        if (nowday < pro_start) //当天日期小于产品起始日期
                                        {
                                            pro_start = pro.Pro_start;
                                        }
                                        else
                                        {
                                            pro_start = nowday;
                                        }
                                    }
                                    else //当天不可用
                                    {
                                        if (nowday < pro_start)//当天日期小于产品起始日期
                                        {
                                            pro_start = pro.Pro_start;
                                        }
                                        else
                                        {
                                            pro_start = nowday.AddDays(1);
                                        }
                                    }
                                    #endregion
                                }
                                #endregion

                                #region  购买数量   可使用数量  使用数量 退票数量 出票时间 电子票号(列表)

                                string all_pno     = ""; //全部电子码
                                string keyong_pno  = ""; //可用电子码
                                string add_time    = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss");
                                int    buy_num     = 0;
                                int    keyong_num  = 0;
                                int    consume_num = 0;
                                int    tuipiao_num = morder.Cancelnum;

                                if (prosourtype == 1)//系统自动生成码产品
                                {
                                    int noworderid = morder.Id;
                                    //判断是否含有绑定订单
                                    if (morder.Bindingagentorderid > 0)
                                    {
                                        noworderid = morder.Bindingagentorderid;
                                    }

                                    //根据订单号得到电子票信息
                                    List <B2b_eticket> meticketlist = new B2bEticketData().GetEticketListByOrderid(noworderid);
                                    if (meticketlist == null)
                                    {
                                        response.code     = 302;
                                        response.describe = "根据订单号查询电子票信息失败";
                                        return(EditMTlog_Err(response, mlog));
                                    }
                                    else
                                    {
                                        if (meticketlist.Count == 0)
                                        {
                                            response.code     = 302;
                                            response.describe = "根据订单号查询电子票信息失败";
                                            return(EditMTlog_Err(response, mlog));
                                        }
                                        else
                                        {
                                            foreach (B2b_eticket meticket in meticketlist)
                                            {
                                                if (meticket != null)
                                                {
                                                    buy_num     += meticket.Pnum;
                                                    keyong_num  += meticket.Use_pnum;
                                                    consume_num += meticket.Pnum - meticket.Use_pnum;
                                                    all_pno     += meticket.Pno + ",";
                                                    if (meticket.Use_pnum > 0)
                                                    {
                                                        keyong_pno += meticket.Pno + ",";
                                                    }
                                                }
                                            }
                                            if (all_pno.Length > 0)
                                            {
                                                all_pno = all_pno.Substring(0, all_pno.Length - 1);
                                            }
                                            if (keyong_pno.Length > 0)
                                            {
                                                keyong_pno = keyong_pno.Substring(0, keyong_pno.Length - 1);
                                            }
                                        }
                                    }
                                }
                                else if (prosourtype == 3)
                                {
                                    if (pro.Serviceid == 4)
                                    { //如果是接口产品
                                        B2b_company commanage = B2bCompanyData.GetAllComMsg(pro.Com_id);
                                        WlGetProInfoDealRequestData wldata = new WlGetProInfoDealRequestData(commanage.B2bcompanyinfo.wl_PartnerId, commanage.B2bcompanyinfo.wl_userkey);
                                        var wlorderinfo = wldata.SearchWlOrderData(pro.Com_id, 0, "", morder.Id);
                                        if (wlorderinfo != null)
                                        {
                                            all_pno     = wlorderinfo.vouchers;
                                            buy_num     = wlorderinfo.quantity;
                                            keyong_num  = wlorderinfo.quantity - wlorderinfo.usedQuantity;
                                            consume_num = wlorderinfo.usedQuantity;;
                                        }
                                    }
                                }


                                else //倒码产品
                                {
                                }
                                #endregion

                                #region 实名制类型 真是姓名 状态
                                string real_name_type = pro.Realnametype.ToString();
                                string real_name      = morder.U_name;
                                string statusdesc     = EnumUtils.GetName((OrderStatus)morder.Order_state);
                                #endregion


                                #region 手机号 根据订单号得到 分销商发送接口请求记录
                                string           mobile      = "";
                                Agent_requestlog mrequestlog = new Agent_requestlogData().GetAgent_addorderlogByOrderId(morder.Id.ToString(), 1);
                                if (mrequestlog == null)
                                {
                                    response.code     = 399;
                                    response.describe = "根据订单号获得分销商接口发送请求记录失败";
                                    return(EditMTlog_Err(response, mlog));
                                }
                                #endregion


                                int orderstate = morder.Order_state;
                                //
                                int mt_orderstatus = (int)Meituan_orderStatus.CreateFail;
                                if (orderstate == (int)OrderStatus.HasSendCode)
                                {
                                    mt_orderstatus = (int)Meituan_orderStatus.CreateSuc;
                                }
                                else if (orderstate == (int)OrderStatus.HasUsed)
                                {
                                    mt_orderstatus = (int)Meituan_orderStatus.PaySuc;
                                }
                                else
                                {
                                    if (orderstate == (int)PayStatus.HasPay)
                                    {
                                        mt_orderstatus = (int)Meituan_orderStatus.PaySuc;
                                    }
                                    if (orderstate == (int)PayStatus.NotPay)
                                    {
                                        mt_orderstatus = (int)Meituan_orderStatus.PayFailed;
                                    }
                                    if (orderstate == (int)PayStatus.WaitPay)
                                    {
                                        mt_orderstatus = (int)Meituan_orderStatus.Paying;
                                    }
                                }


                                response.code     = 200;
                                response.describe = "success";


                                /************现在只有一单一码的情况************
                                 * required	凭证状态	见映射表<凭证码状态>
                                 *  0	未使用
                                 * 1	已使用
                                 * 2	已退款
                                 * 3	已废弃 对应的门票还未消费,但是此凭证码作废了
                                 * ************************/
                                List <Voucher> voucherlist = new List <Voucher>();

                                //电子票未使用
                                if (keyong_num == buy_num)
                                {
                                    Voucher vou = new Voucher
                                    {
                                        voucher            = all_pno,
                                        voucherPics        = "",
                                        voucherInvalidTime = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss"),
                                        quantity           = keyong_num,
                                        status             = 0
                                    };
                                    voucherlist.Add(vou);
                                }
                                else
                                {
                                    //电子票已使用
                                    if (tuipiao_num == 0)
                                    {
                                        string yanzhengtime = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss");
                                        //得到电子票最近的一条验证成功日志
                                        B2b_eticket_log lastyanzhengsuclog = new B2bEticketLogData().GetlastyanzhengsuclogByPno(all_pno);
                                        if (lastyanzhengsuclog != null)
                                        {
                                            yanzhengtime = lastyanzhengsuclog.Actiondate.ToString("yyyy-MM-dd HH:mm:ss");
                                        }
                                        Voucher vou = new Voucher
                                        {
                                            voucher            = all_pno,
                                            voucherPics        = "",
                                            voucherInvalidTime = morder.U_subdate.ToString("yyyy-MM-dd HH:mm:ss"),
                                            quantity           = consume_num,
                                            status             = 1
                                        };
                                        voucherlist.Add(vou);
                                    }
                                    else
                                    {
                                        //电子票退票
                                        if (tuipiao_num != buy_num)
                                        {
                                            Voucher vou = new Voucher
                                            {
                                                voucher            = all_pno,
                                                voucherPics        = "",
                                                voucherInvalidTime = morder.Backtickettime.ToString("yyyy-MM-dd HH:mm:ss"),
                                                quantity           = keyong_num,
                                                status             = 2
                                            };
                                            voucherlist.Add(vou);
                                        }
                                        //电子票废弃
                                        else
                                        {
                                            Voucher vou = new Voucher
                                            {
                                                voucher            = all_pno,
                                                voucherPics        = "",
                                                voucherInvalidTime = morder.Backtickettime.ToString("yyyy-MM-dd HH:mm:ss"),
                                                quantity           = keyong_num,
                                                status             = 3
                                            };
                                            voucherlist.Add(vou);
                                        }
                                    }
                                }



                                response.body = new OrderQueryResponseBody
                                {
                                    orderId          = body.orderId,
                                    partnerOrderId   = body.partnerOrderId,
                                    orderStatus      = mt_orderstatus,
                                    orderQuantity    = morder.U_num,
                                    usedQuantity     = (consume_num - morder.Cancelnum),
                                    refundedQuantity = morder.Cancelnum,
                                    voucherType      = 2,
                                    voucherList      = voucherlist
                                };

                                return(EditMTlog_Err(response, mlog));
                            }
                        }
                        else
                        {
                            response.code     = 301;
                            response.describe = "订单中产品不存在";

                            return(EditMTlog_Err(response, mlog));
                        }
                    }
                    else
                    {
                        response.code     = 301;
                        response.describe = "订单不存在";

                        return(EditMTlog_Err(response, mlog));
                    }
                }
            }
            catch (Exception ex)
            {
                response.code     = 399;
                response.describe = "异常错误";

                return(EditMTlog_Err(response, mlog));
            }
        }