Browse Source

预约数据统计接口调整,视频举报添加新增字段及查询接口调整,身份证登录请求类型调整

master
liujiaqiang 2 years ago
parent
commit
a3c81080eb
  1. 59
      24Hour/Controllers/Common/CommonController.cs
  2. 9
      24Hour/Controllers/Common/VideoController.cs
  3. 38
      24Hour/Controllers/Common/WebSocketController.cs
  4. 2
      24Hour/Controllers/LoginController.cs
  5. 60
      24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230620/15.log

59
24Hour/Controllers/Common/CommonController.cs

@ -636,7 +636,7 @@ namespace _24Hour.Controllers.Common
#region 数据统计 #region 数据统计
/// <summary> /// <summary>
/// 预约数据统计 /// 预约数据统计---GroupBy预约类型 ---datetme时间 ---satseGroupBy预约状态
/// </summary> /// </summary>
[HttpPost] [HttpPost]
[Route("querystatistics")] [Route("querystatistics")]
@ -650,8 +650,7 @@ namespace _24Hour.Controllers.Common
var Userdata = await _db.Queryable<App_Sys_UserModel>().Where(q => q.usertype == 0).ToArrayAsync(); var Userdata = await _db.Queryable<App_Sys_UserModel>().Where(q => q.usertype == 0).ToArrayAsync();
//获取律师服务预约记录 //获取律师服务预约记录
var Lawyerdata = await _db.Queryable<App_LawyerServicesModel>() var Lawyerdata = await _db.Queryable<App_LawyerServicesModel>()
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync();
.Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync();
Lawyerdata.ToList().ForEach(q => Lawyerdata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -668,7 +667,7 @@ namespace _24Hour.Controllers.Common
phone = q.phone, phone = q.phone,
matter = q.matter,//事由 matter = q.matter,//事由
objectstr = "",//访问对象(案件名称) objectstr = "",//访问对象(案件名称)
state = q.state, statetype = $"{q.state}",
reason = q.reason, reason = q.reason,
sttime = q.receptiontime, sttime = q.receptiontime,
ettime = "", ettime = "",
@ -680,8 +679,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取远程会见预约记录 //获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>() var Remotedata = await _db.Queryable<App_RemoteModel>()
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync();
.Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync();
Remotedata.ToList().ForEach(q => Remotedata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -698,7 +696,7 @@ namespace _24Hour.Controllers.Common
matter = "",//事由 matter = "",//事由
objectstr = "",//访问对象(案件名称) objectstr = "",//访问对象(案件名称)
Code = q.Code, Code = q.Code,
state = q.state,//状态 statetype = $"{q.state}",//状态
reason = q.reason,//原因 reason = q.reason,//原因
sttime = q.sttime, sttime = q.sttime,
ettime = q.ettime, ettime = q.ettime,
@ -711,8 +709,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取远程接待预约记录 //获取远程接待预约记录
var Receptiondata = await _db.Queryable<App_ReceptionModel>() var Receptiondata = await _db.Queryable<App_ReceptionModel>()
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync();
.Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync();
Receptiondata.ToList().ForEach(q => Receptiondata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -729,7 +726,7 @@ namespace _24Hour.Controllers.Common
matter = q.matter,//事由 matter = q.matter,//事由
objectstr = "",//访问对象(案件名称) objectstr = "",//访问对象(案件名称)
Code = "", Code = "",
state = q.state,//状态 statetype = $"{q.state}",//状态
reason = q.reason,//原因 reason = q.reason,//原因
sttime = q.sttime, sttime = q.sttime,
ettime = q.ettime, ettime = q.ettime,
@ -740,34 +737,28 @@ namespace _24Hour.Controllers.Common
appurl = "" appurl = ""
}); });
}); });
list = list
.WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).ToList();
//预约类型分组统计 //预约类型分组统计
var GroupBy=list.ToList().GroupBy(q => new { q.daId, q.title }).Select(x => new { name = x.Key.title, value = x.ToList().Count()}); 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.creationtime}").ToString("yyyy-MM-dd")).Select(x => new { time = x.Key, value = x.ToList().Count() });
//预约状态分组 //预约状态分组
var satselist = list.ToList().GroupBy(q => q.satse).Select(x => new{ satse = x.Key, value = x.ToList().Count() }).ToList(); var satselist = list.ToList().GroupBy(q => $"{q.statetype}").Select(x => new{ statetype = x.Key, value = x.ToList().Count() }).ToList();
var satseGroupBy = new List<dynamic>(); var satseGroupBy = new List<dynamic>();
satselist.ForEach(x => { string[] strnum = new string[] { "0", "1", "2", "3" };
var satse = ""; string[] str = new string[] { "待办理", "已受理", "拒绝", "结束" };
switch (x.satse) 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
{ {
case 0: satseGroupBy.Add(new { name = str[i], value = 0 });
satse = "待办理";
break;
case 1:
satse = "已受理";
break;
case 2:
satse = "拒绝";
break;
case 3:
satse = "结束";
break;
default:
break;
} }
satseGroupBy.Add(new { name = satse,value=x.value }); }
});
result.IsSucceed = true; result.IsSucceed = true;
result.result = new { GroupBy, datetme, satseGroupBy }; result.result = new { GroupBy, datetme, satseGroupBy };
@ -778,21 +769,19 @@ namespace _24Hour.Controllers.Common
result.IsSucceed = false; result.IsSucceed = false;
result.Message = ex.Message; result.Message = ex.Message;
} }
_logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); _logs.WriteSysLogadd("数据统计", "统计信息", result, _db);
return result; return result;
} }
#endregion #endregion
#region 文件上传 #region 文件上传
/// <summary> /// <summary>
/// 文件上传--MP4 /// 文件上传--附件
/// </summary>
/// <param name="fileinfo"></param>
/// <param name="file"></param> /// <param name="file"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("Upload_Files")] [Route("Upload_Files")]
public async Task<ActionResult> Upload_Files(IFormFile file, string p) public async Task<ActionResult> Upload_Files(IFormFile file)
{ {
Result outParm = new Result(); Result outParm = new Result();
return await Task.Run(() => return await Task.Run(() =>

9
24Hour/Controllers/Common/VideoController.cs

@ -4,6 +4,7 @@ using Elight.Utility;
using Elight.Utility.Code; using Elight.Utility.Code;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using SqlSugar; using SqlSugar;
namespace _24Hour.Controllers.Common namespace _24Hour.Controllers.Common
@ -59,7 +60,8 @@ namespace _24Hour.Controllers.Common
videofile = q.videofile, videofile = q.videofile,
creationtime = q.creationtime, creationtime = q.creationtime,
state = q.state, state = q.state,
notes = q.notes notes = q.notes,
contact = q.anonymous == 0 ? "" : q.contact
}); });
}); });
result.IsSucceed = true; result.IsSucceed = true;
@ -79,7 +81,6 @@ namespace _24Hour.Controllers.Common
//查询远程会见记录 //查询远程会见记录
var list = await _db.Queryable<App_VideoModel>() var list = await _db.Queryable<App_VideoModel>()
.WhereIF(Videodata.reporting != null, q => q.reporting.Contains(Videodata.reporting)) .WhereIF(Videodata.reporting != null, q => q.reporting.Contains(Videodata.reporting))
.WhereIF(Videodata.anonymous != null, q => q.anonymous == Videodata.anonymous)
.WhereIF(Videodata.state != null, q => q.state == Videodata.state) .WhereIF(Videodata.state != null, q => q.state == Videodata.state)
.Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToPageListAsync(Videodata.PageIndex, Videodata.PageSize); .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToPageListAsync(Videodata.PageIndex, Videodata.PageSize);
list.OrderByDescending(q => q.creationtime).ToList().ForEach(q => list.OrderByDescending(q => q.creationtime).ToList().ForEach(q =>
@ -90,7 +91,9 @@ namespace _24Hour.Controllers.Common
reporting = q.reporting, reporting = q.reporting,
videofile = q.videofile, videofile = q.videofile,
creationtime = q.creationtime, creationtime = q.creationtime,
notes = q.notes notes = q.notes,
annexurl =JsonConvert.DeserializeObject<string[]>(q.annexurl),
contact = q.anonymous == 0 ? "" : q.contact
}); });
}); });
result.IsSucceed = true; result.IsSucceed = true;

