335 lines
14 KiB
C#
335 lines
14 KiB
C#
using Ninject;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Linq;
|
||
using System.Web.Mvc;
|
||
using WX.CRM.BLL.Base;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.IBLL.Csvr;
|
||
using WX.CRM.IBLL.Util;
|
||
using WX.CRM.IBLL.Wx;
|
||
using WX.CRM.Model.Entity;
|
||
using WX.CRM.WebHelper;
|
||
|
||
namespace WX.CRM.WEB.Controllers.WeiXin
|
||
{
|
||
public class ManualAddWeixinFriendController : BaseController
|
||
{
|
||
ValidationErrors errors = new ValidationErrors();
|
||
|
||
[Inject]
|
||
public IWX_MANUALADDWEIXINFRIEND wx_ManualAddWeixinFriend_BL { get; set; }
|
||
|
||
[Inject]
|
||
public IWX_RCONTACT wx_Rcontact_BL { get; set; }
|
||
|
||
[Inject]
|
||
public IWX_WORKACCOUNT wx_WorkAccount_BL { get; set; }
|
||
|
||
[Inject]
|
||
public ICSVR_CALLRECORD csvr_CallRecord_BL { get; set; }
|
||
|
||
[Inject]
|
||
public ICACHE_Q cache_BL { get; set; }
|
||
|
||
|
||
public ManualAddWeixinFriendController()
|
||
{
|
||
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_手工添加微信好友)]
|
||
public ActionResult Index()
|
||
{
|
||
var tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.手工添加微信好友, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
Pager gp = new Pager() { page = 1, rows = 20 };
|
||
Table tab = new Table("tablist");
|
||
tab.AddHeadCol("RESID", "", "客户ID");
|
||
tab.AddHeadCol("WORKALIAS", "", "工作微信号");
|
||
tab.AddHeadCol("WORKUSERNAME", "", "工作微信用户名");
|
||
tab.AddHeadCol("WorkAccountUserId", "", "工作微信客服");
|
||
tab.AddHeadCol("USERNAME", "", "客户微信用户名");
|
||
tab.AddHeadCol("ADDTYPE", "", "添加方式");
|
||
tab.AddHeadCol("RECORDID", "", "录音ID");
|
||
|
||
tab.AddHeadRow();
|
||
ViewBag.GroupList = tab.GetTable() + Pagination.GetPage(gp, "tablist", "20,30,50");
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetHtmlList(Pager pg, string workAlias, string columns)
|
||
{
|
||
try
|
||
{
|
||
Table tb = new Table(columns, true) { gridPager = pg };
|
||
|
||
var list = wx_ManualAddWeixinFriend_BL.GetList(ref pg, UserId, workAlias);
|
||
foreach (var model in list)
|
||
{
|
||
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "客户详细", "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.wx_ManualAddWeiXinFriend.RESID, model.wx_ManualAddWeiXinFriend.RESID);
|
||
tb.AddCol(linkUrl);
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.WORKALIAS);
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.WORKUSERNAME);
|
||
tb.AddCol(InnerUserHelper.Instance.EidAndName(model.WorkAccountUserId));
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.USERNAME);
|
||
tb.AddCol(getAddTypeText(model.wx_ManualAddWeiXinFriend.ADDTYPE));
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.RECORDID);
|
||
tb.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pg.totalPages,
|
||
totalRows = pg.totalRows,
|
||
rowsList = tb.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
return JsonHandler.ManageMessage(ex.Message, false);
|
||
}
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_手工添加微信好友列表)]
|
||
public ActionResult AllList()
|
||
{
|
||
var tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.手工添加微信好友列表, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
Pager gp = new Pager() { page = 1, rows = 20 };
|
||
Table tab = new Table("tablist");
|
||
tab.AddHeadCol("RESID", "", "客户ID");
|
||
tab.AddHeadCol("WORKALIAS", "", "工作微信号");
|
||
tab.AddHeadCol("WORKUSERNAME", "", "工作微信用户名");
|
||
tab.AddHeadCol("WorkAccountUserId", "", "工作微信客服");
|
||
tab.AddHeadCol("USERNAME", "", "客户微信用户名");
|
||
tab.AddHeadCol("ADDTYPE", "", "添加方式");
|
||
tab.AddHeadCol("INNERUSERID", "", "添加人");
|
||
tab.AddHeadCol("RECORDID", "", "录音ID");
|
||
|
||
tab.AddHeadRow();
|
||
ViewBag.GroupList = tab.GetTable() + Pagination.GetPage(gp, "tablist", "20,30,50");
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetAllListHtmlList(Pager pg, decimal? eid, string workAlias, string columns)
|
||
{
|
||
try
|
||
{
|
||
Table tb = new Table(columns, true) { gridPager = pg };
|
||
var innerUserId = InnerUserHelper.Instance.GetUserIdByEid(eid);
|
||
if (innerUserId <= 1)
|
||
{
|
||
innerUserId = 0;
|
||
}
|
||
var list = wx_ManualAddWeixinFriend_BL.GetList(ref pg, innerUserId, workAlias);
|
||
foreach (var model in list)
|
||
{
|
||
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "客户详细", "/Csvr/CustomerInfo/CustomerDetail?resid=" + model.wx_ManualAddWeiXinFriend.RESID, model.wx_ManualAddWeiXinFriend.RESID);
|
||
tb.AddCol(linkUrl);
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.WORKALIAS);
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.WORKUSERNAME);
|
||
tb.AddCol(InnerUserHelper.Instance.EidAndName(model.WorkAccountUserId));
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.USERNAME);
|
||
tb.AddCol(getAddTypeText(model.wx_ManualAddWeiXinFriend.ADDTYPE));
|
||
tb.AddCol(InnerUserHelper.Instance.EidAndName(model.wx_ManualAddWeiXinFriend.INNERUSERID));
|
||
tb.AddCol(model.wx_ManualAddWeiXinFriend.RECORDID);
|
||
tb.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pg.totalPages,
|
||
totalRows = pg.totalRows,
|
||
rowsList = tb.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
return JsonHandler.ManageMessage(ex.Message, false);
|
||
}
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_手工添加微信好友, InitToolBar.CONST_Add)]
|
||
public ActionResult Add(string resId)
|
||
{
|
||
return View(new WX_MANUALADDWEIXINFRIEND());
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_手工添加微信好友, InitToolBar.CONST_Add)]
|
||
public JsonResult Add(WX_MANUALADDWEIXINFRIEND model, string mobile, string cname)
|
||
{
|
||
try
|
||
{
|
||
if (!ModelState.IsValid)
|
||
{
|
||
return JsonHandler.ValidateFailMessage();
|
||
}
|
||
if (!Utility.ChekMobile(mobile))
|
||
{
|
||
errors.Add("请填写正确的手机号!");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
if (string.IsNullOrWhiteSpace(model.WORKALIAS))
|
||
{
|
||
errors.Add("工作微信不能为空");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
if (string.IsNullOrWhiteSpace(model.USERNAME))
|
||
{
|
||
errors.Add("客户微信用户名不能为空");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
string resid = WX.CRM.Common.ResUtil.CreateResId(mobile);
|
||
var resTypeIds = cache_BL.GetValue_Parameter(Model.Enum.Parameter.WeiXin_OfflineResTypeIds);
|
||
if (string.IsNullOrEmpty(resTypeIds))
|
||
{
|
||
errors.Add("线下手机资源库为空!");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
resTypeIds = resTypeIds.Trim(',');
|
||
var typeIdsArr = resTypeIds.Split(',');
|
||
var typeIdList = typeIdsArr.Select(m => Convert.ToDecimal(m)).ToList();
|
||
var customer = wx_ManualAddWeixinFriend_BL.IsOfflineRes(resid, typeIdList);
|
||
if (customer == null)
|
||
{
|
||
errors.Add("添加的用户不是线下资源库的手机号。");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
|
||
var workAccount = wx_WorkAccount_BL.Get(m => m.ALIAS == model.WORKALIAS);
|
||
if (workAccount == null)
|
||
{
|
||
errors.Add("你输入的工作微信号不存在");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
model.WORKUSERNAME = workAccount.USERNAME;
|
||
if (model.ADDTYPE == 1)
|
||
{
|
||
if (!model.RECORDID.HasValue)
|
||
{
|
||
errors.Add("选择电话添加微信,需要填写对于的电话记录ID");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
var callRecord = csvr_CallRecord_BL.Get(m => m.RECORDID == model.RECORDID && m.SALESEID == Eid);
|
||
if (callRecord == null)
|
||
{
|
||
errors.Add("电话记录ID不正确,电话记录ID必须是本人的通话记录");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
}
|
||
var item = wx_ManualAddWeixinFriend_BL.Get(m => m.RESID == resid && m.INNERUSERID == UserId && m.WORKALIAS == model.WORKALIAS && m.USERNAME == model.USERNAME);
|
||
if (item != null)
|
||
{
|
||
errors.Add("你已经添加过该微信的记录,不能重复添加");
|
||
return JsonHandler.UpdateMessage(errors, false);
|
||
}
|
||
model.RESID = resid;
|
||
model.PKID = new SEQUENCES_BL().Seq_base_get();
|
||
model.INNERUSERID = UserId;
|
||
model.CTIME = DateTime.Now;
|
||
var res = wx_ManualAddWeixinFriend_BL.Add(model);
|
||
return JsonHandler.ManageMessage(errors.Error, res == 1);
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex);
|
||
return JsonHandler.ManageMessage(ex.ToString(), false);
|
||
}
|
||
|
||
|
||
|
||
}
|
||
public ActionResult RContactIndex()
|
||
{
|
||
//ToolBar
|
||
ToolBar tool = new ToolBar();
|
||
|
||
ViewBag.ToolBar = tool;
|
||
|
||
//table
|
||
Pager pager = new Pager() { page = 1, rows = 15 };
|
||
string tableId = "tablist";
|
||
Table tab = new Table(tableId);
|
||
|
||
tab.AddHeadCol("USERNAME", "", "微信用户名");
|
||
//tab.AddHeadCol("ALIAS", "", "微信号");
|
||
tab.AddHeadCol("NICKNAME", "", "昵称");
|
||
tab.AddHeadCol("CONREMARK", "", "备注");
|
||
tab.AddHeadCol("", "8%", "");
|
||
tab.AddHeadRow();
|
||
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "5,10,15,20");
|
||
ViewBag.workAlias = Request["workAlias"];
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetRcontactHtmlList(Pager pager, string alias, string nickName, string conRemark, string workAlias, string columns)
|
||
{
|
||
string isShowMobileOfContent = cache_BL.GetValue_Parameter(Model.Enum.Parameter.Sys_IsShowMobileOfContent);
|
||
List<WX_RCONTACT> list = wx_Rcontact_BL.GetWorkAliasRcontactList(ref pager, null, alias, conRemark, nickName, workAlias);
|
||
Table table = new Table(columns, true);
|
||
table.gridPager = pager;
|
||
foreach (var model in list)
|
||
{
|
||
table.AddCol(model.USERNAME);
|
||
//table.AddCol(model.ALIAS);
|
||
if (!string.IsNullOrEmpty(isShowMobileOfContent) && isShowMobileOfContent == "1")
|
||
{
|
||
table.AddCol(model.NICKNAME);
|
||
table.AddCol(model.CONREMARK);
|
||
}
|
||
else
|
||
{
|
||
table.AddCol(Utility.ReplaceMobile(model.NICKNAME));
|
||
table.AddCol(Utility.ReplaceMobile(model.CONREMARK));
|
||
}
|
||
|
||
var payInfoUrl = string.Format("<a href=\"javascript:selectCustomerWx('{0}')\">选择</a>", model.USERNAME);
|
||
table.AddCol(payInfoUrl);
|
||
table.AddRow();
|
||
}
|
||
var json = new
|
||
{
|
||
totalPages = pager.totalPages,
|
||
totalRows = pager.totalRows,
|
||
rowsList = table.GetRows()
|
||
};
|
||
return Json(json, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
private string getAddTypeText(decimal? addType)
|
||
{
|
||
if (!addType.HasValue)
|
||
{
|
||
return "";
|
||
}
|
||
int i = Convert.ToInt32(addType);
|
||
switch (i)
|
||
{
|
||
case 1:
|
||
return "电话";
|
||
case 2:
|
||
return "通讯录扫码";
|
||
default:
|
||
return "";
|
||
}
|
||
}
|
||
}
|
||
}
|