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 listBtn = new List(toolbtn); List Buttons = new List(); 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 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 numbers = new List(); 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); } } }