Browse Source

websockt发送消息接口调整,视频举报控制器添加验证,添加人员任务统计接口

master
liujiaqiang 2 years ago
parent
commit
40cc4560a4
  1. 410
      24Hour/Controllers/Common/CommonController.cs
  2. 4
      24Hour/Controllers/Common/VideoController.cs
  3. 23
      24Hour/Controllers/Common/WebSocketController.cs

410
24Hour/Controllers/Common/CommonController.cs

@ -2009,11 +2009,11 @@ namespace _24Hour.Controllers.Common
});
});
list = list
.WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.creationtime).ToList();
.WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.sttime).ToList();
//预约类型分组统计
var GroupBy = list.ToList().GroupBy(q => new { q.daId, q.title }).Select(x => new { name = x.Key.title, value = x.ToList().Count() });
//日期分组统计
var datetme = list.ToList().GroupBy(q => DateTime.Parse($"{q.creationtime}").ToString("yyyy-MM-dd")).Select(x => new { time = x.Key, value = x.ToList().Count() });
var datetme = list.ToList().GroupBy(q => DateTime.Parse($"{q.sttime}").ToString("yyyy-MM-dd")).Select(x => new { time = x.Key, value = x.ToList().Count() });
//预约状态分组
var satselist = list.ToList().GroupBy(q => $"{q.statetype}").Select(x => new { statetype = x.Key, value = x.ToList().Count() }).ToList();
var satseGroupBy = new List<dynamic>();
@ -2044,6 +2044,412 @@ namespace _24Hour.Controllers.Common
_logs.WriteSysLogadd("数据统计", "统计信息", result, _db);
return result;
}
/// <summary>
/// 人员任务量统计
/// </summary>
[HttpPost]
[Route("querypersonneltask")]
public async Task<Result> querypersonneltask(Commonpage Commondata)
{
try
{
var list = new List<dynamic>();
//获取工作台信息
var Stagingdata = await _db.Queryable<StagingModel>().Where(q => q.IsDelete == 0).ToArrayAsync();
var Userdata = await _db.Queryable<App_Sys_UserModel>().Where(q => q.usertype == 0).ToArrayAsync();
//获取律师服务预约记录
var Lawyerdata = await _db.Queryable<App_LawyerServicesModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync();
Lawyerdata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 0,
Id = q.Id,
operatorId=q.operatorId,
operatorName = userda?.name,
daId = da?.Id,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = q.name,
phone = q.phone,
matter = q.matter,//事由
objectstr = "",//访问对象(案件名称)
statetype = $"{q.state}",
reason = q.reason,
sttime = q.receptiontime,
ettime = "",
creationtime = q.creationtime,
receptionuser = q.receptionuser,
username = q.receptionusername,
notes = q.notes
});
});
//获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync();
Remotedata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 1,
Id = q.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
daId = da?.Id,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = q.name,
phone = q.phone,
matter = "",//事由
objectstr = "",//访问对象(案件名称)
Code = q.Code,
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.sttime,
ettime = q.ettime,
creationtime = q.creationtime,
receptionuser = q.meetwitId,
username = q.meetwitname,
notes = q.notes,
appurl = q.appurl
});
});
//获取远程接待预约记录
var Receptiondata = await _db.Queryable<App_ReceptionModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync();
Receptiondata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 2,
Id = q.Id,
daId = da?.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = "",
phone = q.phone,
matter = q.matter,//事由
objectstr = "",//访问对象(案件名称)
Code = "",
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.sttime,
ettime = q.ettime,
creationtime = q.creationtime,
receptionuser = q.meetwitId,
username = q.meetwitname,
notes = q.notes,
appurl = ""
});
});
//获取认罪认罚预约记录
var Confessiondata = await _db.Queryable<App_ConfessionModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync();
Confessiondata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 3,
Id = q.Id,
daId = da?.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = "",
phone = q.phone,
matter = q.matter,//事由
objectstr = "",//访问对象(案件名称)
Code = "",
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.sttime,
ettime = "",
creationtime = q.creationtime,
receptionuser = q.meetwitId,
username = q.meetwitname,
notes = q.notes,
appurl = ""
});
});
//获取听证预约记录
var Hearingdata = await _db.Queryable<App_HearingModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode&&q.acceptancetime!=null && q.operatorId != null).ToArrayAsync();
Hearingdata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 4,
Id = q.Id,
daId = da?.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = "",
phone = q.contact,
matter = q.witnessrequest,//事由
objectstr = "",//访问对象(案件名称)
Code = "",
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.reservationtime,
ettime = "",
creationtime = q.creationtime,
receptionuser = q.receptionuser,
username = q.receptionusername,
notes = q.notes,
appurl = ""
});
});
list = list
.WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.sttime).ToList();
//人员分组统计
var GroupBy = list.ToList().GroupBy(q => new { q.operatorId, q.operatorName }).Select(x => new { name = x.Key.operatorName, value = x.ToList().Count() });
result.IsSucceed = true;
result.result = GroupBy;
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
}
_logs.WriteSysLogadd("数据统计", "统计信息", result, _db);
return result;
}
/// <summary>
/// 单个人员任务统计
/// </summary>
[HttpPost]
[Route("queryusertask")]
public async Task<Result> queryusertask(Commonpage Commondata)
{
try
{
var list = new List<dynamic>();
//获取工作台信息
var Stagingdata = await _db.Queryable<StagingModel>().Where(q => q.IsDelete == 0).ToArrayAsync();
var Userdata = await _db.Queryable<App_Sys_UserModel>().Where(q => q.usertype == 0).ToArrayAsync();
//获取律师服务预约记录
var Lawyerdata = await _db.Queryable<App_LawyerServicesModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null &&q.operatorId== Commondata.Id).ToArrayAsync();
Lawyerdata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 0,
Id = q.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
daId = da?.Id,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = q.name,
phone = q.phone,
matter = q.matter,//事由
objectstr = "",//访问对象(案件名称)
statetype = $"{q.state}",
reason = q.reason,
sttime = q.receptiontime,
ettime = "",
creationtime = q.creationtime,
receptionuser = q.receptionuser,
username = q.receptionusername,
notes = q.notes
});
});
//获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync();
Remotedata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 1,
Id = q.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
daId = da?.Id,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = q.name,
phone = q.phone,
matter = "",//事由
objectstr = "",//访问对象(案件名称)
Code = q.Code,
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.sttime,
ettime = q.ettime,
creationtime = q.creationtime,
receptionuser = q.meetwitId,
username = q.meetwitname,
notes = q.notes,
appurl = q.appurl
});
});
//获取远程接待预约记录
var Receptiondata = await _db.Queryable<App_ReceptionModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync();
Receptiondata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 2,
Id = q.Id,
daId = da?.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = "",
phone = q.phone,
matter = q.matter,//事由
objectstr = "",//访问对象(案件名称)
Code = "",
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.sttime,
ettime = q.ettime,
creationtime = q.creationtime,
receptionuser = q.meetwitId,
username = q.meetwitname,
notes = q.notes,
appurl = ""
});
});
//获取认罪认罚预约记录
var Confessiondata = await _db.Queryable<App_ConfessionModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync();
Confessiondata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 3,
Id = q.Id,
daId = da?.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = "",
phone = q.phone,
matter = q.matter,//事由
objectstr = "",//访问对象(案件名称)
Code = "",
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.sttime,
ettime = "",
creationtime = q.creationtime,
receptionuser = q.meetwitId,
username = q.meetwitname,
notes = q.notes,
appurl = ""
});
});
//获取听证预约记录
var Hearingdata = await _db.Queryable<App_HearingModel>()
.Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync();
Hearingdata.ToList().ForEach(q =>
{
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault();
list.Add(new
{
type = 4,
Id = q.Id,
daId = da?.Id,
operatorId = q.operatorId,
operatorName = userda?.name,
title = da?.title,
color = da?.color,
icon = da?.icon,
name = "",
phone = q.contact,
matter = q.witnessrequest,//事由
objectstr = "",//访问对象(案件名称)
Code = "",
statetype = $"{q.state}",//状态
reason = q.reason,//原因
sttime = q.reservationtime,
ettime = "",
creationtime = q.creationtime,
receptionuser = q.receptionuser,
username = q.receptionusername,
notes = q.notes,
appurl = ""
});
});
list = list
.WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.sttime).ToList();
//任务分组统计
var GroupBy = list.ToList().GroupBy(q => new { q.daId, q.title }).Select(x => new { name = x.Key.title, value = x.ToList().Count() });
//预约状态分组
var satselist = list.ToList().GroupBy(q => $"{q.statetype}").Select(x => new { statetype = x.Key, value = x.ToList().Count() }).ToList();
var satseGroupBy = new List<dynamic>();
string[] strnum = new string[] { "0", "1", "2", "3" };
string[] str = new string[] { "待办理", "已受理", "拒绝", "结束" };
for (int i = 0; i < strnum.Length; i++)
{
var da = satselist.Where(q => q.statetype == strnum[i]).FirstOrDefault();
if (da != null)
{
satseGroupBy.Add(new { name = str[i], value = da.value });
}
else
{
satseGroupBy.Add(new { name = str[i], value = 0 });
}
}
result.IsSucceed = true;
result.result =new { GroupBy,satseGroupBy};
}
catch (System.Exception ex)
{
_db.RollbackTran();
result.IsSucceed = false;
result.Message = ex.Message;
}
_logs.WriteSysLogadd("数据统计", "统计信息", result, _db);
return result;
}
#endregion
#region 文件上传

