ComplianceServer/oldcode/WEB/Controllers/WeiXin/ManualAddWeixinFriendContro...

335 lines
14 KiB
C#
Raw 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.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 "";
}
}
}
}