From a3c81080eb7b65757605c22dff2568bd9d20a237 Mon Sep 17 00:00:00 2001 From: liujiaqiang <1448951783@qq.com> Date: Tue, 20 Jun 2023 17:25:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E6=95=B0=E6=8D=AE=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4=EF=BC=8C=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E4=B8=BE=E6=8A=A5=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=8F=8A=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E8=BA=AB=E4=BB=BD=E8=AF=81=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E8=AF=B7=E6=B1=82=E7=B1=BB=E5=9E=8B=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 24Hour/Controllers/Common/CommonController.cs | 59 ++++++++---------- 24Hour/Controllers/Common/VideoController.cs | 9 ++- .../Controllers/Common/WebSocketController.cs | 38 +++++++++++- 24Hour/Controllers/LoginController.cs | 2 +- .../logs/Logs/ExceptionLog/20230620/15.log | 60 +++++++++++++++++++ 5 files changed, 126 insertions(+), 42 deletions(-) create mode 100644 24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230620/15.log diff --git a/24Hour/Controllers/Common/CommonController.cs b/24Hour/Controllers/Common/CommonController.cs index 774cfb4..9ba3cb5 100644 --- a/24Hour/Controllers/Common/CommonController.cs +++ b/24Hour/Controllers/Common/CommonController.cs @@ -636,7 +636,7 @@ namespace _24Hour.Controllers.Common #region 数据统计 /// - /// 预约数据统计 + /// 预约数据统计---GroupBy预约类型 ---datetme时间 ---satseGroupBy预约状态 /// [HttpPost] [Route("querystatistics")] @@ -650,8 +650,7 @@ namespace _24Hour.Controllers.Common var Userdata = await _db.Queryable().Where(q => q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() - .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); @@ -668,7 +667,7 @@ namespace _24Hour.Controllers.Common phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) - state = q.state, + statetype = $"{q.state}", reason = q.reason, sttime = q.receptiontime, ettime = "", @@ -680,8 +679,7 @@ namespace _24Hour.Controllers.Common }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() - .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); @@ -698,7 +696,7 @@ namespace _24Hour.Controllers.Common matter = "",//事由 objectstr = "",//访问对象(案件名称) Code = q.Code, - state = q.state,//状态 + statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, @@ -711,8 +709,7 @@ namespace _24Hour.Controllers.Common }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() - .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && q.unitId == _userdata.unitCode).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); @@ -729,7 +726,7 @@ namespace _24Hour.Controllers.Common matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", - state = q.state,//状态 + statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, @@ -740,34 +737,28 @@ namespace _24Hour.Controllers.Common 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 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(); - satselist.ForEach(x => { - var satse = ""; - switch (x.satse) + 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 { - case 0: - satse = "待办理"; - break; - case 1: - satse = "已受理"; - break; - case 2: - satse = "拒绝"; - break; - case 3: - satse = "结束"; - break; - default: - break; + satseGroupBy.Add(new { name = str[i], value = 0 }); } - satseGroupBy.Add(new { name = satse,value=x.value }); - }); + } result.IsSucceed = true; result.result = new { GroupBy, datetme, satseGroupBy }; @@ -778,21 +769,19 @@ namespace _24Hour.Controllers.Common result.IsSucceed = false; result.Message = ex.Message; } - _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); + _logs.WriteSysLogadd("数据统计", "统计信息", result, _db); return result; } #endregion #region 文件上传 /// - /// 文件上传--MP4 - /// - /// + /// 文件上传--附件 /// /// [HttpPost] [Route("Upload_Files")] - public async Task Upload_Files(IFormFile file, string p) + public async Task Upload_Files(IFormFile file) { Result outParm = new Result(); return await Task.Run(() => diff --git a/24Hour/Controllers/Common/VideoController.cs b/24Hour/Controllers/Common/VideoController.cs index ba84d56..3b41d69 100644 --- a/24Hour/Controllers/Common/VideoController.cs +++ b/24Hour/Controllers/Common/VideoController.cs @@ -4,6 +4,7 @@ using Elight.Utility; using Elight.Utility.Code; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; using SqlSugar; namespace _24Hour.Controllers.Common @@ -59,7 +60,8 @@ namespace _24Hour.Controllers.Common videofile = q.videofile, creationtime = q.creationtime, state = q.state, - notes = q.notes + notes = q.notes, + contact = q.anonymous == 0 ? "" : q.contact }); }); result.IsSucceed = true; @@ -79,7 +81,6 @@ namespace _24Hour.Controllers.Common //查询远程会见记录 var list = await _db.Queryable() .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) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToPageListAsync(Videodata.PageIndex, Videodata.PageSize); list.OrderByDescending(q => q.creationtime).ToList().ForEach(q => @@ -90,7 +91,9 @@ namespace _24Hour.Controllers.Common reporting = q.reporting, videofile = q.videofile, creationtime = q.creationtime, - notes = q.notes + notes = q.notes, + annexurl =JsonConvert.DeserializeObject(q.annexurl), + contact = q.anonymous == 0 ? "" : q.contact }); }); result.IsSucceed = true; diff --git a/24Hour/Controllers/Common/WebSocketController.cs b/24Hour/Controllers/Common/WebSocketController.cs index 1a5dce3..678f2a9 100644 --- a/24Hour/Controllers/Common/WebSocketController.cs +++ b/24Hour/Controllers/Common/WebSocketController.cs @@ -27,9 +27,11 @@ namespace _24Hour.Controllers.Common App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 private readonly ILogger _logger;//日志 private readonly IConfiguration _configuration; + private static object obj=new object(); Result result = new Result(); private static Dictionary CONNECT_POOL = new Dictionary();//用户连接池 private static Dictionary meeting_pool = new Dictionary();//会议连接池 + private static Dictionary userzx = new Dictionary();//检察官在线池 //private static Dictionary> MESSAGE_POOL = new Dictionary>();//离线消息池 public WebSocketController(ILogger logger, SqlSugarClient db,User userdata,IConfiguration configuration) { @@ -80,6 +82,11 @@ namespace _24Hour.Controllers.Common await socket.CloseAsync(WebSocketCloseStatus.NormalClosure, "", CancellationToken.None); if (meeting_pool.ContainsKey(user)) meeting_pool.Remove(user);//删除会议 if (CONNECT_POOL.ContainsKey(user)) CONNECT_POOL.Remove(user);//删除socket + //判断当前检察官是否在线 + if (_userdata.usertype == 0 && userzx.ContainsKey(user)) + { + userzx.Remove(user);//删除在线用户 + } socket.Dispose(); break; } @@ -239,7 +246,7 @@ namespace _24Hour.Controllers.Common return result; } - + /// /// 视频推送 /// @@ -253,6 +260,21 @@ namespace _24Hour.Controllers.Common { //获取发送人连接 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) { ArraySegment buffer = new ArraySegment(new byte[2048]); @@ -266,6 +288,11 @@ namespace _24Hour.Controllers.Common { if (CONNECT_POOL.ContainsKey(_userdata.Id)) CONNECT_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.result = "未上线"; //return result; @@ -299,7 +326,7 @@ namespace _24Hour.Controllers.Common //判断客户端是否连接 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]; @@ -312,7 +339,7 @@ namespace _24Hour.Controllers.Common //目的客户端发送 await destSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); } - else + else { meeting_pool.Add(_userdata.Id, Senddata); } @@ -334,6 +361,11 @@ namespace _24Hour.Controllers.Common } else { + //判断当前检察官是否在线 + if (_userdata.usertype == 0 && userzx.ContainsKey(_userdata.Id)) + { + userzx.Remove(_userdata.Id); + } } } catch (Exception) diff --git a/24Hour/Controllers/LoginController.cs b/24Hour/Controllers/LoginController.cs index ede774e..724bbca 100644 --- a/24Hour/Controllers/LoginController.cs +++ b/24Hour/Controllers/LoginController.cs @@ -266,7 +266,7 @@ namespace _24Hour.Controllers return ret; } - [HttpPost] + [HttpGet] [Route("cardIdLogin")] public async Task cardIdLogin(string cardId) { diff --git a/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230620/15.log b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230620/15.log new file mode 100644 index 0000000..6a3d741 --- /dev/null +++ b/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************************************ +