TG.WXCRM.V4/WEB/Controllers/Res/CallOutCustomerController.cs

184 lines
7.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.Common;
using WX.CRM.IBLL.Res;
using WX.CRM.IBLL.Util;
using WX.CRM.Model.Entity;
using WX.CRM.WebHelper;
using WX.CRM.WebHelper.RedisFactory;
namespace WX.CRM.WEB.Controllers.Res
{
public class CallOutCustomerController : BaseController
{
[Inject]
public IRES_CALLOUTCUSTOMER _IRES_CALLOUTCUSTOMER { get; set; }
[Inject]
public IRES_CUSTOMER_Q _customerq { get; set; }
[Inject]
public ICACHE_Q _CACHE_Q { get; set; }
//[Ninject.Inject]
//public ICUSTOMER_REDIS customerRedisBL { get; set; }
private RedisFactory redisFactory = new RedisFactory();
ValidationErrors errors = new ValidationErrors();
[AuthorizeRedirect(Roles = InitRights.CONST_出局资源)]
public ActionResult Index()
{
var tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
List<string> listBtn = new List<string>(toolbtn);
List<string> Buttons = new List<string>();
Buttons.Add("Other1");
Buttons.AddRange(listBtn);
tool.AllowButton(Buttons.ToArray());
// tool.AllowButton("Create", "Other1", "Delete");
tool.AddOtherButton("Other1", "刷新", "icon-reload", "Reload_Click", true);
ViewBag.ToolBar = tool;
var pager = new Pager() { page = 1, rows = 10, sort = "CTIME", order = "desc" };
var tableId = "tablist";
var tab = new Table(tableId);
tab.AddHiddenHeadCol("CALLOUTTYPE", "CALLOUTTYPE");
tab.AddHeadCol("RESID", "20%", "客户ID ");
tab.AddHeadCol("CALLOUTTYPENAME", "20%", "出局号码类型 ");
tab.AddHeadCol("REASON", "20%", "备注");
tab.AddHeadCol("CTIME", "20%", "添加时间");
tab.AddHeadRow();
ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,30");
return View();
}
[HttpPost]
[AuthorizeRedirect(Roles = InitRights.CONST_出局资源)]
public JsonResult GetHtmlList(Pager pager, string columns)
{
try
{
string resid = Request.Form["ResId"];
var list = _IRES_CALLOUTCUSTOMER.GetList(resid, ref pager);
var table = new Table(columns, true);
table.gridPager = pager;
foreach (var model in list)
{
table.AddHiddenCol(model.CALLOUTTYPE);
table.AddCol(model.RESID);
table.AddCol(model.CALLOUTNAME);
table.AddCol(model.REASON);
table.AddCol(model.CTIME);
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
LogHelper.Error(ex.Message);
var json = new
{
errorMessag = "系统错误:" + ex.Message
};
return Json(json, JsonRequestBehavior.AllowGet);
}
}
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_出局资源, InitToolBar.CONST_Add)]
public ActionResult Add()
{
RES_CALLOUTCUSTOMER model = null;
IEnumerable<SelectListItem> clistItem = _CACHE_Q.GetList_CallOutPara()
.Where(obj => obj.ISSHOW == 1)
.Select(c => new SelectListItem
{ Value = c.CALLOUTTYPE, Text = c.CALLOUTNAME });
ViewBag.CateList = clistItem;
return View(model);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_出局资源, InitToolBar.CONST_Add)]
public ActionResult Add(string callType, string resids, string Reson)
{
try
{
string message = "";
if (string.IsNullOrEmpty(resids.Trim()))
{
ModelState.AddModelError("resids", "客户ID不能为空");
}
if (!ModelState.IsValid)
{
return JsonHandler.JsonResultSerialize(ModelState);
}
string[] resIds = resids.Replace(" ", "").Replace("\r", "").Replace("\n", "").Replace("", ",").Split(',');
string[] trueResIds = _customerq.getResByResIds(resIds).Select(m => m.RESID.Trim()).ToArray();
string[] existresIds = _IRES_CALLOUTCUSTOMER.GetByResIds(trueResIds, callType).Select(m => m.RESID.Trim()).ToArray();
var nottrue = resIds.Except(trueResIds);
if (nottrue.Count() > 0)
{
message = "不存在客户ID" + string.Join(",", nottrue);
}
if (existresIds.Count() > 0)
{
message += "。已添加的客户ID" + string.Join(",", existresIds);
}
/////////
var updateResIds = trueResIds.Except(existresIds);
List<RES_CALLOUTCUSTOMER> numbers = new List<RES_CALLOUTCUSTOMER>();
foreach (string resid in updateResIds)
{
if (!string.IsNullOrEmpty(resid))
{
RES_CALLOUTCUSTOMER model = new RES_CALLOUTCUSTOMER();
model.RESID = resid;
model.CALLOUTTYPE = callType;
model.REASON = Reson;
model.CTIME = DateTime.Now;
numbers.Add(model);
}
}
if (numbers.Count > 0)
{
bool result = _IRES_CALLOUTCUSTOMER.CreateEntities(ref errors, numbers);
string msg = result ? "添加成功" : "添加失败:" + errors.Error;
return Json(new { type = result, message = msg, value = message }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { type = 0, message = "添加失败" + message, value = message }, JsonRequestBehavior.AllowGet);
}
}
catch (Exception ex)
{
LogHelper.Error("BlackNumberController_Add:" + ex.StackTrace + ";" + ex.Message);
return Json(new { type = 0, message = ex.Message, value = "" }, JsonRequestBehavior.AllowGet);
}
}
[AuthorizeToolBar(InitRights.CONST_出局资源, InitToolBar.CONST_Delete)]
public JsonResult Delete(string resid, string calltype)
{
if (string.IsNullOrWhiteSpace(resid))
{
return JsonHandler.ManageMessage("参数不对!", false);
}
bool result = _IRES_CALLOUTCUSTOMER.Delete(ref errors, resid, calltype);
return JsonHandler.DeleteMessage(errors, result);
}
}
}