953 lines
38 KiB
C#
953 lines
38 KiB
C#
using CRM.Core.DTO;
|
||
using Newtonsoft.Json;
|
||
using Newtonsoft.Json.Linq;
|
||
using Ninject;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.Linq;
|
||
using System.Reflection;
|
||
using System.Text;
|
||
using System.Web.Mvc;
|
||
using WX.CRM.BLL.Base;
|
||
using WX.CRM.BLL.Util;
|
||
using WX.CRM.Common;
|
||
using WX.CRM.Common.Layui;
|
||
using WX.CRM.Common.StockHelper;
|
||
using WX.CRM.IBLL.Util;
|
||
using WX.CRM.IBLL.Ww;
|
||
using WX.CRM.Model.crmModel;
|
||
using WX.CRM.Model.DTO;
|
||
using WX.CRM.Model.Entity;
|
||
using WX.CRM.Model.MAP;
|
||
using WX.CRM.Model.Ww;
|
||
using WX.CRM.WebHelper;
|
||
|
||
namespace WX.CRM.WEB.Controllers.Ww
|
||
{
|
||
public class MyWorkController : BaseController
|
||
{
|
||
private ValidationErrors errors = new ValidationErrors();
|
||
|
||
[Inject]
|
||
public BAS_BUSSINESSLINE_BL line_BL { get; set; }
|
||
|
||
[Inject]
|
||
public CACHE_BL cache_BL { get; set; }
|
||
|
||
[Inject]
|
||
public IWw_huser _iww_hhuser_service { get; set; }
|
||
|
||
[Inject]
|
||
public ICACHE_Q cacheQ { get; set; }
|
||
|
||
//
|
||
// GET: /MyWork/
|
||
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_付费企业微信)]
|
||
public ActionResult Index(int? isExe, int? assignStatus, string filteruserId, decimal? eid)
|
||
{
|
||
//ToolBar
|
||
ToolBar tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.付费企业微信, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
tool.AddOtherButton("Other1", "聊天记录", "icon-detail", "ChatRecord_Click", true);
|
||
tool.AddOtherButton("Other2", "外部联系人", "icon-group", "OuterUser_Click", true);
|
||
tool.AddOtherButton("Other3", "查找客户", "icon-search", "FindUser_Click", true);
|
||
tool.AddOtherButton("Other4", "群管理", "icon-search", "Group_Click", true);
|
||
tool.AddOtherButton("Other5", "解绑", "", "", true);
|
||
tool.AddOtherButton("Other6", "设置工号", "", "", true);
|
||
tool.AddOtherButton("Other7", "测试企微", "", "", true);
|
||
tool.AddOtherButton("Other8", "批量设置推广", "", "", true);
|
||
tool.AddOtherButton("Other9", "导出", "", "", true);
|
||
tool.AddOtherButton("Other10", "拉取信息", "", "", true);
|
||
|
||
ViewBag.ToolBar = tool;
|
||
var appid = System.Configuration.ConfigurationManager.AppSettings["appid"];
|
||
ViewBag.appid = appid;
|
||
ViewBag.wweid = Eid;
|
||
string companycode = companyCode;
|
||
List<Ww_Corp> list = _iww_hhuser_service.Corp_Get();
|
||
if (!string.IsNullOrEmpty(companycode))
|
||
{
|
||
string companycodeFormat = string.Format("[{0}]", companycode);
|
||
list = list.Where(m => m.companycode.Contains(companycodeFormat)).ToList();
|
||
}
|
||
string defaultcorp = cacheQ.GetValue_Parameter("QWDefaultCorpId");
|
||
|
||
List<SelectListItem> selectlist = new List<SelectListItem>();
|
||
if (string.IsNullOrEmpty(companycode))//公司为空才能请选择
|
||
{
|
||
var defaultItem = new SelectListItem() { Value = "", Text = "请选择" };
|
||
if (isExe.HasValue)
|
||
{
|
||
defaultItem = new SelectListItem() { Value = "", Text = "请选择", Selected = true };
|
||
}
|
||
selectlist.Add(defaultItem);
|
||
}
|
||
List<object> datalist = new List<object>();
|
||
if (list.Count > 0)
|
||
{
|
||
foreach (Ww_Corp item in list)
|
||
{
|
||
if (!string.IsNullOrEmpty(defaultcorp) && defaultcorp == item.corpid && !isExe.HasValue)
|
||
{
|
||
selectlist.Add(new SelectListItem() { Text = item.corpname, Value = item.corpid, Selected = true });
|
||
}
|
||
else
|
||
{
|
||
selectlist.Add(new SelectListItem() { Text = item.corpname, Value = item.corpid });
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(companycode))
|
||
{
|
||
if (!string.IsNullOrEmpty(item.deptid))
|
||
{
|
||
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
|
||
datalist.Add(new { corpid = item.corpid, deptid = obj[companycode].ToString() });
|
||
}
|
||
else
|
||
{
|
||
datalist.Add(new { corpid = item.corpid, deptid = "" });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
selectlist.Add(new SelectListItem() { Value = "-1", Text = "无数据" });
|
||
}
|
||
var allChannel = new List<Dictionary<string, string>>();
|
||
foreach (var pro in selectlist)
|
||
{
|
||
var channel = new Dictionary<string, string>
|
||
{
|
||
{ "name", pro.Text },
|
||
{ "value", pro.Value.ToString() }
|
||
};
|
||
allChannel.Add(channel);
|
||
}
|
||
ViewBag.Select = JsonHelper.ObjDivertToJson(allChannel);
|
||
ViewBag.companycode = companycode;
|
||
ViewBag.DataList = JsonHelper.ObjDivertToJson(datalist);
|
||
|
||
ViewBag.WwMessage_Url = cacheQ.GetValue_Parameter("WwMessage_Url");
|
||
ViewBag.IsHg = userRoleCodes.Contains("[HGZJ]") || userRoleCodes.Contains("[GLY]");
|
||
ViewBag.IsJG = userRoleCodes.Contains("[JGJS]");
|
||
ViewBag.isExe = isExe;
|
||
ViewBag.assignStatus = assignStatus;
|
||
ViewBag.fiterUser = filteruserId;
|
||
ViewBag.eid = eid;
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_付费企业微信)]
|
||
public JsonResult GetWeWorktHtmlList(Laypage pager, Ww_IndexQueryModel dto)
|
||
{
|
||
var layUidata = new LayuiData<Ww_hhuserModel>();
|
||
try
|
||
{
|
||
if (!dto.isExe.HasValue)
|
||
{
|
||
dto.fiterUser = "";
|
||
}
|
||
if (dto.name != null)
|
||
{
|
||
dto.name = dto.name.Trim();
|
||
}
|
||
if (string.IsNullOrEmpty(dto.corp))
|
||
{
|
||
string companycode = companyCode;
|
||
List<Ww_Corp> list2 = _iww_hhuser_service.Corp_Get();
|
||
if (!string.IsNullOrEmpty(companycode))
|
||
{
|
||
string companycodeFormat = string.Format("[{0}]", companycode);
|
||
list2 = list2.Where(m => m.companycode.Contains(companycodeFormat)).ToList();
|
||
}
|
||
dto.corp = string.Join(",", list2.Select(m => m.corpid));
|
||
}
|
||
List<Ww_hhuserModel> list = _iww_hhuser_service.WorList_Get(ref pager, dto);
|
||
var userList = cache_BL.GetUserList();
|
||
var innergroup = cache_BL.GetList_InnerUserGroup();
|
||
var groupList = cache_BL.GetGroupList();
|
||
var deptList = cache_BL.GetList_SalesDepartMent();
|
||
foreach (var item in list)
|
||
{
|
||
if (item.eid.HasValue)
|
||
{
|
||
var user = userList.FirstOrDefault(n => n.EID == item.eid);
|
||
if (user != null)
|
||
{
|
||
item.eidAndName = user.EID + "-" + user.UNAME;
|
||
var groupid = innergroup.FirstOrDefault(n => n.INNERUSERID == user.PKID);
|
||
if (groupid != null)
|
||
{
|
||
var group = groupList.FirstOrDefault(n => n.GID == groupid.GID);
|
||
item.gname = group?.GNAME;
|
||
if (string.IsNullOrWhiteSpace(item.gname))
|
||
{
|
||
var dept = deptList.FirstOrDefault(n => n.SALEDEPTID == groupid.DEPTID);
|
||
item.gname = dept?.DEPTNAME;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (dto.isExe.HasValue)
|
||
{
|
||
_iww_hhuser_service.UpdateWxStatusNotice(dto.fiterUser, this.UserId, dto.assignStatus);
|
||
}
|
||
layUidata.msg = "数据加载成功";
|
||
layUidata.code = 0;
|
||
layUidata.data = list;
|
||
layUidata.count = pager.count;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
layUidata.SetFail(1, "出现错误!" + ex.Message);
|
||
}
|
||
return Json(layUidata);
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_付费企业微信, InitToolBar.CONST_Other8)]
|
||
public FileResult ExportData(Ww_IndexQueryModel dto)
|
||
{
|
||
Laypage pager = new Laypage
|
||
{
|
||
limit = 100000,
|
||
page = 1
|
||
};
|
||
List<Ww_hhuserModel> list = _iww_hhuser_service.WorList_Get(ref pager, dto);
|
||
List<Ww_hhuserExportModel> res = new List<Ww_hhuserExportModel>();
|
||
foreach (var item in list)
|
||
{
|
||
res.Add(new Ww_hhuserExportModel
|
||
{
|
||
corpid = item.corpid,
|
||
corpname = item.corpname,
|
||
userid = item.userid,
|
||
mobile = item.mobile,
|
||
uname = item.uname,
|
||
eidAndName = item.eidAndName,
|
||
gname = item.gname,
|
||
StatusName = item.StatusName,
|
||
assignStatusName = item.assignStatusName,
|
||
lmsgtime = item.lmsgtime,
|
||
deptname = item.deptname,
|
||
email = item.email,
|
||
newAdd = item.newAdd,
|
||
myExtuser = item.myExtuser
|
||
});
|
||
}
|
||
String file = string.Format("QiWeiExport{0}.xls", DateTime.Now.ToLocalTime().ToString("yyyyMMddHHmmssfffff"));
|
||
return File(ExcelHelper.ExportListModelToExcel<Ww_hhuserExportModel>(res, "WeWorkExport", 30000, null), "application/ms-excel", file);
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_付费企业微信, InitToolBar.CONST_Other5)]
|
||
public ActionResult SetEid(string corp, string userid)
|
||
{
|
||
WW_HHUSER_EID model = new WW_HHUSER_EID();
|
||
if (string.IsNullOrEmpty(corp) || string.IsNullOrEmpty(corp))
|
||
{
|
||
ViewBag.isOK = "0";
|
||
ViewBag.Msg = "参数不对!";
|
||
}
|
||
else
|
||
{
|
||
model = _iww_hhuser_service.GetModel(userid, corp);
|
||
if (model == null)
|
||
{
|
||
model = new WW_HHUSER_EID() { USERID = userid, CORPID = corp };
|
||
}
|
||
}
|
||
return View(model);
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_个人企微账号绑定, InitToolBar.CONST_Other5)]
|
||
public ActionResult ChangeEid(string data)
|
||
{
|
||
ViewBag.data = data;
|
||
return View();
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_个人企微账号绑定, InitToolBar.CONST_Other3)]
|
||
public ActionResult BindEid()
|
||
{
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_个人企微账号绑定, InitToolBar.CONST_Other5)]
|
||
public JsonResult ChangeEid(ChangeEidModel model)
|
||
{
|
||
bool result = _iww_hhuser_service.BatchChangeEid(model.Eid.Value, model.data, ref errors);
|
||
retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "设置成功!" };
|
||
if (!result)
|
||
{
|
||
ret.retmsg = "设置失败:" + errors.Error;
|
||
}
|
||
else if (errors.Count() > 0)
|
||
{
|
||
ret.retmsg = $"设置成功" + errors.Error;
|
||
}
|
||
return Json(ret);
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_付费企业微信, InitToolBar.CONST_Other5)]
|
||
public JsonResult SetEidSave(WW_HHUSER_EID model)
|
||
{
|
||
bool result = _iww_hhuser_service.SetEid(model.EID.Value, model.USERID, model.CORPID, model.ASSIGNSTATUS, ref errors);
|
||
retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "设置成功!" };
|
||
if (!result)
|
||
{
|
||
ret.retmsg = "设置失败:" + errors.Error;
|
||
}
|
||
return Json(ret);
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_付费企业微信, InitToolBar.CONST_Other7)]
|
||
public ActionResult BatchSetStatus(string data)
|
||
{
|
||
ViewBag.data = data;
|
||
//ViewBag.assignStatus = assignStatus;
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_付费企业微信, InitToolBar.CONST_Other7)]
|
||
public JsonResult BatchSetStatus(Ww_BatchStatus model)
|
||
{
|
||
bool result = _iww_hhuser_service.BatchUpdateStatus(model, ref errors);
|
||
retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "设置成功!" };
|
||
if (!result)
|
||
{
|
||
ret.retmsg = "设置推广失败:" + errors.Error;
|
||
}
|
||
return Json(ret);
|
||
}
|
||
|
||
[HttpGet]
|
||
public JsonResult Check(string postdata)
|
||
{
|
||
var url = "http://sys.hc.dn8188.com/Work/getqr.html";
|
||
|
||
var data = postdata.Split(';').Where(n => !string.IsNullOrWhiteSpace(n)).ToList();
|
||
List<string> success = new List<string>();
|
||
List<string> failData = new List<string>();
|
||
foreach (var item in data)
|
||
{
|
||
var spiltStr = item.Split('|').ToList();
|
||
if (spiltStr.Count > 1)
|
||
{
|
||
var json = new
|
||
{
|
||
appid = spiltStr[0],
|
||
UserId = spiltStr[1]
|
||
};
|
||
var rsp = Utility.PostAjaxData(url, json.ToJson(), Encoding.UTF8);
|
||
var obj = Utility.JSONToObject<QwCheckRsp>(rsp);
|
||
|
||
if (obj.errcode == 0)
|
||
{
|
||
success.Add(spiltStr[1]);
|
||
}
|
||
else
|
||
{
|
||
failData.Add(spiltStr[1]);
|
||
}
|
||
}
|
||
}
|
||
if (failData.Count > 0)
|
||
{
|
||
return Json(new { result = false, msg = $"{string.Join(",", failData)}" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
return Json(new { result = true, msg = $"{string.Join(",", success)}" }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
[HttpGet]
|
||
public JsonResult UpdateWorkUser(string appid, string userid)
|
||
{
|
||
var resutl = false;
|
||
var urls = cacheQ.GetValue_Parameter("WwMessage_Url_UpdateWorkUser");
|
||
if (!string.IsNullOrEmpty(urls))
|
||
{
|
||
var parts = urls.Split(',');
|
||
foreach (var part in parts)
|
||
{
|
||
var url = $"{part}/Admin/OutHHuser/UpdateWorkUser";
|
||
var rsp = Utility.PostAjaxData(url, new { appid, userid }.ToJson(), Encoding.UTF8);
|
||
var obj = Utility.JSONToObject<retMsg>(rsp);
|
||
resutl = obj.result;
|
||
}
|
||
}
|
||
return Json(new { resutl }, JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_个人企微账号绑定)]
|
||
public ActionResult SelfIndex()
|
||
{
|
||
//ToolBar
|
||
ToolBar tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.个人企微账号绑定, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
tool.AddOtherButton("Other1", "聊天记录", "icon-detail", "ChatRecord_Click", true);
|
||
tool.AddOtherButton("Other2", "外部联系人", "icon-group", "OuterUser_Click", true);
|
||
tool.AddOtherButton("Other3", "绑定企微账号", "icon-search", "FindUser_Click", true);
|
||
tool.AddOtherButton("Other4", "解绑", "icon-search", "Group_Click", true);
|
||
tool.AddOtherButton("Other5", "转绑", "", "", true);
|
||
//tool.AddOtherButton("Other6", "测试企微", "", "", true);
|
||
ViewBag.WwMessage_Url = cacheQ.GetValue_Parameter("WwMessage_Url");
|
||
ViewBag.ToolBar = tool;
|
||
var appid = System.Configuration.ConfigurationManager.AppSettings["appid"];
|
||
ViewBag.appid = appid;
|
||
ViewBag.wweid = Eid;
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_个人企微账号绑定)]
|
||
public JsonResult GetSelfWeWorktHtmlList(Laypage pager, MyWeUserDto dto)
|
||
{
|
||
var layUidata = new LayuiData<SelfWw_hhuserModel>();
|
||
try
|
||
{
|
||
dto.txt_userId = UserId;
|
||
List<SelfWw_hhuserModel> list = _iww_hhuser_service.SelfWorList_Get(ref pager, dto);
|
||
|
||
layUidata.msg = "数据加载成功";
|
||
layUidata.code = 0;
|
||
layUidata.data = list;
|
||
layUidata.count = pager.count;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
layUidata.SetFail(1, "出现错误!" + ex.Message);
|
||
}
|
||
return Json(layUidata);
|
||
}
|
||
|
||
public ActionResult Choose(string corpid = "", string type = "")
|
||
{
|
||
ViewBag.corp = corpid;
|
||
ViewBag.orginType = type;
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
public JsonResult GetChooseHtmlList(Laypage pager, MyWeUserDto dto)
|
||
{
|
||
var layUidata = new LayuiData<Ww_hhuserModel>();
|
||
if (dto.name != null)
|
||
{
|
||
dto.name = dto.name.Trim();
|
||
}
|
||
if (dto.id != null)
|
||
{
|
||
dto.id = dto.id.Trim();
|
||
}
|
||
dto.txt_userId = UserId;
|
||
try
|
||
{
|
||
List<Ww_hhuserModel> list = _iww_hhuser_service.WxResourceList_GetByName(ref pager, dto);
|
||
|
||
#region 1005730 不排除无工号的员工,然后排除非本事业线的员工
|
||
|
||
var lineIds = new List<decimal>();
|
||
var lineList = line_BL.GetBusinessLineByRoot(UserId);
|
||
if (lineList != null && lineList.Count > 0)
|
||
{
|
||
lineIds.AddRange(lineList.Select(o => o.BUSINESSID));
|
||
}
|
||
var userids = list.Select(o => o.userid).ToArray();
|
||
var userids_valid = GetValidUserIds(lineIds, userids);
|
||
for (var i = list.Count - 1; i >= 0; i--)
|
||
{
|
||
var item = list[i];
|
||
if (!userids_valid.Any(a => a == item.userid))
|
||
{
|
||
list.RemoveAt(i);
|
||
}
|
||
}
|
||
|
||
#endregion 1005730 不排除无工号的员工,然后排除非本事业线的员工
|
||
|
||
foreach (var item in list)
|
||
{
|
||
if (item.eid.HasValue && item.eid > 0)
|
||
{
|
||
decimal userid = InnerUserHelper.Instance.GetUserIdByEid(item.eid);
|
||
//item.eidAndName = InnerUserHelper.Instance.EidAndName(userid);//工号姓名
|
||
item.gname = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(userid));//组别
|
||
}
|
||
}
|
||
|
||
layUidata.msg = "数据加载成功";
|
||
layUidata.code = 0;
|
||
layUidata.data = list;
|
||
layUidata.count = pager.count;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
layUidata.SetFail(1, "出现错误!" + ex.Message);
|
||
}
|
||
return Json(layUidata);
|
||
}
|
||
|
||
private List<string> GetValidUserIds(List<decimal> lineIds, params string[] userIds)
|
||
{
|
||
var items = new List<string>();
|
||
if (lineIds == null || lineIds.Count == 0 || userIds == null || userIds.Length == 0)
|
||
{
|
||
return items;
|
||
}
|
||
try
|
||
{
|
||
var webapi = cache_BL.GetValue_Parameter(WX.CRM.Model.Enum.Parameter.ZXD_CORE_WEBAPI);
|
||
//webapi="http://localhost:5244";
|
||
webapi = $"{webapi}/Api/UserInfo/GetLineId";
|
||
var para = $"userids={string.Join(",", userIds)}";
|
||
var result = Utility.GetData(webapi, para, Encoding.UTF8);
|
||
var rsp = Newtonsoft.Json.JsonConvert.DeserializeObject<WX.CRM.Common.StockHelper.ApiResult<List<WeWorkUser2EidDto>>>(result);
|
||
if (rsp.Data != null && rsp.Data.Count > 0)
|
||
{
|
||
foreach (var item in rsp.Data)
|
||
{
|
||
if (lineIds.Contains(item.deptid.GetValueOrDefault()))
|
||
{
|
||
items.Add(item.userid);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error($"GetValidUserIds|{string.Join(",", lineIds)}|{string.Join(",", lineIds)}{Environment.NewLine}{ex.Message}", ex);
|
||
return userIds.ToList();
|
||
}
|
||
|
||
return items.Distinct().ToList();
|
||
}
|
||
|
||
private class WeWorkUser2EidDto
|
||
{
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
[Description("")]
|
||
public string userid { get; set; }
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
[Description("")]
|
||
public int? eid { get; set; }
|
||
|
||
/// <summary>
|
||
///
|
||
/// </summary>
|
||
[Description("")]
|
||
public int? deptid { get; set; }
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_个人企微账号绑定)]
|
||
public JsonResult GetWeWorkHtmlListByName(Laypage pager, MyWeUserDto dto)
|
||
{
|
||
var layUidata = new LayuiData<Ww_hhuserModel>();
|
||
if (dto.name != null)
|
||
{
|
||
dto.name = dto.name.Trim();
|
||
}
|
||
if (dto.id != null)
|
||
{
|
||
dto.id = dto.id.Trim();
|
||
}
|
||
dto.txt_userId = UserId;
|
||
try
|
||
{
|
||
List<Ww_hhuserModel> list = _iww_hhuser_service.WorList_GetByName(ref pager, dto);
|
||
foreach (var item in list)
|
||
{
|
||
if (item.eid.HasValue && item.eid > 0)
|
||
{
|
||
decimal userid = InnerUserHelper.Instance.GetUserIdByEid(item.eid);
|
||
item.eidAndName = InnerUserHelper.Instance.EidAndName(userid);//工号姓名
|
||
item.gname = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(userid));//组别
|
||
}
|
||
}
|
||
|
||
layUidata.msg = "数据加载成功";
|
||
layUidata.code = 0;
|
||
layUidata.data = list;
|
||
layUidata.count = pager.count;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
layUidata.SetFail(1, "出现错误!" + ex.Message);
|
||
}
|
||
return Json(layUidata);
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_个人企微账号绑定, InitToolBar.CONST_Other4)]
|
||
public JsonResult ClearEid(string data)
|
||
{
|
||
var list = JsonConvert.DeserializeObject<List<SelfUnBindModel>>(data);
|
||
bool result = _iww_hhuser_service.ClearEid(list, 0, ref errors);
|
||
retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "设置成功!" };
|
||
if (!result)
|
||
{
|
||
ret.retmsg = "解绑失败";
|
||
}
|
||
return Json(ret);
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeToolBar(InitRights.CONST_个人企微账号绑定, InitToolBar.CONST_Other3)]
|
||
public JsonResult BatchSetEidSave(string data)
|
||
{
|
||
var list = JsonConvert.DeserializeObject<List<SelfUnBindModel>>(data);
|
||
bool result = _iww_hhuser_service.ClearEid(list, UserId, ref errors);
|
||
retMsg ret = new retMsg() { result = result, retcode = 200, retmsg = "设置成功!" };
|
||
if (!result)
|
||
{
|
||
ret.result = false;
|
||
}
|
||
if (errors.Count > 0)
|
||
{
|
||
ret.retmsg = errors.Error;
|
||
}
|
||
|
||
return Json(ret);
|
||
}
|
||
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_我的企微客户)]
|
||
public ActionResult MyWeWork()
|
||
{
|
||
//ToolBar
|
||
ToolBar tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.我的企微客户, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
string companycode = companyCode;
|
||
List<Ww_Corp> list = _iww_hhuser_service.Corp_Get();
|
||
if (!string.IsNullOrEmpty(companycode))
|
||
{
|
||
string companycodeFormat = string.Format("[{0}]", companycode);
|
||
list = list.Where(m => m.companycode.Contains(companycodeFormat)).ToList();
|
||
}
|
||
string defaultcorp = cacheQ.GetValue_Parameter("QWDefaultCorpId");
|
||
|
||
List<SelectListItem> selectlist = new List<SelectListItem>();
|
||
if (string.IsNullOrEmpty(companycode))//公司为空才能请选择
|
||
{
|
||
selectlist.Add(new SelectListItem() { Value = "", Text = "请选择" });
|
||
}
|
||
List<object> datalist = new List<object>();
|
||
if (list.Count > 0)
|
||
{
|
||
foreach (Ww_Corp item in list)
|
||
{
|
||
if (!string.IsNullOrEmpty(defaultcorp) && defaultcorp == item.corpid)
|
||
{
|
||
selectlist.Add(new SelectListItem() { Text = item.corpname, Value = item.corpid, Selected = true });
|
||
}
|
||
else
|
||
{
|
||
selectlist.Add(new SelectListItem() { Text = item.corpname, Value = item.corpid });
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(companycode))
|
||
{
|
||
if (!string.IsNullOrEmpty(item.deptid))
|
||
{
|
||
JObject obj = (JObject)Newtonsoft.Json.Linq.JObject.Parse(item.deptid);
|
||
datalist.Add(new { corpid = item.corpid, deptid = obj[companycode].ToString() });
|
||
}
|
||
else
|
||
{
|
||
datalist.Add(new { corpid = item.corpid, deptid = "" });
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
selectlist.Add(new SelectListItem() { Value = "-1", Text = "无数据" });
|
||
}
|
||
//获取活动枚举
|
||
ViewBag.SceneType = GetSceneTypeList();
|
||
//ViewBag.SceneList = GetSceneList();
|
||
|
||
ViewBag.Select = selectlist;
|
||
ViewBag.companycode = companycode;
|
||
ViewBag.DataList = JsonHelper.ObjDivertToJson(datalist);
|
||
|
||
ViewBag.WwMessage_Url = cacheQ.GetValue_Parameter("WwMessage_Url");
|
||
ViewBag.IsHg = userRoleCodes.Contains("[HGZJ]") || userRoleCodes.Contains("[GLY]");
|
||
return View();
|
||
}
|
||
|
||
public JsonResult GetSubSceneList(string scene)
|
||
{
|
||
return Json(GetSceneList(scene), JsonRequestBehavior.AllowGet);
|
||
}
|
||
|
||
public List<SelectListItem> GetSceneTypeList()
|
||
{
|
||
var sceneurl = cacheQ.GetValue_Parameter("SceneUrl");
|
||
List<SelectListItem> sceneType = new List<SelectListItem>();
|
||
var cacheKey = "sceneTypeList";
|
||
if (CacheHelper.Exists(cacheKey))
|
||
{
|
||
sceneType = CacheHelper.Get<List<SelectListItem>>(cacheKey);
|
||
}
|
||
else
|
||
{
|
||
var sceneTypeUrl = $"{sceneurl}/scene/type/i";
|
||
string retmsg = Utility.PostData(sceneTypeUrl, new object().ToJson(), Encoding.UTF8);
|
||
var res = Utility.JSONToObject<CmsModel>(retmsg);
|
||
var objstr = JsonConvert.SerializeObject(res.data);
|
||
var mapList = JsonConvert.DeserializeObject<Dictionary<string, string>>(objstr);
|
||
foreach (var item in mapList)
|
||
{
|
||
sceneType.Add(new SelectListItem() { Value = item.Key, Text = item.Value });
|
||
}
|
||
CacheHelper.Set(cacheKey, sceneType, DateTime.Now.AddHours(1));
|
||
}
|
||
return sceneType;
|
||
}
|
||
|
||
public List<SelectListItem> GetSceneList(string sceneType)
|
||
{
|
||
List<SelectListItem> res = new List<SelectListItem>();
|
||
if (string.IsNullOrWhiteSpace(sceneType))
|
||
{
|
||
return res;
|
||
}
|
||
var scene = Convert.ToInt32(sceneType);
|
||
var sceneurl = cacheQ.GetValue_Parameter("SceneUrl");
|
||
|
||
// List<SelectListItem> sceneList = new List<SelectListItem>();
|
||
var cacheSceneTypeKey = "sceneList";
|
||
SceneListModel sceneList = new SceneListModel();
|
||
if (CacheHelper.Exists(cacheSceneTypeKey))
|
||
{
|
||
sceneList = CacheHelper.Get<SceneListModel>(cacheSceneTypeKey);
|
||
}
|
||
else
|
||
{
|
||
var sceneListUrl = $"{sceneurl}/scene/list/i";
|
||
string listretmsg = Utility.PostData(sceneListUrl, new object().ToJson(), Encoding.UTF8);
|
||
sceneList = Utility.JSONToObject<SceneListModel>(listretmsg);
|
||
CacheHelper.Set(cacheSceneTypeKey, sceneList, DateTime.Now.AddHours(1));
|
||
}
|
||
foreach (var item in sceneList.data)
|
||
{
|
||
if (item.sceneType == scene)
|
||
{
|
||
res.Add(new SelectListItem() { Value = item.scene.ToString(), Text = item.name });
|
||
}
|
||
}
|
||
return res;
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_我的企微客户)]
|
||
public JsonResult GetMyWeWorktHtmlList(Laypage pager, MyWeUserDto dto)
|
||
{
|
||
var layUidata = new LayuiData<My_hhuserModel>();
|
||
try
|
||
{
|
||
List<My_hhuserModel> list = _iww_hhuser_service.MyWeUser_Get(ref pager, dto);
|
||
layUidata.msg = "数据加载成功";
|
||
layUidata.code = 0;
|
||
layUidata.data = list;
|
||
layUidata.count = pager.count;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
layUidata.SetFail(1, "出现错误!" + ex.Message);
|
||
}
|
||
return Json(layUidata);
|
||
}
|
||
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_企微通话查询)]
|
||
public ActionResult QWRecord()
|
||
{
|
||
ToolBar tool = new ToolBar();
|
||
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.企微通话查询, userRightId);
|
||
tool.AllowButton(toolbtn);
|
||
ViewBag.ToolBar = tool;
|
||
|
||
string companycode = companyCode;
|
||
List<Ww_Corp> list = _iww_hhuser_service.Corp_Get();
|
||
if (!string.IsNullOrEmpty(companycode))
|
||
{
|
||
string companycodeFormat = string.Format("[{0}]", companycode);
|
||
list = list.Where(m => m.companycode.Contains(companycodeFormat)).ToList();
|
||
}
|
||
|
||
List<SelectListItem> selectlist = new List<SelectListItem>();
|
||
if (string.IsNullOrEmpty(companycode))//公司为空才能请选择
|
||
{
|
||
selectlist.Add(new SelectListItem() { Value = "", Text = "请选择" });
|
||
}
|
||
foreach (Ww_Corp item in list)
|
||
{
|
||
selectlist.Add(new SelectListItem() { Text = item.corpname, Value = item.corpid });
|
||
}
|
||
|
||
var businessLines = cache_BL.GetList_BusinessLines();
|
||
|
||
var deptids = new List<decimal>();
|
||
var user = cache_BL.GetUserList().FirstOrDefault(n => n.EID == Eid);
|
||
if (user.DEPTID.HasValue && user.DEPTID > 0)
|
||
deptids.Add(user.DEPTID.Value);
|
||
else
|
||
deptids.AddRange(businessLines.Select(x => x.BUSINESSID));
|
||
|
||
ViewBag.Select = selectlist;
|
||
ViewBag.companycode = companycode;
|
||
ViewBag.DeptIds = string.Join(",", deptids);
|
||
ViewBag.BusinessLines = businessLines;
|
||
|
||
ViewBag.HHMessageFile = cacheQ.GetValue_Parameter("HHMessageFile");
|
||
ViewBag.InnerFile = cacheQ.GetValue_Parameter("InnerFile");
|
||
|
||
return View();
|
||
}
|
||
|
||
[HttpPost]
|
||
[AuthorizeRedirect(Roles = InitRights.CONST_企微通话查询)]
|
||
public JsonResult GetQWRecordHtmlList(Laypage pager, QWRecordRequestDto dto)
|
||
{
|
||
var layUidata = new LayuiData<QWRecordResponseDto>();
|
||
try
|
||
{
|
||
var list = new List<QWRecordResponseDto>();
|
||
|
||
var url = cacheQ.GetValue_Parameter("QW_CallRecordUrl");
|
||
|
||
if (dto.msgtime_from.HasValue)
|
||
dto.msgtime_fromStr = dto.msgtime_from.Value.ToString("yyyy-MM-dd");
|
||
|
||
if (dto.msgtime_to.HasValue)
|
||
dto.msgtime_toStr = dto.msgtime_to.Value.AddDays(1).AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss");
|
||
|
||
var para = $@"currentPage={pager.page}&pageSize={pager.limit}&sortBy=start_time desc&deptids={dto.deptids}&deptid={dto.deptid}&eid={dto.eid}&msgtime_from={dto.msgtime_fromStr}&msgtime_to={dto.msgtime_toStr}&corpid={dto.corpid}&internal_user={dto.internal_user}&external_user={dto.external_user}";
|
||
|
||
var result = Utility.GetData(url, para, Encoding.UTF8);
|
||
|
||
var page = JsonConvert.DeserializeObject<ApiResult<SpecialPageResult<QWRecordResponseDto>>>(result);
|
||
|
||
if (page.Code == 0)
|
||
{
|
||
list = page.Data.TableData.ToList();
|
||
}
|
||
|
||
layUidata.msg = "数据加载成功";
|
||
layUidata.code = 0;
|
||
layUidata.data = list;
|
||
layUidata.count = page.Data.Total;
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
LogHelper.Error(ex.ToString());
|
||
layUidata.SetFail(1, "出现错误!" + ex.Message);
|
||
}
|
||
return Json(layUidata);
|
||
}
|
||
|
||
[HttpGet]
|
||
[AuthorizeToolBar(InitRights.CONST_企微通话查询, InitToolBar.CONST_Export)]
|
||
public FileResult QWRecordExport(QWRecordRequestDto dto)
|
||
{
|
||
var list = new List<QWRecordResponseDto>();
|
||
|
||
var url = cacheQ.GetValue_Parameter("QW_CallRecordUrl");
|
||
|
||
if (dto.msgtime_from.HasValue)
|
||
dto.msgtime_fromStr = dto.msgtime_from.Value.ToString("yyyy-MM-dd");
|
||
|
||
if (dto.msgtime_to.HasValue)
|
||
dto.msgtime_toStr = dto.msgtime_to.Value.AddDays(1).AddSeconds(-1).ToString("yyyy-MM-dd HH:mm:ss");
|
||
|
||
var para = $@"currentPage=1&pageSize=100000&sortBy=start_time desc&deptids={dto.deptids}&deptid={dto.deptid}&eid={dto.eid}&msgtime_from={dto.msgtime_fromStr}&msgtime_to={dto.msgtime_toStr}&corpid={dto.corpid}&internal_user={dto.internal_user}&external_user={dto.external_user}";
|
||
|
||
var result = Utility.GetData(url, para, Encoding.UTF8);
|
||
|
||
var page = JsonConvert.DeserializeObject<ApiResult<SpecialPageResult<QWRecordResponseDto>>>(result);
|
||
|
||
var data = new List<QWRecordExportDto>();
|
||
if (page.Code == 0)
|
||
{
|
||
list = page.Data.TableData.ToList();
|
||
|
||
foreach (var item in list)
|
||
{
|
||
data.Add(new QWRecordExportDto
|
||
{
|
||
corpname = item.corpname,
|
||
callduration = item.callduration,
|
||
external_appuserid = item.external_appuserid,
|
||
internal_appuserid = item.internal_appuserid,
|
||
internal_dept_name = item.internal_dept_name,
|
||
internal_eid = item.internal_eid,
|
||
internal_employee_name = item.internal_employee_name,
|
||
internal_nickname = item.internal_nickname,
|
||
remark = item.remarkname,
|
||
start_time = item.start_time,
|
||
end_time = item.end_time,
|
||
send_type = item.send_type == "1" ? "呼入" : "呼出"
|
||
});
|
||
}
|
||
}
|
||
|
||
String file = string.Format("企微通话记录{0}.xls", DateTime.Now.ToLocalTime().ToString("yyyyMMddHHmmssfffff"));
|
||
return File(ExcelHelper.ExportListModelToExcel<QWRecordExportDto>(data, "QWRecordExport", 30000, null), "application/ms-excel", file);
|
||
}
|
||
|
||
private class QwCheckRsp
|
||
{
|
||
//{"errcode":0,"errmsg":"成功","data":"二维码URL"}
|
||
public int errcode { get; set; }
|
||
|
||
public string errmsg { get; set; }
|
||
public string data { get; set; }
|
||
}
|
||
|
||
public class CmsModel
|
||
{
|
||
public int ret { get; set; }
|
||
public object data { get; set; }
|
||
}
|
||
|
||
public class SceneListModel
|
||
{
|
||
public int ret { get; set; }
|
||
public List<SceneListData> data { get; set; }
|
||
}
|
||
|
||
public class SceneListData
|
||
{
|
||
public int sceneType { get; set; }
|
||
public string scene { get; set; }
|
||
public string name { get; set; }
|
||
public string assignRemark { get; set; }
|
||
}
|
||
}
|
||
} |