TG.WXCRM.V4/WEB/Controllers/Sms/SmsMessageController.cs

563 lines
24 KiB
C#

using Ninject;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.Common;
using WX.CRM.IBLL.Res;
using WX.CRM.IBLL.Sms;
using WX.CRM.IBLL.Util;
using WX.CRM.Model.Entity;
using WX.CRM.Model.MAP;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.Sms
{
public class SmsMessageController : BaseController
{
//
// GET: /SmsMessage/
private readonly ISMS_MESSAGE_HIS _smsmessagehis;
private readonly ISMS_MESSAGE_HIS_Q _smsmessagehisQ;
private readonly ICACHE_Q _cache_Q;
private readonly ISMS_ACCOUNT_Q _smsAccountQ;
private readonly ISMS_MSGTYPE_Q _smsMsgTypeQ;
private readonly ISMS_BATCHMSG_Q _smsBatchQ;
//private readonly ISMS_RPT_USERVERIFYCODE_Q _sms_rpt_user_Q;
//private readonly IGJS_OPENACCOUNTRECORD_Q _gjs_OpenaccountRecord_Q;
private readonly IRES_RESOURCEMOBILE_Q _res_resourcemobile_Q;
private readonly ISecurityHelper sHelper;
private readonly ISMS_USERVERIFYCODE _sms_userCode;
[Inject]
public ISMS_MSGTEMPLATE_Q _smsTemplate { get; set; }
[Inject]
public ISMS_MSGSUBTYPE_Q _smsMsgSubType { get; set; }
public SmsMessageController(ISMS_MESSAGE_HIS_Q smsmessagehisQ, ISMS_MESSAGE_HIS smsmessagehis, ICACHE_Q cache_Q, ISMS_ACCOUNT_Q smsAccountQ, ISMS_MSGTYPE_Q smsMsgTypeQ, ISMS_BATCHMSG_Q smsBatchQ, IRES_RESOURCEMOBILE_Q res_resourcemobile_Q, ISecurityHelper _sHelper, ISMS_USERVERIFYCODE sms_userCode)
{
this._smsmessagehisQ = smsmessagehisQ;
this._smsmessagehis = smsmessagehis;
this._cache_Q = cache_Q;
this._smsAccountQ = smsAccountQ;
this._smsMsgTypeQ = smsMsgTypeQ;
this._smsBatchQ = smsBatchQ;
//this._sms_rpt_user_Q = sms_rpt_user_Q;
this._res_resourcemobile_Q = res_resourcemobile_Q;
this.sHelper = _sHelper;
this._sms_userCode = sms_userCode;
}
[AuthorizeRedirect(Roles = InitRights.CONST_短信查询)]
public ActionResult Index()
{
#region toolbar工具栏
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
tool.AllowButton(toolbtn);
tool.AddOtherButton("Other1", "用户短信", "icon-lookup", "btnUserQuery_Click", true);
tool.AddOtherButton("Other2", "导出", "icon-export", "btnexport_Click", true);
ViewBag.ToolBar = tool;
#endregion
//table
Pager page = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table table = new Table(tableId);
table.AddHeadCol("RESID", "", "客户ID(或批次ID)");
table.AddHeadCol("CREATEUSER", "", "发送人");
table.AddHeadCol("MESSAGE", "", "短信内容");
table.AddHeadCol("TYPECODE", "", "短信类型");
table.AddHeadCol("CLIENTCODE", "", "短信平台");
table.AddHeadCol("CTIME", "", "创建时间");
table.AddHeadRow();
ViewBag.gridTable = table.GetTable() + Pagination.GetPage(page, tableId, "15,30,50,100");
ViewBag.inneruserid = UserId;
ViewBag.userGroupId = userGroupId;
ViewBag.saleDeptId = saleDeptId;
List<SelectListItem> list = _cache_Q.GetSmsTypeList().Select(item => new SelectListItem() { Text = item.TYPENAME, Value = item.TYPECODE }).ToList();
list.Add(new SelectListItem() { Text = "所有", Value = "", Selected = true });
ViewBag.messageType = list;
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
return View();
}
public ActionResult Index2()
{
//table
Pager page = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table table = new Table(tableId);
table.AddHeadCol("RESID", "", "客户ID(或批次ID)");
table.AddHeadCol("CREATEUSER", "", "发送人");
table.AddHeadCol("MESSAGE", "", "短信内容");
table.AddHeadCol("TYPECODE", "", "短信类型");
table.AddHeadCol("CLIENTCODE", "", "短信平台");
table.AddHeadCol("CTIME", "", "创建时间");
table.AddHeadRow();
ViewBag.gridTable = table.GetTable() + Pagination.GetPage(page, tableId, "10,50,100");
return View();
}
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_短信查询)]
public JsonResult GetSmsMessageHtml(Pager pager, string columns, QueryUserComboDto userComboDto)
{
string msgtypeId = Request.Form["msgtypeId"];
string stime = Request.Form["stime"];
string etime = Request.Form["etime"];
//string saleDeptId = Request.Form["saleDeptId"];
//string groupId = Request.Form["groupId"];
//string userId = Request.Form["userId"];
string resid = Request.Form["ResId"];
Table table = new Table(columns, true);
table.gridPager = pager;
var smsTemplate = _smsTemplate.GetList();
var subTypeList = _smsMsgSubType.GetList();
ICACHE_Q ui = DataCacheHelper.GetCache();
if (!string.IsNullOrEmpty(msgtypeId) && msgtypeId.Contains("BATSMS"))
{
List<SMS_BATCHMSG> list = _smsBatchQ.GetList(ref pager, stime, etime, msgtypeId, userComboDto);
foreach (SMS_BATCHMSG model in list)
{
table.AddCol(model.BATCHID);
table.AddCol(InnerUserHelper.Instance.GetUsername(model.CREATEUSER));
//table.AddCol(PhoneHelper.FormatPhoneUserNameContent(model.MESSAGE));
var tmp = smsTemplate.FirstOrDefault(p => p.SUBTYPEID == model.SUBTYPEID);
if (tmp != null)
{
table.AddCol(tmp.TEMPLATE);
}
else
{
table.AddCol("");
}
table.AddCol(_smsMsgTypeQ.GetModel(model.TYPECODE).TYPENAME);
table.AddCol(_smsAccountQ.GetModel_SmsAccount(model.CLIENTCODE).CLIENTNAME);
table.AddCol(model.CTIME.ToLocalTime());
table.AddRow();
}
}
else
{
if (userComboDto.userId == 1)
{
msgtypeId = "";
}
List<SMS_MESSAGE_HIS> list = _smsmessagehisQ.GetList(ref pager, stime, etime, msgtypeId, userComboDto, resid);
foreach (SMS_MESSAGE_HIS model in list)
{
table.AddCol(model.RESID);
table.AddCol(InnerUserHelper.Instance.GetUsername(model.CREATEUSER));
//if (model.SUBTYPECODE == "SMS_SENDMSG_OPENSUCESS")
//{
// string[] megslist = model.MESSAGE.Split(',');
// if (megslist != null && megslist.Count() > 2)
// {
// megslist[2] = "初始密码******";
// }
// string Strmeg = "";
// for (int i = 0; i < megslist.Count(); i++)
// {
// Strmeg += megslist[i] + ",";
// }
// Strmeg = Strmeg.Substring(0, Strmeg.Length - 1);
// table.AddCol(PhoneHelper.FormatPhoneUserNameContent(Strmeg, model.SUBTYPECODE));
//}
//else
//{
// table.AddCol(PhoneHelper.FormatPhoneUserNameContent(model.MESSAGE, model.SUBTYPECODE));
//}
var subType = subTypeList.Find(p => p.SUBTYPECODE == model.SUBTYPECODE);
if (subType != null)
{
var tmp = smsTemplate.FirstOrDefault(p => p.SUBTYPEID == subType.SUBTYPEID);
if (tmp != null)
{
table.AddCol(tmp.TEMPLATE);
}
else
{
table.AddCol(model.MESSAGE);
}
}
else
{
table.AddCol(model.MESSAGE);
}
table.AddCol(_smsMsgTypeQ.GetModel(model.TYPECODE).TYPENAME);
table.AddCol(_smsAccountQ.GetModel_SmsAccount(model.CLIENTCODE).CLIENTNAME);
table.AddCol(model.CTIME);
table.AddRow();
}
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
public ActionResult MessageList()
{
//table
Pager pager = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
WebHelper.Table tab = new WebHelper.Table(tableId);
tab.AddHeadCol("RESID", "", "客户ID");
tab.AddHeadCol("EID", "", "发送人");
tab.AddHeadCol("MESSAGE", "", "发送内容");
tab.AddHeadCol("SENDTIME", "", "发送时间");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "5,8,10,15");
return View();
}
#region
//[AuthorizeRedirect(Roles = InitRights.CONST_开户短信验证码查询)]
//public ActionResult OpenSmsIndex()
//{
// #region toolbar工具栏
// ToolBar tool = new ToolBar();
// string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.开户短信验证码查询, userRightId);
// tool.AllowButton(toolbtn);
// ViewBag.ToolBar = tool;
// #endregion
// //table
// Pager page = new Pager() { page = 1, rows = 10 };
// string tableId = "tablist";
// Table table = new Table(tableId);
// table.AddHeadCol("RESID", "", "客户ID");
// table.AddHeadCol("CREATEUSER", "", "用户名");
// table.AddHeadCol("MESSAGE", "", "验证码");
// table.AddHeadCol("CTIME", "", "创建时间");
// table.AddHeadRow();
// ViewBag.gridTable = table.GetTable() + Pagination.GetPage(page, tableId, "15,30,50,100");
// return View();
//}
//[HttpPost]
//[AuthorizeRedirect(Roles = InitRights.CONST_开户短信验证码查询)]
//public JsonResult GetOpenSmsHtml(Pager pager, string columns)
//{
// string username = Request.Form["username"];
// string verifyResId = Request.Form["verifyResId"];
// Table table = new Table(columns, true);
// table.gridPager = pager;
// if (!(string.IsNullOrWhiteSpace(verifyResId) && string.IsNullOrWhiteSpace(username)))
// {
// string msg = "";
// GetOpenSms _smsopen = new GetOpenSms();
// List<SMS_USERVERIFYCODE> list = _smsopen.GetSmsList(out msg, verifyResId, username);
// foreach (SMS_USERVERIFYCODE model in list)
// {
// table.AddCol(model.VERIFYRESID);
// table.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));
// table.AddCol(model.VERIFYCODE);
// table.AddCol(model.CTIME.ToLocalTime());
// table.AddRow();
// }
// }
// var json = new
// {
// totalPages = pager.totalPages,
// totalRows = pager.totalRows,
// rowsList = table.GetRows()
// };
// return Json(json, JsonRequestBehavior.AllowGet);
//}
#endregion
#region
//[AuthorizeRedirect(Roles = InitRights.CONST_开户验证码用户开户查询)]
//public ActionResult OpenUserDetailsIndex()
//{
// #region toolbar工具栏
// ToolBar tool = new ToolBar();
// string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.开户验证码用户开户查询, userRightId);
// tool.AllowButton(toolbtn);
// tool.AddOtherButton("Other1", "导出", "icon-export", "btnexport_Click", true);
// ViewBag.ToolBar = tool;
// #endregion
// //table
// Pager page = new Pager() { page = 1, rows = 10 };
// string tableId = "tablist";
// Table table = new Table(tableId);
// table.AddHeadCol("USERNAME", "", "用户名");
// table.AddHeadCol("VERIFYRESID", "", "客户ID");
// table.AddHeadCol("VERIFYCODE", "", "验证码");
// table.AddHeadCol("EXPIRETIME", "", "有效止时间");
// table.AddHeadCol("SCHEDULESTATUS", "", "开户状态");
// table.AddHeadCol("TRADECODE", "", "交易商代码");
// table.AddHeadRow();
// ViewBag.gridTable = table.GetTable() + Pagination.GetPage(page, tableId, "15,30,50,100");
// return View();
//}
//[HttpPost]
//[AuthorizeRedirect(Roles = InitRights.CONST_开户验证码用户开户查询)]
//public JsonResult OpenUserDetailsHtml(Pager pager, string columns)
//{
// Table table = new Table(columns, true);
// table.gridPager = pager;
// string Status = Request.Form["Status"];
// //获取当前公司编号
// string companyCode = _cache_Q.GetValue_Parameter(Parameter.Sys_Environment_DeptCode);
// DateTime stime = DateTime.Now.AddHours(-12);
// DateTime etime = DateTime.Now;
// string msg = "";
// GetOpenSms _smsopen = new GetOpenSms();
// List<openverifSms> list = _smsopen.GetopenUserDetialtList(out msg, stime.ToString(), etime.ToString(), companyCode, ref pager, Status);
// foreach (openverifSms model in list)
// {
// table.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));
// // table.AddCol(model.VERIFYRESID);
// table.AddCol("<a href=\"javascript:ShowResDetial('/Csvr/CustomerInfo/CustomerDetail?resid=" + model.VERIFYRESID + "')\">" + model.VERIFYRESID + "</a>");
// table.AddCol(model.VERIFYCODE);
// table.AddCol(model.EXPIRETIME.ToLocalTime());
// table.AddCol(ScheduleStatus(model.SCHEDULESTATUS));
// table.AddCol(model.TRADECODE);
// table.AddRow();
// }
// var json = new
// {
// totalPages = pager.totalPages,
// totalRows = pager.totalRows,
// rowsList = table.GetRows()
// };
// return Json(json, JsonRequestBehavior.AllowGet);
//}
//public string ScheduleStatus(decimal? schedulestatus)
//{
// if (schedulestatus == null)
// {
// return "未开户";
// }
// int id = Convert.ToInt32(schedulestatus);
// string status = "";
// switch (id)
// {
// case 180:
// status = "已开户";
// break;
// case 200:
// status = "未激活";
// break;
// case 220:
// status = "正常";
// break;
// case 60:
// status = "开户取消";
// break;
// case 70:
// status = "已退市";
// break;
// default:
// status = id.ToString();
// break;
// }
// return status;
//}
//#region 导出
//public FileResult OpenUserDetailsExport()
//{
// Pager pager = new Pager();
// pager.page = 1;
// pager.rows = int.MaxValue;
// string checkedFilds = PageRequest.GetQueryString("checkedFilds");
// string checkedTitles = PageRequest.GetQueryString("checkedTitles");
// string msg = "";
// string Status = Request.QueryString["Status"];
// //获取当前公司编号
// string companyCode = _cache_Q.GetValue_Parameter(Parameter.Sys_Environment_DeptCode);
// DateTime stime = DateTime.Now.AddHours(-12);
// DateTime etime = DateTime.Now;
// GetOpenSms _smsopen = new GetOpenSms();
// List<openverifSms> list = _smsopen.GetopenUserDetialtList(out msg, stime.ToString(), etime.ToString(), companyCode, ref pager, Status);
// foreach (openverifSms item in list)
// {
// item.USERNAME = PhoneHelper.FormatPhoneUserName(item.USERNAME);
// }
// return File(ExcelHelper.ExportListModelToExcel<openverifSms>(list, "开户验证码用户开户查询", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("开户验证码用户开户查询.xls"));
//}
////用作委托传递
//public string DataFormart(string key, object value)
//{
// string formartValue = string.Empty;
// switch (key)
// {
// case "SCHEDULESTATUS":
// if (value == null)
// {
// formartValue = "未开户";
// }
// else
// {
// formartValue = ScheduleStatus(Convert.ToDecimal(value));
// }
// ; break;
// default: formartValue = string.Format("{0}", value); break;
// }
// return formartValue;
//}
//#endregion
#endregion
#region
//[AuthorizeRedirect(Roles = InitRights.CONST_开户验证码用户统计表)]
//public ActionResult SmsRptUserIndex()
//{
// #region toolbar工具栏
// ToolBar tool = new ToolBar();
// string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.开户验证码用户统计表, userRightId);
// tool.AllowButton(toolbtn);
// tool.AddOtherButton("Other1", "导出", "icon-export", "btnexport_Click", true);
// ViewBag.ToolBar = tool;
// #endregion
// //table
// Pager page = new Pager() { page = 1, rows = 10 };
// string tableId = "tablist";
// Table table = new Table(tableId);
// table.AddHeadCol("RPTDATE", "", "日期");
// table.AddHeadCol("VERIFICODEUSERNUM", "", "生成验证码用户个数");
// table.AddHeadCol("VERIFICODENUM", "", "生成验证码记录个数");
// table.AddHeadCol("OPENUSERSUCCEEDNUM", "", "当日开户成功个数");
// table.AddHeadCol("NOOPENUSERNUM", "", "当日未开户个数");
// table.AddHeadCol("TRADECODE", "", "创建时间");
// table.AddHeadRow();
// ViewBag.gridTable = table.GetTable() + Pagination.GetPage(page, tableId, "15,30,50,100");
// return View();
//}
//[HttpPost]
//[AuthorizeRedirect(Roles = InitRights.CONST_开户验证码用户统计表)]
//public JsonResult SmsRptUserHtml(Pager pager, string columns)
//{
// Table table = new Table(columns, true);
// table.gridPager = pager;
// string Stime = Request.Form["Stime"];
// string Etime = Request.Form["Etime"];
// //List<SMS_RPT_USERVERIFYCODE> list = _sms_rpt_user_Q.getList(ref pager, Stime, Etime);
// //foreach (SMS_RPT_USERVERIFYCODE model in list)
// //{
// // table.AddCol(model.RPTDATE.Value.Date.ToShortDateString());
// // table.AddCol(model.VERIFICODEUSERNUM);
// // table.AddCol(model.VERIFICODENUM);
// // table.AddCol(model.OPENUSERSUCCEEDNUM);
// // table.AddCol(model.NOOPENUSERNUM);
// // table.AddCol(model.CTIME);
// // table.AddRow();
// //}
// var json = new
// {
// totalPages = pager.totalPages,
// totalRows = pager.totalRows,
// rowsList = table.GetRows()
// };
// return Json(json, JsonRequestBehavior.AllowGet);
//}
//#region 导出
//public FileResult SmsRptUserExport()
//{
// Pager pager = new Pager();
// pager.page = 1;
// pager.rows = int.MaxValue;
// string checkedFilds = PageRequest.GetQueryString("checkedFilds");
// string checkedTitles = PageRequest.GetQueryString("checkedTitles");
// string msg = "";
// string Stime = Request.QueryString["Stime"];
// string Etime = Request.QueryString["Etime"];
// //List<SMS_RPT_USERVERIFYCODE> list = _sms_rpt_user_Q.getList(ref pager, Stime, Etime);
// //return File(ExcelHelper.ExportListModelToExcel<SMS_RPT_USERVERIFYCODE>(list, "开户验证码用户统计表", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("开户验证码用户统计表.xls"));
// return null;
//}
//#endregion
#endregion
#region
[AuthorizeToolBar(InitRights.CONST_短信查询, InitToolBar.CONST_Other2)]
public FileResult ListExport(QueryUserComboDto userComboDto)
{
Pager pager = new Pager();
pager.page = 1;
pager.rows = int.MaxValue;
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
string msgtypeId = Request.QueryString["msgtypeId"];
string stime = Request.QueryString["stime"];
string etime = Request.QueryString["etime"];
string saleDeptId = Request.QueryString["saleDeptId"];
string groupId = Request.QueryString["groupId"];
string userId = Request.QueryString["userId"];
string resid = Request.QueryString["ResId"];
ICACHE_Q ui = DataCacheHelper.GetCache();
if (msgtypeId.Contains("BATSMS"))
{
List<SMS_BATCHMSG> list = _smsBatchQ.GetList(ref pager, stime, etime, msgtypeId, userComboDto);
foreach (SMS_BATCHMSG item in list)
{
item.MESSAGE = PhoneHelper.FormatPhoneUserNameContent(item.MESSAGE);
}
return File(ExcelHelper.ExportListModelToExcel<SMS_BATCHMSG>(list, "短信查询", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("短信查询.xls"));
}
else
{
if (userId == "1")
{
msgtypeId = "";
}
List<SMS_MESSAGE_HIS> list = _smsmessagehisQ.GetList(ref pager, stime, etime, msgtypeId, userComboDto, resid);
foreach (SMS_MESSAGE_HIS item in list)
{
item.MESSAGE = PhoneHelper.FormatPhoneUserNameContent(item.MESSAGE, item.SUBTYPECODE);
}
return File(ExcelHelper.ExportListModelToExcel<SMS_MESSAGE_HIS>(list, "短信查询", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("短信查询.xls"));
}
}
#endregion
}
}