예제 #1
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string sigNames = SellersBLL.GetSignName(Users.Nick);
            string sigName  = "【" + SellersBLL.GetSignName(Users.Nick) + "】";
            //string sigName = "【澄腾科技01】";
            HttpFileCollection files = context.Request.Files;

            if (files.Count > 0)
            {
                HttpPostedFile file       = files[0];
                string[]       noWenmings = new string[] { "傻逼", "草", "靠", "黄片", "尼玛", "你妈", "屌丝", "逗比", "你妹", "装逼", "妈蛋", "逼格", "撕逼"
                                                           , "滚粗", "蛋疼", "婊砸", "跪舔", "婊", "碧池", "土肥圆", "矮穷挫" };
                string content = context.Request.QueryString["msgContent"];
                for (int s = 0; s < noWenmings.Length - 1; s++)
                {
                    if (content.IndexOf(noWenmings[s]) > 0)
                    {
                        context.Response.Write("6");
                        HttpContext.Current.ApplicationInstance.CompleteRequest();
                        return;
                    }
                }
                List <string> phones = new List <string>();
                if (!String.IsNullOrEmpty(file.FileName))
                {
                    #region 文件上传
                    //文件扩展名
                    string fileExtend = "";
                    string filePath   = "";
                    //文件大小
                    int fileSize = 0;
                    filePath = file.FileName.ToLower().Trim();
                    //取得上传前的文件(存在于客户端)的文件或文件夹的名称
                    string[] names = filePath.Split('\\');
                    //取得文件名
                    string name = names[names.Length - 1];
                    //获得服务器端的根目录
                    string serverPath = context.Server.MapPath("~/SellerReport");
                    //判断是否有该目录
                    if (!Directory.Exists(serverPath))
                    {
                        Directory.CreateDirectory(serverPath);
                    }
                    filePath = serverPath + "\\" + name;
                    var fileImprtPath = serverPath + "\\";
                    //如果存在,删除文件
                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }
                    // 上传文件
                    file.SaveAs(filePath);
                    //得到扩展名
                    fileExtend = filePath.Substring(filePath.LastIndexOf("."));
                    if (fileExtend != ".txt" && fileExtend != ".csv")
                    {
                        context.Response.Write("1");
                        context.Response.End();
                    }


                    #endregion
                    // 获得给卖家设置的发送百分之几
                    int       i         = 100;
                    DataTable dtPrecent = MsgBLL.GetSellerMsgSendPrecent(Users.Nick);
                    if (dtPrecent == null || dtPrecent.Rows.Count == 0 || dtPrecent.Rows[0]["sendPrecent"] == DBNull.Value)
                    {
                        i = 100;
                    }
                    else
                    {
                        try
                        {
                            i = Convert.ToInt32(dtPrecent.Rows[0]["sendPrecent"]);
                        }
                        catch (Exception es)
                        {
                            i = 100;
                        }
                    }
                    //短信发送开始记录
                    msgSendingBLL.update(Users.Nick, 1);

                    //CSV格式
                    if (fileExtend == ".csv")
                    {
                        System.IO.FileInfo f   = new FileInfo(filePath);
                        CSVHelper          obj = new CSVHelper(serverPath + "\\", name);
                        DataTable          tb  = obj.Read();
                        //将订单交易信息写入到DB,同时更新买家表信息
                        if (tb != null && tb.Rows.Count > 0)
                        {
                            float ftemp = (float)i / 100;
                            //可以发送的短信条数
                            int cansendCount = Convert.ToInt32(tb.Rows.Count * ftemp);
                            int sendedCount  = 1;
                            for (int t = 0; t < tb.Rows.Count; t++)
                            {
                                string cellPhone = tb.Rows[t]["联系手机"].ToString();
                                if (string.IsNullOrEmpty(cellPhone) == true)
                                {
                                    continue;
                                }
                                string num_char = cellPhone.Substring(0, 1);
                                if (Utility.IsINT(num_char) == false)
                                {
                                    cellPhone = cellPhone.Substring(1, cellPhone.Length - 1);
                                }
                                if (phones.Contains(cellPhone) || cellPhone == "")
                                {
                                    continue;
                                }
                                cellPhone = cellPhone.Replace("\'", "");
                                phones.Add(cellPhone);
                                try
                                {
                                    //判断手机
                                    if (Utility.IsCellPhone(cellPhone.Replace("\'", "")))
                                    {
                                        //if(true)
                                        if (MsgBLL.CheckSellerMsgStatus())
                                        {
                                            MsgSendHis objHis = new MsgSendHis();
                                            objHis.TransNumber = DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + cellPhone;    //手机号码 2016 yao c
                                            objHis.SellerNick  = Users.Nick;
                                            //objHis.SellerNick = "澄腾科技";
                                            objHis.Buyer_nick = "*****";
                                            objHis.CellPhone  = cellPhone;
                                            objHis.SendDate   = DateTime.Now;
                                            objHis.SendType   = "手工发送";
                                            objHis.SendStatus = "0";
                                            objHis.Count      = "1";
                                            //objHis.MsgContent = "【" + SellersBLL.GetSignName(Users.Nick) + "】" + txtContent.Text.Trim();// +"退订回T";
                                            objHis.MsgContent = sigName + content.Trim() + "退订回N";
                                            if (!Utility.IsYiDongCellPhoneNo(cellPhone))
                                            {
                                                objHis.HelpSellerNick = "电信联通";
                                            }
                                            else
                                            {
                                                objHis.HelpSellerNick = "移动";
                                            }
                                            //if (true) test
                                            if (SmartBLL.AddMsgSendHis(objHis))
                                            {
                                                try
                                                {
                                                    objHis.MsgContent = objHis.MsgContent.Replace(" ", "");
                                                    if (objHis.MsgContent.Length <= 70)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 1);
                                                    }
                                                    else if (objHis.MsgContent.Length > 70 && objHis.MsgContent.Length <= 134)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 2);
                                                    }
                                                    else if (objHis.MsgContent.Length > 134 && objHis.MsgContent.Length <= 195)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 3);
                                                    }
                                                    else if (objHis.MsgContent.Length > 195 && objHis.MsgContent.Length <= 260)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 4);
                                                    }

                                                    //File.AppendAllText(@"D:\log\1.txt", "sendedCount:" + t + " cansendCount:" + cansendCount + "\n");
                                                    if (t >= cansendCount)
                                                    {
                                                        SmartBLL.UpdateSendStatus("99", objHis.TransNumber);
                                                    }
                                                    else
                                                    {
                                                        string sendStatus = TBSendMSg.SendMsg(cellPhone, sigNames, objHis.MsgContent.Replace(sigName, ""));
                                                        //SendMsg(cellPhone, sigName, objHis.MsgContent.Trim());
                                                        if (!Utility.IsYiDongCellPhoneNo(cellPhone))
                                                        {
                                                            //string sendStatus = Mobile.PostDataToMyServer(cellPhone, objHis.MsgContent.Trim());//20160626 yao c
                                                            //IDictionary resultDic = TopUtils.ParseJson(sendStatus);
                                                            SmartBLL.UpdateSendStatus(sendStatus, objHis.TransNumber);
                                                        }
                                                        else
                                                        {
                                                            //string sendStatus = Mobile.SendMsgHubeiYDPost(cellPhone, objHis.MsgContent);//\r\n\r\n\r\n\r\n0
                                                            //sendStatus = sendStatus.Replace("\r", "").Replace("\n", "");
                                                            if (sendStatus.Equals("0"))
                                                            {
                                                                sendStatus = "100";
                                                            }
                                                            SmartBLL.UpdateSendStatus(sendStatus, objHis.TransNumber);
                                                        }
                                                    }
                                                }
                                                catch (Exception ex)
                                                {
                                                    continue;
                                                }
                                            }
                                        }
                                        else
                                        {
                                            context.Response.Write("3");    //余额不足
                                            //context.Response.End();//使用 Response.End方法,将出现 ThreadAbortException 异常。
                                            HttpContext.Current.ApplicationInstance.CompleteRequest();
                                            return;
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    continue;
                                }
                                sendedCount++;
                            }
                        }
                        //短信发送成功记录
                        msgSendingBLL.update(Users.Nick, 2, phones.Count);
                        context.Response.Write("2");
                        //context.Response.End();
                        HttpContext.Current.ApplicationInstance.CompleteRequest();
                    }
                    else if (fileExtend == ".txt")
                    {
                        using (StreamReader Sr = new StreamReader(filePath, true))
                        {
                            /*读取到的每行内容*/
                            string cellPhone1 = String.Empty;
                            while (Sr.EndOfStream != true)
                            {
                                cellPhone1 = Sr.ReadLine().Trim();
                                if (phones.Contains(cellPhone1) || cellPhone1 == "")
                                {
                                    continue;
                                }
                                cellPhone1 = cellPhone1.Replace("\'", "");
                                phones.Add(cellPhone1);
                            }
                            float ftemp = (float)i / 100;
                            //可以发送的短信条数
                            int cansendCount = Convert.ToInt32(phones.Count * ftemp);
                            int sendedCount  = 0;
                            #region 发短信
                            foreach (string cellPhone in phones)
                            {
                                int j = 0;
                                try
                                {
                                    //判断手机
                                    if (Utility.IsCellPhone(cellPhone))
                                    {
                                        if (MsgBLL.CheckSellerMsgStatus())
                                        {
                                            MsgSendHis objHis = new MsgSendHis();
                                            objHis.TransNumber = DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + cellPhone;//手机号码 2016 yao c
                                            objHis.SellerNick  = Users.Nick;
                                            //objHis.SellerNick = "澄腾科技";
                                            objHis.Buyer_nick = "*****";
                                            objHis.CellPhone  = cellPhone;
                                            objHis.SendDate   = DateTime.Now;
                                            objHis.SendType   = "手工发送";
                                            objHis.SendStatus = "0";
                                            objHis.Count      = "1";

                                            objHis.MsgContent = sigName + content.Trim() + " 退订回N";
                                            if (!Utility.IsYiDongCellPhoneNo(cellPhone))
                                            {
                                                objHis.HelpSellerNick = "电信联通";
                                            }
                                            else
                                            {
                                                objHis.HelpSellerNick = "移动";
                                            }
                                            //if (true) test
                                            if (SmartBLL.AddMsgSendHis(objHis))
                                            {
                                                try
                                                {
                                                    objHis.MsgContent = objHis.MsgContent.Replace(" ", "");
                                                    if (objHis.MsgContent.Length <= 70)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 1);
                                                    }
                                                    else if (objHis.MsgContent.Length > 70 && objHis.MsgContent.Length <= 134)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 2);
                                                    }
                                                    else if (objHis.MsgContent.Length > 134 && objHis.MsgContent.Length <= 195)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 3);
                                                    }
                                                    else if (objHis.MsgContent.Length > 195 && objHis.MsgContent.Length <= 260)
                                                    {
                                                        MsgBLL.UpdateMsgTransUseCount(Users.Nick, 4);
                                                    }


                                                    if (sendedCount >= cansendCount)
                                                    {
                                                        SmartBLL.UpdateSendStatus("99", objHis.TransNumber);
                                                    }
                                                    else
                                                    {
                                                        string sendStatus = TBSendMSg.SendMsg(cellPhone, sigNames, objHis.MsgContent.Replace("退订回N", "").Replace(sigName, ""));
                                                        if (!Utility.IsYiDongCellPhoneNo(cellPhone))
                                                        {
                                                            //string sendStatus = Mobile.SendMsgKeTongDX(cellPhone, objHis.MsgContent);

                                                            //string sendStatus = Mobile.PostDataToMyServer(cellPhone, objHis.MsgContent.Trim());//20160626 yao c
                                                            //IDictionary resultDic = TopUtils.ParseJson(sendStatus);
                                                            //SmartBLL.UpdateSendStatus(resultDic["status"].ToString(), objHis.TransNumber);
                                                            SmartBLL.UpdateSendStatus(sendStatus, objHis.TransNumber);
                                                        }
                                                        else
                                                        {
                                                            //string sendStatus = Mobile.SendMsgHubeiYDPost(cellPhone, objHis.MsgContent);//\r\n\r\n\r\n\r\n0
                                                            //sendStatus = sendStatus.Replace("\r", "").Replace("\n", "");
                                                            if (sendStatus.Equals("0"))
                                                            {
                                                                sendStatus = "100";
                                                            }
                                                            SmartBLL.UpdateSendStatus(sendStatus, objHis.TransNumber);
                                                        }
                                                    }
                                                    sendedCount++;
                                                    j++;
                                                    //}
                                                    //else
                                                    //{
                                                    //    if (!Utility.IsYiDongCellPhoneNo(cellPhone))
                                                    //    {
                                                    //        string sendStatus = Mobile.PostDataToMyServer(cellPhone, objHis.MsgContent.Trim(), "");
                                                    //    }
                                                    //    else
                                                    //    {
                                                    //        Mobile.SendMsgKeTongYD(cellPhone, objHis.MsgContent);
                                                    //    }
                                                    //}
                                                }
                                                catch (Exception ex)
                                                {
                                                    continue;
                                                }
                                            }
                                        }
                                        else
                                        {
                                            context.Response.Write("3");//余额不足
                                            //context.Response.End();//使用 Response.End方法,将出现 ThreadAbortException 异常。
                                            HttpContext.Current.ApplicationInstance.CompleteRequest();
                                            return;
                                        }
                                    }
                                }
                                catch (Exception ex)
                                {
                                    continue;
                                }
                            }
                            #endregion

                            //短信发送成功记录
                            msgSendingBLL.update(Users.Nick, 2, phones.Count);
                            context.Response.Write("2");
                            //context.Response.End();
                            HttpContext.Current.ApplicationInstance.CompleteRequest();
                        }
                    }
                }
                else
                {
                    context.Response.Write("0");
                    //context.Response.End();
                    HttpContext.Current.ApplicationInstance.CompleteRequest();
                    msgSendingBLL.update(Users.Nick, 2, phones.Count);
                }
            }
        }