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 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 selectlist = new List(); if (string.IsNullOrEmpty(companycode))//公司为空才能请选择 { var defaultItem = new SelectListItem() { Value = "", Text = "请选择" }; if (isExe.HasValue) { defaultItem = new SelectListItem() { Value = "", Text = "请选择", Selected = true }; } selectlist.Add(defaultItem); } List datalist = new List(); 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>(); foreach (var pro in selectlist) { var channel = new Dictionary { { "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(); 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 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 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 list = _iww_hhuser_service.WorList_Get(ref pager, dto); List res = new List(); 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(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 success = new List(); List failData = new List(); 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(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(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(); try { dto.txt_userId = UserId; List 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(); if (dto.name != null) { dto.name = dto.name.Trim(); } if (dto.id != null) { dto.id = dto.id.Trim(); } dto.txt_userId = UserId; try { List list = _iww_hhuser_service.WxResourceList_GetByName(ref pager, dto); #region 1005730 不排除无工号的员工,然后排除非本事业线的员工 var lineIds = new List(); 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 GetValidUserIds(List lineIds, params string[] userIds) { var items = new List(); 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>>(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 { /// /// /// [Description("")] public string userid { get; set; } /// /// /// [Description("")] public int? eid { get; set; } /// /// /// [Description("")] public int? deptid { get; set; } } [HttpPost] [AuthorizeRedirect(Roles = InitRights.CONST_个人企微账号绑定)] public JsonResult GetWeWorkHtmlListByName(Laypage pager, MyWeUserDto dto) { var layUidata = new LayuiData(); if (dto.name != null) { dto.name = dto.name.Trim(); } if (dto.id != null) { dto.id = dto.id.Trim(); } dto.txt_userId = UserId; try { List 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>(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>(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 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 selectlist = new List(); if (string.IsNullOrEmpty(companycode))//公司为空才能请选择 { selectlist.Add(new SelectListItem() { Value = "", Text = "请选择" }); } List datalist = new List(); 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 GetSceneTypeList() { var sceneurl = cacheQ.GetValue_Parameter("SceneUrl"); List sceneType = new List(); var cacheKey = "sceneTypeList"; if (CacheHelper.Exists(cacheKey)) { sceneType = CacheHelper.Get>(cacheKey); } else { var sceneTypeUrl = $"{sceneurl}/scene/type/i"; string retmsg = Utility.PostData(sceneTypeUrl, new object().ToJson(), Encoding.UTF8); var res = Utility.JSONToObject(retmsg); var objstr = JsonConvert.SerializeObject(res.data); var mapList = JsonConvert.DeserializeObject>(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 GetSceneList(string sceneType) { List res = new List(); if (string.IsNullOrWhiteSpace(sceneType)) { return res; } var scene = Convert.ToInt32(sceneType); var sceneurl = cacheQ.GetValue_Parameter("SceneUrl"); // List sceneList = new List(); var cacheSceneTypeKey = "sceneList"; SceneListModel sceneList = new SceneListModel(); if (CacheHelper.Exists(cacheSceneTypeKey)) { sceneList = CacheHelper.Get(cacheSceneTypeKey); } else { var sceneListUrl = $"{sceneurl}/scene/list/i"; string listretmsg = Utility.PostData(sceneListUrl, new object().ToJson(), Encoding.UTF8); sceneList = Utility.JSONToObject(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(); try { List 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 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 selectlist = new List(); 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(); 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(); try { var list = new List(); 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>>(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(); 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>>(result); var data = new List(); 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(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 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; } } } }