38
24Hour/Controllers/Common/WebSocketController.cs

@ -27,9 +27,11 @@ namespace _24Hour.Controllers.Common
App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户
private readonly ILogger<LoginController> _logger;//日志 private readonly ILogger<LoginController> _logger;//日志
private readonly IConfiguration _configuration; private readonly IConfiguration _configuration;
private static object obj=new object();
Result result = new Result(); Result result = new Result();
private static Dictionary<string, WebSocket> CONNECT_POOL = new Dictionary<string, WebSocket>();//用户连接池 private static Dictionary<string, WebSocket> CONNECT_POOL = new Dictionary<string, WebSocket>();//用户连接池
private static Dictionary<string, WebSocketSending> meeting_pool = new Dictionary<string, WebSocketSending>();//会议连接池 private static Dictionary<string, WebSocketSending> meeting_pool = new Dictionary<string, WebSocketSending>();//会议连接池
private static Dictionary<string, string> userzx = new Dictionary<string, string>();//检察官在线池
//private static Dictionary<string, List<MessageInfo>> MESSAGE_POOL = new Dictionary<string, List<MessageInfo>>();//离线消息池 //private static Dictionary<string, List<MessageInfo>> MESSAGE_POOL = new Dictionary<string, List<MessageInfo>>();//离线消息池
public WebSocketController(ILogger<LoginController> logger, SqlSugarClient db,User userdata,IConfiguration configuration) public WebSocketController(ILogger<LoginController> logger, SqlSugarClient db,User userdata,IConfiguration configuration)
{ {
@ -80,6 +82,11 @@ namespace _24Hour.Controllers.Common
await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None); await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None);
if (meeting_pool.ContainsKey(user)) meeting_pool.Remove(user);//删除会议 if (meeting_pool.ContainsKey(user)) meeting_pool.Remove(user);//删除会议
if (CONNECT_POOL.ContainsKey(user)) CONNECT_POOL.Remove(user);//删除socket if (CONNECT_POOL.ContainsKey(user)) CONNECT_POOL.Remove(user);//删除socket
//判断当前检察官是否在线
if (_userdata.usertype == 0 && userzx.ContainsKey(user))
{
userzx.Remove(user);//删除在线用户
}
socket.Dispose(); socket.Dispose();
break; break;
} }
@ -239,7 +246,7 @@ namespace _24Hour.Controllers.Common
return result; return result;
} }
/// <summary> /// <summary>
/// 视频推送 /// 视频推送
/// </summary> /// </summary>
@ -253,6 +260,21 @@ namespace _24Hour.Controllers.Common
{ {
//获取发送人连接 //获取发送人连接
var socket = CONNECT_POOL.Where(q => q.Key == _userdata.Id).Select(q => q.Value).FirstOrDefault(); var socket = CONNECT_POOL.Where(q => q.Key == _userdata.Id).Select(q => q.Value).FirstOrDefault();
lock (obj)
{
//判断当前发送人是否是检察官
if (_userdata.usertype == 0&&!userzx.ContainsKey(_userdata.Id))
{
userzx.Add(_userdata.Id, "1");
}
//判断接收人是否在线,
if (_userdata.usertype == 1 && userzx.ContainsKey(Senddata.recipient))
{
result.IsSucceed = false;
result.result = "占线中";
return result;
}
}
if (socket!=null&&socket.State == WebSocketState.Open) if (socket!=null&&socket.State == WebSocketState.Open)
{ {
ArraySegment<byte> buffer = new ArraySegment<byte>(new byte[2048]); ArraySegment<byte> buffer = new ArraySegment<byte>(new byte[2048]);
@ -266,6 +288,11 @@ namespace _24Hour.Controllers.Common
{ {
if (CONNECT_POOL.ContainsKey(_userdata.Id)) CONNECT_POOL.Remove(_userdata.Id);//删除连接池 if (CONNECT_POOL.ContainsKey(_userdata.Id)) CONNECT_POOL.Remove(_userdata.Id);//删除连接池
if (meeting_pool.ContainsKey(_userdata.Id)) meeting_pool.Remove(_userdata.Id);//删除会议 if (meeting_pool.ContainsKey(_userdata.Id)) meeting_pool.Remove(_userdata.Id);//删除会议
//判断当前检察官是否在线
if (_userdata.usertype == 0 && userzx.ContainsKey(_userdata.Id))
{
userzx.Remove(_userdata.Id);//删除在线用户
}
//result.IsSucceed = true; //result.IsSucceed = true;
//result.result = "未上线"; //result.result = "未上线";
//return result; //return result;
@ -299,7 +326,7 @@ namespace _24Hour.Controllers.Common
//判断客户端是否连接 //判断客户端是否连接
if (destSocket != null && destSocket.State == WebSocketState.Open) if (destSocket != null && destSocket.State == WebSocketState.Open)
{ {
if (meeting_pool.ContainsKey(Senddata.recipient)) if (meeting_pool.ContainsKey(Senddata.recipient))
{ {
// //
var data = meeting_pool[Senddata.recipient]; var data = meeting_pool[Senddata.recipient];
@ -312,7 +339,7 @@ namespace _24Hour.Controllers.Common
//目的客户端发送 //目的客户端发送
await destSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); await destSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
} }
else else
{ {
meeting_pool.Add(_userdata.Id, Senddata); meeting_pool.Add(_userdata.Id, Senddata);
} }
@ -334,6 +361,11 @@ namespace _24Hour.Controllers.Common
} }
else else
{ {
//判断当前检察官是否在线
if (_userdata.usertype == 0 && userzx.ContainsKey(_userdata.Id))
{
userzx.Remove(_userdata.Id);
}
} }
} }
catch (Exception) catch (Exception)

2
24Hour/Controllers/LoginController.cs

@ -266,7 +266,7 @@ namespace _24Hour.Controllers
return ret; return ret;
} }
[HttpPost] [HttpGet]
[Route("cardIdLogin")] [Route("cardIdLogin")]
public async Task<Result> cardIdLogin(string cardId) public async Task<Result> cardIdLogin(string cardId)
{ {

60
24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230620/15.log

@ -0,0 +1,60 @@
日志时间:2023-06-20 15:00:40
************************Exception Start********************************
Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常
Exception Date:2023/6/20 15:00:40
Exception Type:MySqlConnector.MySqlException
Exception Message:Data too long for column 'OperatingManual' at row 1
Exception Source:SqlSugar
Exception StackTrace: at SqlSugar.AdoProvider.ExecuteCommand(String sql, SugarParameter[] parameters)
at SqlSugar.InsertableProvider`1.ExecuteCommand()
at Elight.Logic.WriteSysLog.WriteSysLogadd(String operationType, String content, Result result, SqlSugarClient _db, String opeCasDepAccCas) in E:\Code\24Hour.Service\Elight.Logic\WriteSysLog.cs:line 52
************************Exception End************************************
日志时间:2023-06-20 15:02:42
************************Exception Start********************************
Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常
Exception Date:2023/6/20 15:02:42
Exception Type:MySqlConnector.MySqlException
Exception Message:Data too long for column 'OperatingManual' at row 1
Exception Source:SqlSugar
Exception StackTrace: at SqlSugar.AdoProvider.ExecuteCommand(String sql, SugarParameter[] parameters)
at SqlSugar.InsertableProvider`1.ExecuteCommand()
at Elight.Logic.WriteSysLog.WriteSysLogadd(String operationType, String content, Result result, SqlSugarClient _db, String opeCasDepAccCas) in E:\Code\24Hour.Service\Elight.Logic\WriteSysLog.cs:line 52
************************Exception End************************************
日志时间:2023-06-20 15:03:30
************************Exception Start********************************
Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常
Exception Date:2023/6/20 15:03:30
Exception Type:MySqlConnector.MySqlException
Exception Message:Data too long for column 'OperatingManual' at row 1
Exception Source:SqlSugar
Exception StackTrace: at SqlSugar.AdoProvider.ExecuteCommand(String sql, SugarParameter[] parameters)
at SqlSugar.InsertableProvider`1.ExecuteCommand()
at Elight.Logic.WriteSysLog.WriteSysLogadd(String operationType, String content, Result result, SqlSugarClient _db, String opeCasDepAccCas) in E:\Code\24Hour.Service\Elight.Logic\WriteSysLog.cs:line 52
************************Exception End************************************
日志时间:2023-06-20 15:11:31
************************Exception Start********************************
Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常
Exception Date:2023/6/20 15:11:31
Exception Type:MySqlConnector.MySqlException
Exception Message:Data too long for column 'OperatingManual' at row 1
Exception Source:SqlSugar
Exception StackTrace: at SqlSugar.AdoProvider.ExecuteCommand(String sql, SugarParameter[] parameters)
at SqlSugar.InsertableProvider`1.ExecuteCommand()
at Elight.Logic.WriteSysLog.WriteSysLogadd(String operationType, String content, Result result, SqlSugarClient _db, String opeCasDepAccCas) in E:\Code\24Hour.Service\Elight.Logic\WriteSysLog.cs:line 52
************************Exception End************************************
日志时间:2023-06-20 15:23:04
************************Exception Start********************************
Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常
Exception Date:2023/6/20 15:23:04
Exception Type:MySqlConnector.MySqlException
Exception Message:Data too long for column 'OperatingManual' at row 1
Exception Source:SqlSugar
Exception StackTrace: at SqlSugar.AdoProvider.ExecuteCommand(String sql, SugarParameter[] parameters)
at SqlSugar.InsertableProvider`1.ExecuteCommand()
at Elight.Logic.WriteSysLog.WriteSysLogadd(String operationType, String content, Result result, SqlSugarClient _db, String opeCasDepAccCas) in E:\Code\24Hour.Service\Elight.Logic\WriteSysLog.cs:line 52
************************Exception End************************************
Loading…
Cancel
Save