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

159 lines
6.0 KiB
C#

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]
[AuthorizeRedirect(Roles = InitRights.CONST_高级共享池)]
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("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "客户详细", "/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);
}
}
}
}