using CRM.Core.DTO; using Newtonsoft.Json; using Ninject; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.Common.Layui; using WX.CRM.IBLL.MsgTool; using WX.CRM.IBLL.Util; using WX.CRM.IBLL.Ww; using WX.CRM.Model.crmModel; using WX.CRM.Model.Enum; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.MsgTool { public class MsgToolTaskController : BaseController { [Inject] public IMsgToolTask _msgToolTaskQ { get; set; } [Inject] public IWw_huser _iww_hhuser_service { get; set; } [Inject] public ICACHE_Q _cache { get; set; } public MsgToolTaskController() { } public ActionResult MsgToolTaskTab() { return View(); } [AuthorizeRedirect(Roles = InitRights.CONST_群发任务列表)] public ActionResult Index(int indexType = 1) { //ToolBar ToolBar tool = new ToolBar(); string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.群发任务列表, userRightId); tool.AllowButton(toolbtn); tool.AddOtherButton("Other1", "复制群发任务", "icon-detail", "Copy_Click", true); tool.AddOtherButton("Other2", "转发任务", "icon-group", "Cancel_Click", true); tool.AddOtherButton("Other3", "取消任务", "icon-search", "Send_Click", true); tool.AddOtherButton("Other4", "立即执行", "icon-search", "Run_Click", true); ViewBag.ToolBar = tool; ViewBag.IndexType = indexType; ViewBag.Eid = Eid; var faceList = _cache.GetValue_Parameter("FaceSetting"); if (!string.IsNullOrWhiteSpace(faceList)) { ViewBag.faceList = JsonConvert.DeserializeObject>(faceList); ViewBag.faceListJson = string.Join(",", ViewBag.faceList); } return View(); } [HttpGet] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public ActionResult Add(decimal? id) { var croplist = _iww_hhuser_service.Corp_GetByCompanyCode(companyCode); ViewBag.AllChannel = JsonHelper.ObjDivertToJson(croplist); MsgEditTaskModel model = new MsgEditTaskModel(); if (id.HasValue) { ViewBag.id = id; model = _msgToolTaskQ.GetMsgTaskEditModel(id.Value); } ViewBag.File_Server = _cache.GetValue_Parameter("File_Server"); //生成临时接口请求键 var help = new AliHelper("LTAI5tERfeaQymj1CD7eycnw", "WScg5brbLlKWJvfRofCGnjso6Wi0Rx", "2015-04-01"); Dictionary ditParam = new Dictionary(); ditParam.Add("Action", "AssumeRole"); ditParam.Add("DurationSeconds", 3600); ditParam.Add("RoleArn", "acs:ram::1497042271361001:role/oss-cms"); ditParam.Add("RoleSessionName", "test"); var res = help.HttpGetUrl("https://sts.aliyuncs.com/", ditParam); Credentials credentials = new Credentials(); if (res.IndexOf("Credentials") > -1) { credentials = JsonHelper.JsonDivertToObj(res.Substring(res.IndexOf("Credentials") + 13).Replace("}}", "}")); } ViewBag.OssModel = credentials; var faceList = _cache.GetValue_Parameter("FaceSetting"); if (!string.IsNullOrWhiteSpace(faceList)) { ViewBag.faceList = JsonConvert.DeserializeObject>(faceList); ViewBag.faceListJson = string.Join(",", ViewBag.faceList); } return View(model); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public JsonResult Add(MsgToolTaskCreateDto model) { try { model.Eid = Eid; model.JSONDATA = model.JSONDATA.Replace("\u200c", ""); bool result = _msgToolTaskQ.AddMsgTask(model); retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "保存成功!" }; return Json(ret); } catch (Exception ex) { retMsg ret = new retMsg() { result = false, retcode = 200, retmsg = "保存失败:" + ex.Message }; return Json(ret); } } [HttpGet] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public ActionResult ChooseQW() { var setting = _cache.GetValue_Parameter("MsgToolSetting"); if (!string.IsNullOrWhiteSpace(setting)) { var toolSetting = JsonConvert.DeserializeObject(setting); ViewBag.qiweiUrl = toolSetting.QiWeiUrl; } return View(); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public ActionResult ChooseQWGetHtmlList(Laypage pager, decimal? id, string name) { var layUidata = new LayuiData(); try { var croplist = _iww_hhuser_service.WorkListGetByEid(Eid, name); layUidata.msg = "数据加载成功"; layUidata.code = 0; layUidata.data = croplist; layUidata.count = pager.count; } catch (Exception ex) { LogHelper.Error(ex.ToString()); layUidata.SetFail(1, "出现错误!" + ex.Message); } return Json(layUidata); } [HttpGet] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public ActionResult ChooseQWByCorp() { return View(); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public JsonResult ConfirmSend(MsgToolTaskCreateDto model) { try { model.Eid = Eid; model.Type = 2; bool result = _msgToolTaskQ.AddMsgTask(model); retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = model.PKID.ToString() }; return Json(ret); } catch (Exception ex) { retMsg ret = new retMsg() { result = false, retcode = 400, retmsg = ex.Message }; return Json(ret); } } [HttpPost] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public JsonResult CreateTask(decimal planId) { try { bool result = _msgToolTaskQ.CreateTask(planId); retMsg ret = new retMsg() { result = result, retcode = 200 }; return Json(ret); } catch (Exception ex) { retMsg ret = new retMsg() { result = false, retcode = 200, retmsg = ex.Message }; return Json(ret); } } [HttpGet] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Other1)] public ActionResult CopyPlan(decimal? id) { var croplist = _iww_hhuser_service.Corp_GetByCompanyCode(companyCode); ViewBag.AllChannel = JsonHelper.ObjDivertToJson(croplist); MsgEditTaskModel model = new MsgEditTaskModel(); if (id.HasValue) { ViewBag.id = id; model = _msgToolTaskQ.GetMsgTaskEditModel(id.Value); if(model.RECEIVERID != Eid) { model.QiWeiPostJson = ""; } model.PKID = null; } //生成临时接口请求键 var help = new AliHelper("LTAI5tERfeaQymj1CD7eycnw", "WScg5brbLlKWJvfRofCGnjso6Wi0Rx", "2015-04-01"); Dictionary ditParam = new Dictionary(); ditParam.Add("Action", "AssumeRole"); ditParam.Add("DurationSeconds", 3600); ditParam.Add("RoleArn", "acs:ram::1497042271361001:role/oss-cms"); ditParam.Add("RoleSessionName", "test"); var res = help.HttpGetUrl("https://sts.aliyuncs.com/", ditParam); Credentials credentials = new Credentials(); if (res.IndexOf("Credentials") > -1) { credentials = JsonHelper.JsonDivertToObj(res.Substring(res.IndexOf("Credentials") + 13).Replace("}}", "}")); } ViewBag.OssModel = credentials; ViewBag.File_Server = _cache.GetValue_Parameter("File_Server"); var faceList = _cache.GetValue_Parameter("FaceSetting"); if (!string.IsNullOrWhiteSpace(faceList)) { ViewBag.faceList = JsonConvert.DeserializeObject>(faceList); ViewBag.faceListJson = string.Join(",", ViewBag.faceList); } return View("add", model); } [HttpGet] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Other4)] public ActionResult Execute(decimal taskid, int taskType = 2) { string servicename = _cache.GetValue_Parameter(Parameter.MsgTool_AppServiceName);//获取msgtool服务名称 var croplist = _iww_hhuser_service.Corp_GetByCompanyCode(companyCode); ViewBag.AllChannel = JsonHelper.ObjDivertToJson(croplist); ViewBag.Taskid = taskid; ViewBag.Servicename = servicename; ViewBag.appid = System.Configuration.ConfigurationManager.AppSettings["appid"]; ViewBag.webapi = _cache.GetValue_Parameter("MsgTool_WEBAPI"); ViewBag.Type = taskType; return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_群发任务列表)] public JsonResult GetHtmlList(Laypage pager, MsgToolPlanQueryDto dto) { var layUidata = new LayuiData(); try { List list = _msgToolTaskQ.GetTaskList(ref pager, dto); layUidata.msg = "数据加载成功"; layUidata.code = 0; layUidata.data = list; layUidata.count = pager.count; } catch (Exception ex) { LogHelper.Error(ex.ToString()); layUidata.SetFail(1, "出现错误!" + ex.Message); } return Json(layUidata); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_群发任务列表)] public JsonResult GetExecuteList(Laypage pager, decimal taskid) { var layUidata = new LayuiData(); try { List list = _msgToolTaskQ.GetExecuteList(ref pager, taskid); layUidata.msg = "数据加载成功"; layUidata.code = 0; layUidata.data = list; layUidata.count = pager.count; } catch (Exception ex) { LogHelper.Error(ex.ToString()); layUidata.SetFail(1, "出现错误!" + ex.Message); } return Json(layUidata); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Other3)] public JsonResult CancelTask(decimal planId) { try { bool result = _msgToolTaskQ.CancelTask(planId); retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "操作成功!" }; return Json(ret); } catch (Exception ex) { retMsg ret = new retMsg() { result = false, retcode = 200, retmsg = "操作失败:" + ex.Message }; return Json(ret); } } [HttpGet] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Other4)] public ActionResult CmdEdit(decimal cmdId) { ViewBag.CmdId = cmdId; return View(); } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_群发任务列表)] public JsonResult GetCmdEditList(Laypage pager, CmdDetailQueryDto dto) { var layUidata = new LayuiData(); try { var data = _msgToolTaskQ.GetTaskCmdDetail(ref pager, dto); layUidata.msg = "数据加载成功"; layUidata.code = 0; layUidata.data = data; layUidata.count = pager.count; } catch (Exception ex) { LogHelper.Error(ex.ToString()); layUidata.SetFail(1, "出现错误!" + ex.Message); } return Json(layUidata); } [HttpPost] [AuthorizeToolBar(InitRights.CONST_群发任务列表, InitToolBar.CONST_Add)] public JsonResult SaveCmdDetail(SetCmdEnableDto model) { try { bool result = _msgToolTaskQ.SetCmdDetailEnable(model); retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "保存成功!" }; return Json(ret); } catch (Exception ex) { retMsg ret = new retMsg() { result = false, retcode = 200, retmsg = "保存失败:" + ex.Message }; return Json(ret); } } } }