diff --git a/24Hour/Controllers/Common/CommonController.cs b/24Hour/Controllers/Common/CommonController.cs index 8340f1d..47732e0 100644 --- a/24Hour/Controllers/Common/CommonController.cs +++ b/24Hour/Controllers/Common/CommonController.cs @@ -27,15 +27,17 @@ namespace _24Hour.Controllers.Common #region Identity private readonly SqlSugarClient _db;//数据库 private readonly WriteSysLog _logs;//操作日志 + private readonly WebSocketController _SocketCon;//WebSocket发送 App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 private readonly ILogger _logger;//日志 Result result = new Result(); - public CommonController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user) + public CommonController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); + _SocketCon = SocketCon; } #endregion @@ -135,12 +137,12 @@ namespace _24Hour.Controllers.Common } /// - /// 系统---根据当前登录人单位获取所有预约信息 + /// 系统---根据预约Id 查询预约信息 /// /// 预约Id /// 类型 /// - [HttpPost] + [HttpGet] [Route("queryreunitId")] public async Task queryreunitId(string? Id,int type) { @@ -181,7 +183,7 @@ namespace _24Hour.Controllers.Common } /// - /// app---根据当前登录人获取所有预约信息 + /// app---根据当前登录人获取所有预约信息--type类型为:0律师服务,1远程会见,2远程接待 /// [HttpPost] [Route("queryreservation")] @@ -487,6 +489,7 @@ namespace _24Hour.Controllers.Common _db.CommitTran(); if (num > 0) { + _SocketCon.system(userId); result.IsSucceed = true; result.result = "修改成功"; } diff --git a/24Hour/Controllers/Common/LawyerservicesController.cs b/24Hour/Controllers/Common/LawyerservicesController.cs index 0ed0a11..d9cf006 100644 --- a/24Hour/Controllers/Common/LawyerservicesController.cs +++ b/24Hour/Controllers/Common/LawyerservicesController.cs @@ -2,6 +2,7 @@ using Elight.Logic; using Elight.Utility; using Elight.Utility.Code; +using Elight.Utility.Extensions; using Elight.Utility.logs; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -243,6 +244,7 @@ namespace _24Hour.Controllers.Common if (Lawyerbol.Count() > 0) { Lawyerbol.FirstOrDefault().state = state; + if(reason.NotNull()) Lawyerbol.FirstOrDefault().reason = reason; _db.BeginTran(); var num = await _db.Updateable(Lawyerbol.FirstOrDefault()).UpdateColumns(it => new { it.state, it.reason }).ExecuteCommandAsync(); diff --git a/24Hour/Controllers/Common/RemoteController.cs b/24Hour/Controllers/Common/RemoteController.cs index 23359bf..8c1a9b2 100644 --- a/24Hour/Controllers/Common/RemoteController.cs +++ b/24Hour/Controllers/Common/RemoteController.cs @@ -2,6 +2,7 @@ using Elight.Logic; using Elight.Utility; using Elight.Utility.Code; +using Elight.Utility.Extensions; using Elight.Utility.logs; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -97,6 +98,7 @@ namespace _24Hour.Controllers.Common _db.BeginTran(); Remotedata.Id = Guid.NewGuid().ToString(); //Remotedata.unitId = _userdata.unitCode.ToString(); + Remotedata.Code=_logs.GenerateRandomCode(9); Remotedata.createuserId = _userdata.Id.ToString(); Remotedata.appurl = $"{_configuration.GetSection("Videoaddress:rtmp").Value}{_userdata.Id}"; Remotedata.createusername = _userdata.name; @@ -291,6 +293,7 @@ namespace _24Hour.Controllers.Common Lawyerbol.FirstOrDefault().sttime = Remoteput.sttime; if (Remoteput.ettime != null) Lawyerbol.FirstOrDefault().ettime = Remoteput.ettime; + if (Remoteput.reason.NotNull()) Lawyerbol.FirstOrDefault().reason = Remoteput.reason; _db.BeginTran(); var num = await _db.Updateable(Lawyerbol.FirstOrDefault()).ExecuteCommandAsync(); diff --git a/24Hour/Controllers/Common/ReservationController.cs b/24Hour/Controllers/Common/ReservationController.cs index b4fec28..c19496d 100644 --- a/24Hour/Controllers/Common/ReservationController.cs +++ b/24Hour/Controllers/Common/ReservationController.cs @@ -207,12 +207,16 @@ namespace _24Hour.Controllers.Common /// [HttpPost] [Route("UpdateReception_state")] - public async Task UpdateReception_state(CurrencyDelete Currency) + public async Task UpdateReception_state(Commonpage Commonpagedata) { try { - var Receptionlist = await _db.Queryable().Where(q => Currency.id.Contains(q.Id)).ToListAsync(); - Receptionlist.ForEach(q => { q.state = 1; }); + var Receptionlist = await _db.Queryable().Where(q =>q.Id== Commonpagedata.Id).ToListAsync(); + Receptionlist.ForEach(q => { + q.state = (int)Commonpagedata.state; + if (Commonpagedata.reason.NotNull()) + q.reason = Commonpagedata.reason; + }); _db.BeginTran(); var num = await _db.Updateable(Receptionlist).ExecuteCommandAsync(); _db.CommitTran(); diff --git a/24Hour/Controllers/Common/WebSocketController.cs b/24Hour/Controllers/Common/WebSocketController.cs index 0cc480b..1a5dce3 100644 --- a/24Hour/Controllers/Common/WebSocketController.cs +++ b/24Hour/Controllers/Common/WebSocketController.cs @@ -1,8 +1,10 @@ -using Elight.Entity; +using com.sun.org.apache.xpath.@internal.operations; +using Elight.Entity; using Elight.Logic; using Elight.Utility; using Elight.Utility.Code; using Elight.Utility.Extensions; +using java.awt; using javax.xml.crypto; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -359,6 +361,58 @@ namespace _24Hour.Controllers.Common result.result = ""; return result; } + + /// + /// 系统消息发送 + /// + /// + /// + [HttpGet] + [Route("system")] + public async Task system(string Id) + { + try + { + //获取发送人连接 + var socket = CONNECT_POOL.Where(q => q.Key == Id).Select(q => q.Value).FirstOrDefault(); + if (socket != null && socket.State == WebSocketState.Open) + { + ArraySegment buffer = new ArraySegment(new byte[2048]); + #region 消息处理(消息转发) + try + { + #region 关闭Socket处理,删除连接池 + if (socket.State != WebSocketState.Open)//连接关闭 + { + if (CONNECT_POOL.ContainsKey(_userdata.Id)) CONNECT_POOL.Remove(_userdata.Id);//删除连接池 + return true; + } + #endregion + + #region 消息发送 + var content = "system"; + buffer = new ArraySegment(Encoding.UTF8.GetBytes(content)); + //当前用户socket发送 + await socket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None); + #endregion + } + catch (Exception exs) + { + //消息转发异常处理,本次消息忽略 继续监听接下来的消息 + } + #endregion + } + else + { + } + } + catch (Exception) + { + //整体异常处理 + if (CONNECT_POOL.ContainsKey(_userdata.Id)) CONNECT_POOL.Remove(_userdata.Id); + } + return true; + } } /// diff --git a/24Hour/Controllers/system/SystemControllerController.cs b/24Hour/Controllers/system/SystemControllerController.cs index bb9eeb7..73912c2 100644 --- a/24Hour/Controllers/system/SystemControllerController.cs +++ b/24Hour/Controllers/system/SystemControllerController.cs @@ -45,7 +45,7 @@ namespace _24Hour.Controllers.system [Route("QueryUserlist")] public async Task QueryUserlist() { - var Unitlist = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.usertype == 0 && q.isdeactivate == 0 && q.usertype == 0 && q.unitCode == _userdata.unitCode).ToListAsync(); + var Unitlist = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.isdeactivate == 0 && q.usertype == 0 && q.unitCode == _userdata.unitCode).ToListAsync(); result.IsSucceed = true; result.result = Unitlist.OrderByDescending(q=>q.createtime).ToList(); return result; diff --git a/24Hour/Program.cs b/24Hour/Program.cs index 34c66ce..cbfa11f 100644 --- a/24Hour/Program.cs +++ b/24Hour/Program.cs @@ -15,6 +15,7 @@ using System.Text; using System.Text.Json.Serialization; using System.Text.Json; using Microsoft.AspNetCore.Http.Json; +using _24Hour.Controllers.Common; #region builder @@ -147,6 +148,7 @@ builder.Services.AddAuthentication(options => builder.Services.AddAuthorization(); builder.Services.AddHttpContextAccessor(); +builder.Services.AddScoped(); builder.Services.TryAddSingleton(); //jwt builder.Services.TryAddSingleton(); //WriteSysLog builder.Services.AddScoped(sp => diff --git a/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/17.log b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/17.log new file mode 100644 index 0000000..de601b3 --- /dev/null +++ b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/17.log @@ -0,0 +1,12 @@ +日志时间:2023-06-19 17:01:42 +************************Exception Start******************************** +Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常 +Exception Date:2023/6/19 17:01: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************************************ + diff --git a/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/18.log b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/18.log new file mode 100644 index 0000000..6c2301b --- /dev/null +++ b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/18.log @@ -0,0 +1,46 @@ +日志时间:2023-06-19 18:21:24 +************************Exception Start******************************** +Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常 +Exception Date:2023/6/19 18:21:24 +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-19 18:22:43 +************************Exception Start******************************** +Exception Remark:修改律师服务预约办理人 +Exception Date:2023/6/19 18:22:43 +Exception Type:System.NullReferenceException +Exception Message:Object reference not set to an instance of an object. +Exception Source:24Hour +Exception StackTrace: at _24Hour.Controllers.Common.CommonController.Updateuser(String Id, String userId, String username) in E:\Code\24Hour.Service\24Hour\Controllers\Common\CommonController.cs:line 481 +************************Exception End************************************ + +日志时间:2023-06-19 18:22:43 +************************Exception Start******************************** +Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常 +Exception Date:2023/6/19 18:22:43 +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-19 18:27:01 +************************Exception Start******************************** +Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常 +Exception Date:2023/6/19 18:27:01 +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************************************ + diff --git a/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/20.log b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/20.log new file mode 100644 index 0000000..5045001 --- /dev/null +++ b/24Hour/wwwroot/CaseFile/logs/Logs/ExceptionLog/20230619/20.log @@ -0,0 +1,12 @@ +日志时间:2023-06-19 20:49:32 +************************Exception Start******************************** +Exception Remark:添加数据库日志信息_WriteSysLog_1 发生异常 +Exception Date:2023/6/19 20:49: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************************************ + diff --git a/Elight.Entity/SystemModel/App_Sys_UserModel.cs b/Elight.Entity/SystemModel/App_Sys_UserModel.cs index 97d70d3..b5f7738 100644 --- a/Elight.Entity/SystemModel/App_Sys_UserModel.cs +++ b/Elight.Entity/SystemModel/App_Sys_UserModel.cs @@ -83,7 +83,7 @@ namespace Elight.Entity /// 是否停用 0:启用,1禁用 /// [DataMember] - public int? isdeactivate { get; set; } + public int? isdeactivate { get; set; } = 0; /// /// 是否App通用:0:通用,1:不通用 diff --git a/Elight.Logic/WriteSysLog.cs b/Elight.Logic/WriteSysLog.cs index ebbd637..339a368 100644 --- a/Elight.Logic/WriteSysLog.cs +++ b/Elight.Logic/WriteSysLog.cs @@ -56,5 +56,22 @@ namespace Elight.Logic LogService.WriteLog(ex, "添加数据库日志信息_WriteSysLog_1 发生异常"); } } + + + /// + ///生成制定位数的随机码(数字) + /// + /// + /// + public string GenerateRandomCode(int leng) + { + var result = new StringBuilder(); + for (var i = 0; i < leng; i++) + { + var r = new Random(Guid.NewGuid().GetHashCode()); + result.Append(r.Next(0, 10)); + } + return result.ToString(); + } } }