TG.WXCRM.V4/WEB/Controllers/MsgTool/MsgToolTaskController.cs

363 lines
14 KiB
C#

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<List<string>>(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<string, object> ditParam = new Dictionary<string, object>();
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<Credentials>(res.Substring(res.IndexOf("Credentials") + 13).Replace("}}", "}"));
}
ViewBag.OssModel = credentials;
var faceList = _cache.GetValue_Parameter("FaceSetting");
if (!string.IsNullOrWhiteSpace(faceList))
{
ViewBag.faceList = JsonConvert.DeserializeObject<List<string>>(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<MsgToolSetting>(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<Ww_hhuserModel>();
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<string, object> ditParam = new Dictionary<string, object>();
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<Credentials>(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<List<string>>(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<MsgToolTaskViewModel>();
try
{
List<MsgToolTaskViewModel> 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<MsgToolExecuteViewModel>();
try
{
List<MsgToolExecuteViewModel> 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<CmdDetailDto>();
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);
}
}
}
}