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 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 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 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 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 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("" + model.VERIFYRESID + ""); // 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 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(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 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 list = _sms_rpt_user_Q.getList(ref pager, Stime, Etime); // //return File(ExcelHelper.ExportListModelToExcel(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 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(list, "短信查询", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("短信查询.xls")); } else { if (userId == "1") { msgtypeId = ""; } List 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(list, "短信查询", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("短信查询.xls")); } } #endregion } }