4
24Hour/Controllers/Common/VideoController.cs

@ -14,7 +14,7 @@ namespace _24Hour.Controllers.Common
/// <summary>
/// 视频举报
/// </summary>
//[Authorize]
[Authorize]
[ApiController]
[Route("api/Video")]
public class VideoController : Controller
@ -256,8 +256,6 @@ namespace _24Hour.Controllers.Common
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("Download")]
[AllowAnonymous]
public FileResult Download(string path)
{
var dic = Path.Combine(Environment.CurrentDirectory, "wwwroot");

23
24Hour/Controllers/Common/WebSocketController.cs

@ -117,7 +117,7 @@ namespace _24Hour.Controllers.Common
/// <returns></returns>
[HttpPost]
[Route("WebSocketSend")]
public async Task WebSocketSend(WebSocketSending Sendingdata)
public async Task<Result> WebSocketSend(WebSocketSending Sendingdata)
{
try
{
@ -128,7 +128,7 @@ namespace _24Hour.Controllers.Common
if (socket.State == WebSocketState.Open)
{
ArraySegment<byte> buffer = new ArraySegment<byte>(new byte[2048]);
WebSocketReceiveResult result = await socket.ReceiveAsync(buffer, CancellationToken.None);
//WebSocketReceiveResult ret = await socket.ReceiveAsync(buffer, CancellationToken.None);
#region 消息处理(消息转发)
try
@ -150,14 +150,22 @@ namespace _24Hour.Controllers.Common
{
WebSocket destSocket = CONNECT_POOL[Sendingdata.recipient];//目的客户端
if (destSocket != null && destSocket.State == WebSocketState.Open)
{
result.IsSucceed = true;
result.result = "已发送";
await destSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
}
else
{
//添加未读
result.IsSucceed = false;
result.result = "用户未上线!";
}
}
else
{
result.IsSucceed = false;
result.result = "用户未上线!";
//添加未读
//添加一条未读消息
//Task.Run(() =>
@ -171,20 +179,27 @@ namespace _24Hour.Controllers.Common
}
catch (Exception exs)
{
result.IsSucceed = false;
result.result = "异常:"+ exs.Message+ "";
//消息转发异常处理,本次消息忽略 继续监听接下来的消息
}
#endregion
}
else
{
result.IsSucceed = false;
result.result = " 重新连接!";
}
}//while end
}
catch (Exception)
catch (Exception ex)
{
//整体异常处理
if (CONNECT_POOL.ContainsKey(_userdata.Id)) CONNECT_POOL.Remove(_userdata.Id);
result.IsSucceed = false;
result.result = "异常:" + ex.Message + "";
}
return result;
}

Loading…
Cancel
Save