TG.WXCRM.V4/WEB/Controllers/Ww/MyWorkController.cs

953 lines
38 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 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; }
}
}
}