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************************************
+