using System; using System.Web.Mvc; using WX.CRM.BLL.Base; using WX.CRM.Common; using WX.CRM.IBLL.Csvr; using WX.CRM.IBLL.Res; using WX.CRM.Model.Entity; using WX.CRM.Model.MAP; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.Res { public class SharedCustomerController : BaseController { private readonly IRES_SHAREDCUSTOMER _sharedCustomer; private readonly ICSVR_FAVORITECUSTOMER_Q _favCustomer; private ValidationErrors errors = new ValidationErrors(); public SharedCustomerController(IRES_SHAREDCUSTOMER sharedCustomer, ICSVR_FAVORITECUSTOMER_Q favCustomer) { this._sharedCustomer = sharedCustomer; this._favCustomer = favCustomer; } [HttpGet] public ActionResult Index() { var tool = new ToolBar(); tool.AllowButton("Create", "Delete"); ViewBag.ToolBar = tool; var pager = new Pager() { page = 1, rows = 10 }; var tableId = "tablist"; var tab = new Table(tableId); tab.AddHeadCol("RESID", "", "客户ID"); tab.AddHeadCol("CNAME", "", "客户姓名"); tab.AddHeadCol("INNERUSERID", "", "收藏客服"); tab.AddHeadCol("SHAREDINNERUSERID", "", "共享客服"); tab.AddHeadCol("CTIME", "", "共享时间"); tab.AddHeadRow(); ViewBag.inneruserid = UserId; ViewBag.userGroupId = userGroupId; ViewBag.saleDeptId = saleDeptId; ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId); ViewBag.List = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,30"); return View(); } [HttpPost] public JsonResult Index(Pager pager, string columns, QueryUserComboDto usercomboDto, int? type, string resId) { var table = new Table(columns, true); var list = _sharedCustomer.GetList(ref pager, usercomboDto, type, resId); table.gridPager = pager; foreach (var model in list) { var resid = string.Format("{2}", "客户详细", "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.ResId, model.ResId); table.AddCol(resid); table.AddCol(model.CName); table.AddCol(InnerUserHelper.Instance.EidAndName(model.InnerUserId)); table.AddCol(InnerUserHelper.Instance.EidAndName(model.SharedInnerUserId)); table.AddCol(model.CTime); table.AddRow(); } var json = new { totalPages = pager.totalPages, totalRows = pager.totalRows, rowsList = table.GetRows() }; return Json(json, JsonRequestBehavior.AllowGet); } [HttpGet] public ActionResult Create() { return View(); } [HttpPost] public JsonResult Create(string resId, decimal eid) { try { if (string.IsNullOrEmpty(resId)) { return JsonHandler.ManageMessage("参数错误!", false); } if (eid <= 0) { return JsonHandler.ManageMessage("参数错误!", false); } if (eid == Eid) { return JsonHandler.ManageMessage("该客户是您收藏的客户,不需要执行该操作!", false); } var favCustomer = _favCustomer.GetModel_FavoriteCustomer(resId, UserId); if (favCustomer == null) { return JsonHandler.ManageMessage("该客户不是您收藏的客户,不能执行该操作!", false); } var sharedUserId = InnerUserHelper.Instance.GetUserIdByEid(eid); if (sharedUserId <= 1) { return JsonHandler.ManageMessage("您填写的工号不存在!", false); } var isExists = _sharedCustomer.Exists(p => p.RESID == resId && p.SHAREDEID == eid); if (isExists) { return JsonHandler.ManageMessage("该客户已经共享给" + eid + ",不需要再操作!", false); } var model = new RES_SHAREDCUSTOMER() { PKID = new SEQUENCES_BL().Seq_base_get(), RESID = resId, INNERUSERID = UserId, EID = Eid, SHAREDINNERUSERID = InnerUserHelper.Instance.GetUserIdByEidOrName(eid.ToString()), SHAREDEID = eid, CTIME = DateTime.Now }; _sharedCustomer.Add(model); return JsonHandler.ManageMessage("创建成功!", true); } catch (Exception ex) { LogHelper.Error(ex.ToString()); return JsonHandler.ManageMessage("创建失败!", false); } } public JsonResult Delete(string resid) { if (!string.IsNullOrEmpty(resid)) { var model = _sharedCustomer.Get(p => p.RESID == resid && p.INNERUSERID == UserId); if (model != null) { _sharedCustomer.Delete(model); return JsonHandler.DeleteMessage(errors, true); } else { errors.Add("找不到该客户或者该客户不是您收藏的客户"); return JsonHandler.DeleteMessage(errors, false); } } else { return JsonHandler.ManageMessage("删除失败!", false); } } } }