using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using YTSoft.BaseCallCenter.MVCWeb.Models;
using YTSoft.BaseCallCenter.Model;
using YTSoft.BaseCallCenter.MVCWeb.Commons;
namespace YTSoft.BaseCallCenter.MVCWeb.Controllers
{
public class SMSController : BaseController
{
//
// GET: /SMS/
BLL.T_SMS_SendSMSTask smsdll = new BLL.T_SMS_SendSMSTask();
BLL.T_SMS_SentSMS smsBLL = new BLL.T_SMS_SentSMS();
#region 初使化页面
//短信发送
public ActionResult SMS_Send(int? smsId)
{
Model.T_SMS_SendSMSTask viewsmsmodel = new Model.T_SMS_SendSMSTask();
if (smsId > 0 && smsId != null)
{
viewsmsmodel = smsdll.GetModel(int.Parse(smsId.ToString()));
}
return View(viewsmsmodel);
}
//待发短信
public ActionResult SMS_SendTask()
{
Model.T_SMS_SentSMS sentokmodel = new Model.T_SMS_SentSMS();
return View(sentokmodel);
}
//已发短信
public ActionResult SMS_SendTaskOK()
{
Model.T_SMS_SentSMS sentokmodel = new Model.T_SMS_SentSMS();
return View(sentokmodel);
}
#endregion
#region 短信发送信息
///
/// 保存编辑
///
///
///
[AcceptVerbs(HttpVerbs.Post)]
public bool SendDataSave(T_SMS_SendSMSTask smsInfoModel)
{
bool bl = false;
int savedata = 0;
string strtelnum = smsInfoModel.TelNum.Trim();
string[] strarr = strtelnum.Split(',');
try {
//判断是否用非英文逗号
if (strtelnum.Contains(","))
{
bl = false;
}
else
{
for (int i = 0; i <= strarr.Length - 1; i++)
{
smsInfoModel.TelNum = strarr[i].Trim();
smsInfoModel.CommitTime = DateTime.Now;
smsInfoModel.Info = "待发送";
smsInfoModel.F_UserID = F_UserID;
smsInfoModel.F_Name=HttpUtility.UrlDecode( F_UserName);
savedata = smsdll.Add(smsInfoModel);
MessageNotice(smsInfoModel.Content, smsInfoModel.TelNum, strarr.Length);
}
}
//return smsdll.Add(smsInfoModel) > 0;
if (savedata > 0)
{
bl = true;
}
else
{
bl = false;
}
}
catch (Exception ex)
{
}
return bl;
}
#endregion
#region 发送、待发短信
//获取已发短信
[ActionName("Sendtoklist")]
[HttpGet]
public string Sendtoklist(DateTime? NowDateTime, int page,
int limit, string dateParty, string cusName, string cusNum,string content)
{
//数据结果集
ResponseData dataModel = new ResponseData();
string sql = "";
if (cusNum != null)
{
sql += " and TelNum like '%" + cusNum + "%'";
}
//内容模糊查询
if (content != null)
{
sql += " and Content like '%" + content + "%'";
}
if (!string.IsNullOrEmpty(dateParty))
{
string startDate = dateParty.Substring(0, 19);
string endDate = dateParty.Substring(21);
sql += " and SendTime>= '" + startDate + "'";
sql += " and SendTime<= '" + endDate + "'";
}
DataTable dt = new DataTable();
int recordCount = 0;
Model.PageData pageModel = new Model.PageData();
dt = BLL.PagerBLL.GetListPager(
"T_SMS_SentSMS",
"SMSID",
" SMSID,TelNum ,Content , CONVERT(varchar(100), CommitTime, 20) CommitTime,CONVERT(varchar(100), SendTime, 20) SendTime,LastSentTime,MaxSendCount , CurSentCount, Info, SendModemIMEI, F_UserID, F_CustomerID, F_Name",
sql,
"ORDER BY SMSID desc",
limit,
page,
true,
out recordCount);
dataModel.code = 0;
dataModel.count = recordCount;
dataModel.data = dt;
return JsonConvert.SerializeObject(dataModel);
}
//
// GET: /SMS/Details/5
//获取已发短信
[ActionName("Sendtlist")]
[HttpGet]
public string Sendtlist(DateTime? NowDateTime, int page, int limit, string dateParty, string cusName, string cusNum)
{
//数据结果集
ResponseData dataModel = new ResponseData();
string sql = " and SendTime is null ";
if (cusNum != null)
{
sql += " and TelNum like '%" + cusNum + "%'";
}
if (!string.IsNullOrEmpty(dateParty))
{
string startDate = dateParty.Substring(0, 19);
string endDate = dateParty.Substring(21);
sql += " and CommitTime>= '" + startDate + "'";
sql += " and CommitTime<= '" + endDate + "'";
}
DataTable dt = new DataTable();
int recordCount = 0;
Model.PageData pageModel = new Model.PageData();
dt = BLL.PagerBLL.GetListPager(
"T_SMS_SendSMSTask",
"SMSID",
" SMSID,TelNum ,Content , CONVERT(varchar(100), CommitTime, 20) CommitTime,CONVERT(varchar(100), SendTime, 20) SendTime,LastSentTime,MaxSendCount , CurSentCount, Info, F_UserID, F_CustomerID, F_Name",
sql,
"ORDER BY SMSID desc",
limit,
page,
true,
out recordCount);
dataModel.code = 0;
dataModel.count = recordCount;
dataModel.data = dt;
return JsonConvert.SerializeObject(dataModel);
}
///
//删除待发短信
///
///
///
[AcceptVerbs(HttpVerbs.Get)]
public bool DeleteSmsData(string smsId)
{
return smsdll.DeleteList(smsId);
}
#endregion
///
/// 发送短信接口
///
/// 手动发送短信
///
[ActionName("MessageNotice")]
[HttpGet]
public bool MessageNotice(string MessageContent,string TelNum,int Length)
{
//数据结果集
bool SendResult = false;
try
{
//用户名:zzmetro 接口密码:r9ffaa
//MD5(username+MD5(pwd)),pwd为明文密码,32位小写md5
string smsUrl = "http://www.jc-chn.cn/smsSend.do?username=zzmetro&password=28fc33e97e092b633f47a456740b636e&mobile=" + TelNum +"&content=";
System.Web.HttpUtility.UrlEncode("发送短信!" + MessageContent , System.Text.Encoding.UTF8);
Model.T_SMS_SentSMS model = new Model.T_SMS_SentSMS();
model.State = 0;
model.CommitTime = DateTime.Now;
model.MaxSendCount = 5; //最大发送次数
model.Content = MessageContent;//发送内容
for (int i = 1; i <= model.MaxSendCount; i++)
{
model.CurSentCount = i;
string addWxResult = HttpHelper.HttpSMSSend(smsUrl+ MessageContent+ "【郑州地铁】");
//判断返回接口是否发送成功!
if (!string.IsNullOrEmpty(addWxResult) )
{
switch (addWxResult)
{
case "-1": SendResult = false;
model.State = 0;//发送成功
model.Info = "用户名或者密码不正确!";
break;
case "0":
SendResult = false;
model.State = 0;//发送成功
model.Info = "失败!";
break;
case "-5":
SendResult = false;
model.State = 0;//发送成功
model.Info = "余额不够!";
break;
case "-10":
SendResult = false;
model.State = 0;//发送成功
model.Info = "用户被禁用!";
break;
case "-11":
SendResult = false;
model.State = 0;//发送成功
model.Info = "短信内容超过500字!";
break;
}
if (addWxResult.Length>7) {
SendResult = true;
model.State = 1;//发送成功
model.Info = "发送成功";
}
model.SendTime = DateTime.Now;
model.F_UserID = F_UserID;
model.F_Name = HttpUtility.UrlDecode(F_UserName);
model.SendModemIMEI = "用户:" + HttpUtility.UrlDecode(F_UserName) + "提供";
model.TelNum = TelNum;
//将短信发送信息存储到内容中
smsBLL.Add(model);
break;
}
//将短信发送信息存储到内容中
// smsBLL.Add(model);
}
}
catch (Exception ex) { }
return SendResult;
}
}
}