using Ninject; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using WX.CRM.BLL.Util; using WX.CRM.Common; using WX.CRM.Common.Layui; using WX.CRM.IBLL.Ord; using WX.CRM.IBLL.Wx; using WX.CRM.Model.DTO; using WX.CRM.Model.QueryMap; using WX.CRM.WebHelper; namespace WX.CRM.WEB.Controllers.Res { public class TranUserController : Controller { [Inject] public CACHE_BL _cache { get; set; } [Inject] public IWX_SZZYMIDPRODUCT _midProduct { get; set; } [Inject] public IORD_SERVICEMEMO_Q _ordServerMemo { get; set; } [HttpGet] public ActionResult Index() { var data = new List(); var list = _midProduct.GetList(); foreach (var item in list) { data.Add(new SelectListItem() { Text = item.MIDPRODUCTNAME, Value = item.MIDPRODUCTID.ToString() }); } ViewBag.midproductList = data; return View(); } [HttpPost] public JsonResult Index(WxTranUserQueryDTO dto) { //LogHelper.Info($"WxTranUserQueryDTO=>{dto.ToJson()}"); var layUidata = new LayuiData(); try { var host = _cache.GetValue_Parameter("Core_ZxdService_Api"); var url = $"{host}/TranUserHandler.ashx"; // 使用列表收集非空参数 var parameters = new List(); parameters.Add($"action={dto.action}"); if (!string.IsNullOrEmpty(dto.umid)) parameters.Add($"umid={dto.umid}"); if (dto.starttime.HasValue) parameters.Add($"starttime={dto.starttime}"); if (dto.endtime.HasValue) parameters.Add($"endtime={dto.endtime}"); if (!string.IsNullOrEmpty(dto.midproductId)) parameters.Add($"MidProductId={dto.midproductId}"); if (!string.IsNullOrEmpty(dto.subProductId)) parameters.Add($"SubProductId={dto.subProductId}"); if (!string.IsNullOrEmpty(dto.txt_eid)) parameters.Add($"Eid={dto.txt_eid}"); if (!string.IsNullOrEmpty(dto.txt_groupIds)) parameters.Add($"Gid={dto.txt_groupIds}"); if (!string.IsNullOrEmpty(dto.txt_deptId)) parameters.Add($"DeptId={dto.txt_deptId}"); parameters.Add($"page={dto.page}"); parameters.Add($"limit={dto.limit}"); var para = string.Join("&", parameters); // 删除原来的 umid 判断代码(已整合到参数列表) LogHelper.Info($"请求url=>{url}?{para}"); var result = Utility.GetData(url, para, Encoding.UTF8); var data = result.ToObject>(); var resids = data.data.Select(p => p.ResId).Distinct(); var dic = _ordServerMemo.GetLastServerMemo(resids); foreach (var item in data.data) { if (!string.IsNullOrEmpty(item.Eids)) { var eidArr = item.Eids.Split(';'); var eidandname = string.Empty; if(eidArr.Any()) { foreach (var eid in eidArr) { eidandname += InnerUserHelper.Instance.GetEidAndNameByEid(Convert.ToDecimal(eid)) + ";"; } } else { eidandname = InnerUserHelper.Instance.GetEidAndNameByEid(Convert.ToDecimal(item.Eids)); } item.Eids = eidandname; } if (dic.TryGetValue(item.ResId, out LastServerMemoInfo memo)) { item.LastServiceTime = memo.Ctime == null ? string.Empty : memo.Ctime.ToString(); item.LastServiceEid = InnerUserHelper.Instance.GetEidAndTrueName(memo.UserId); } } layUidata.msg = "数据加载成功"; layUidata.code = 0; layUidata.data = data.data; layUidata.count = data.count; } catch (Exception ex) { LogHelper.Error(ex.ToString()); layUidata.SetFail(1, "出现错误!" + ex.Message); } return Json(layUidata); } } public class WxTranUserQueryDTO { public string action { get; set; } public string umid { get; set; } public DateTime? starttime { get; set; } public DateTime? endtime { get; set; } public string midproductId { get; set; } public string subProductId { get; set; } public string txt_groupIds { get; set; } public string txt_eid { get; set; } public string txt_departmentid { get; set; } public string txt_userId { get; set; } public string txt_deptIds { get; set; } public string txt_deptId { get; set; } public int page { get; set; } = 1; public int limit { get; set; } = 10; } public class WxTranUserResultDTO { public string SoftUserName { get; set; } public string Umid { get; set; } public string ResId { get; set; } public string CName { get; set; } public string MidProductId { get; set; } public string SubProductId { get; set; } public string SubProductName { get; set; } public DateTime? EndTime { get; set; } public string Eids { get; set; } public string Gids { get; set; } public string Deptids { get; set; } public bool HasInComplaint { get; set; } public bool HasOutComplaint { get; set; } public string LastServiceTime { get; set; } public string LastServiceEid { get; set;} } }