TG.WXCRM.V4/WEB/Controllers/Res/TranUserController.cs

154 lines
6.0 KiB
C#

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<SelectListItem>();
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<WxTranUserResultDTO>();
try
{
var host = _cache.GetValue_Parameter("Core_ZxdService_Api");
var url = $"{host}/TranUserHandler.ashx";
// 使用列表收集非空参数
var parameters = new List<string>();
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<LayuiData<WxTranUserResultDTO>>();
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;}
}
}