diff --git a/24Hour/24Hour.csproj b/24Hour/24Hour.csproj index 65591ab..52597c0 100644 --- a/24Hour/24Hour.csproj +++ b/24Hour/24Hour.csproj @@ -18,6 +18,7 @@ + diff --git a/24Hour/Controllers/Common/CommonController.cs b/24Hour/Controllers/Common/CommonController.cs index be227c0..c58a72b 100644 --- a/24Hour/Controllers/Common/CommonController.cs +++ b/24Hour/Controllers/Common/CommonController.cs @@ -38,10 +38,11 @@ namespace _24Hour.Controllers.Common App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 private readonly List _Unitdata;//当前用户 private readonly ILogger _logger;//日志 + private readonly WechatMessagerClient _wechatMessagerClient; private readonly IMapper _mapper; DateTime unixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); Result result = new Result(); - public CommonController(IMapper mapper,ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon) + public CommonController(IMapper mapper, ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon, WechatMessagerClient wechatMessagerClient) { _logger = logger; _db = db; @@ -50,6 +51,7 @@ namespace _24Hour.Controllers.Common _SocketCon = SocketCon; _Unitdata = _db.Queryable().Where(q => q.IsDelete == 0).ToList(); _mapper = mapper; + _wechatMessagerClient = wechatMessagerClient; } #endregion @@ -70,11 +72,11 @@ namespace _24Hour.Controllers.Common var Unitlist = await _db.Queryable().ToListAsync(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); - var Userdata = await _db.Queryable().Where(q => q.usertype == 0 ).ToArrayAsync(); + 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.unitCode==_userdata.unitCode).ToListAsync(); + .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToListAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); @@ -92,7 +94,7 @@ namespace _24Hour.Controllers.Common ettime = "", creationtime = q.creationtime, username = q.createusername, - unitCode= q.unitCode, + unitCode = q.unitCode, unitName = Unitlist.FirstOrDefault(x => x.unitCode == q.unitCode)?.unitname, handleId = q.receptionuser, handleuser = q.receptionusername, @@ -259,31 +261,31 @@ namespace _24Hour.Controllers.Common //获取律师服务预约记录 var list = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); - if (list.Count>0) + if (list.Count > 0) { var datalist = _mapper.Map, List>(list); var unitdal = _Unitdata.Where(q => q.unitCode == datalist.FirstOrDefault()?.unitCode).FirstOrDefault(); - if (unitdal!= null) + if (unitdal != null) { datalist.FirstOrDefault().unitName = unitdal.unitname; } - + result.result = datalist.FirstOrDefault(); } else { - result.result =null; + result.result = null; } break; case 1: //获取远程会见预约记录 var Remotedata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); - if (Remotedata.Count>0) + if (Remotedata.Count > 0) { var Remotedatalist = _mapper.Map, List>(Remotedata); var unitdatote = _Unitdata.Where(q => q.unitCode == Remotedatalist.FirstOrDefault()?.unitCode).FirstOrDefault(); - if (unitdatote!= null) + if (unitdatote != null) Remotedatalist.FirstOrDefault().unitName = unitdatote.unitname; result.result = Remotedatalist.FirstOrDefault(); } @@ -292,11 +294,11 @@ namespace _24Hour.Controllers.Common //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); - if (Receptiondata.Count>0) + if (Receptiondata.Count > 0) { var Receptiondatalist = _mapper.Map, List>(Receptiondata); var unitdatR = _Unitdata.Where(q => q.unitCode == Receptiondatalist.FirstOrDefault().unitCode).FirstOrDefault(); - if (unitdatR!= null) + if (unitdatR != null) Receptiondatalist.FirstOrDefault().unitName = unitdatR.unitname; result.result = Receptiondatalist.FirstOrDefault(); } @@ -305,11 +307,11 @@ namespace _24Hour.Controllers.Common //获取听证预约记录 var Hearingdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); - if (Hearingdata.Count>0) + if (Hearingdata.Count > 0) { var Hearingdatalist = _mapper.Map, List>(Hearingdata); var unitdata = _Unitdata.Where(q => q.unitCode == Hearingdatalist.FirstOrDefault().unitCode).FirstOrDefault(); - if (unitdata!= null) + if (unitdata != null) Hearingdatalist.FirstOrDefault().unitName = unitdata.unitname; result.result = Hearingdatalist.FirstOrDefault(); } @@ -318,11 +320,11 @@ namespace _24Hour.Controllers.Common //获取文书签收记录 var Documentdata = await _db.Queryable() .Where(q => q.Id == Id).ToListAsync(); - if (Documentdata.Count>0) + if (Documentdata.Count > 0) { var Documentdatalist = _mapper.Map, List>(Documentdata); var unitda = _Unitdata.Where(q => q.unitCode == Documentdatalist.FirstOrDefault().dwbm).FirstOrDefault(); - if (unitda!= null) + if (unitda != null) Documentdatalist.FirstOrDefault().unitName = unitda.unitname; result.result = Documentdatalist.FirstOrDefault(); } @@ -331,7 +333,7 @@ namespace _24Hour.Controllers.Common //获取云柜记录 var CloudCabinetdata = await _db.Queryable() .Where(q => q.Id == Id).ToListAsync(); - if (CloudCabinetdata.Count>0) + if (CloudCabinetdata.Count > 0) { var CloudCabinetdatalist = _mapper.Map, List>(CloudCabinetdata); var unitdat = _Unitdata.Where(q => q.unitCode == CloudCabinetdatalist.FirstOrDefault().dwbm).FirstOrDefault(); @@ -343,7 +345,7 @@ namespace _24Hour.Controllers.Common //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); - if (Confessiondata.Count>0) + if (Confessiondata.Count > 0) result.result = Confessiondata.FirstOrDefault(); break; } @@ -634,7 +636,7 @@ namespace _24Hour.Controllers.Common // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department) - .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id||x.operatorId ==null) + .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => @@ -681,7 +683,7 @@ namespace _24Hour.Controllers.Common //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId==_userdata.department) + .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync(); Remotedata.ToList().ForEach(q => @@ -727,7 +729,7 @@ namespace _24Hour.Controllers.Common //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId==_userdata.department) + .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).ToArrayAsync(); @@ -774,7 +776,7 @@ namespace _24Hour.Controllers.Common //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser==_userdata.department) + .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).ToArrayAsync(); @@ -900,7 +902,7 @@ namespace _24Hour.Controllers.Common //.WhereIF(Commondata.state != null && Commondata.state != 0, x => x.state == Commondata.state) //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) - .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId==_userdata.department) + .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).ToArrayAsync(); @@ -975,13 +977,13 @@ namespace _24Hour.Controllers.Common if (string.IsNullOrEmpty(_userdata.department)) { result.IsSucceed = true; - result.result=list; + result.result = list; return result; } //获取律师服务预约记录 - var Lawyerdata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser==_userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) - .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser) && q.state != 2 && q.state != 3).ToArrayAsync(); + var Lawyerdata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) + .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser) && q.state != 2 && q.state != 3).ToArrayAsync(); // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { @@ -1020,7 +1022,7 @@ namespace _24Hour.Controllers.Common }); //获取远程会见预约记录 var Remotedata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) - .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); @@ -1058,7 +1060,7 @@ namespace _24Hour.Controllers.Common }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) - .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); // .Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { @@ -1097,7 +1099,7 @@ namespace _24Hour.Controllers.Common }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) - .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { @@ -1136,7 +1138,7 @@ namespace _24Hour.Controllers.Common }); //获取听证服务预约记录 var Hearingdata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) - .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser) && q.state != 2 && q.state != 3).ToArrayAsync(); + .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser) && q.state != 2 && q.state != 3).ToArrayAsync(); // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { @@ -1325,21 +1327,43 @@ namespace _24Hour.Controllers.Common //} Lawyerbol.FirstOrDefault().acceptancetime = dto.time; Lawyerbol.FirstOrDefault().reason = dto.reason; - Lawyerbol.FirstOrDefault().state = Convert.ToInt32(dto.state); - Lawyerbol.FirstOrDefault().operatorId =newmodel.Id; - Lawyerbol.FirstOrDefault().operatorName = newmodel.name; + Lawyerbol.FirstOrDefault().state = Convert.ToInt32(dto.state); + Lawyerbol.FirstOrDefault().operatorId = newmodel.Id; + Lawyerbol.FirstOrDefault().operatorName = newmodel.name; } else { Lawyerbol.FirstOrDefault().receptionuser = dto.userId; Lawyerbol.FirstOrDefault().receptionusername = dto.username; } + var userdata = await _db.Queryable() + .Where(q => q.Id == Lawyerbol.FirstOrDefault().createuserId).ToArrayAsync(); _db.BeginTran(); var num = await _db.Updateable(Lawyerbol.FirstOrDefault()).UpdateColumns(it => new { it.receptionuser, it.receptionusername, it.acceptancetime, it.reason, it.state, it.operatorId, it.operatorName }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { - _SocketCon.system(dto.userId); + var Lawyerboldata = Lawyerbol.FirstOrDefault(); + //获取单位信息 + var unitname = _Unitdata.FirstOrDefault(q => q.unitCode == Lawyerboldata.unitCode)?.unitname; + await _SocketCon.system(dto.userId); + if (dto.Type == 1) + { + if (Convert.ToInt32(dto.state) == 1) + { + //判单预约人是否有微信openId + if (!string.IsNullOrEmpty(userdata.FirstOrDefault()?.wechatId)) + //发送晨成功订阅号消息 + _wechatMessagerClient.wxts(userdata.FirstOrDefault()?.wechatId, Lawyerboldata?.operatorName, unitname, Lawyerboldata?.receptiontime, Lawyerboldata?.objectstr +"-"+ Lawyerboldata?.matter, Lawyerboldata?.reason); + } + else + { + //判单预约人是否有微信openId + if (!string.IsNullOrEmpty(userdata.FirstOrDefault()?.wechatId)) + //发送拒绝订阅号消息 + _wechatMessagerClient.sbwxts(userdata.FirstOrDefault()?.wechatId, Lawyerboldata?.operatorName, unitname, Lawyerboldata?.receptiontime, Lawyerboldata?.matter); + } + } result.IsSucceed = true; result.result = "修改成功"; } @@ -1360,8 +1384,8 @@ namespace _24Hour.Controllers.Common RemoteModelbol.FirstOrDefault().acceptancetime = dto.time; RemoteModelbol.FirstOrDefault().reason = dto.reason; RemoteModelbol.FirstOrDefault().state = Convert.ToInt32(dto.state); - RemoteModelbol.FirstOrDefault().operatorId =newmodel.Id; - RemoteModelbol.FirstOrDefault().operatorName = newmodel.name; + RemoteModelbol.FirstOrDefault().operatorId = newmodel.Id; + RemoteModelbol.FirstOrDefault().operatorName = newmodel.name; } else { @@ -1394,8 +1418,8 @@ namespace _24Hour.Controllers.Common Receptiondata.FirstOrDefault().acceptancetime = dto.time; Receptiondata.FirstOrDefault().reason = dto.reason; Receptiondata.FirstOrDefault().state = Convert.ToInt32(dto.state); - Receptiondata.FirstOrDefault().operatorId =newmodel.Id; - Receptiondata.FirstOrDefault().operatorName = newmodel.name; + Receptiondata.FirstOrDefault().operatorId = newmodel.Id; + Receptiondata.FirstOrDefault().operatorName = newmodel.name; } else { @@ -1426,9 +1450,9 @@ namespace _24Hour.Controllers.Common //} Confessiondata.FirstOrDefault().acceptancetime = dto.time; Confessiondata.FirstOrDefault().reason = dto.reason; - Confessiondata.FirstOrDefault().state =Convert.ToInt32(dto.state); - Confessiondata.FirstOrDefault().operatorId =newmodel.Id; - Confessiondata.FirstOrDefault().operatorName = newmodel.name; + Confessiondata.FirstOrDefault().state = Convert.ToInt32(dto.state); + Confessiondata.FirstOrDefault().operatorId = newmodel.Id; + Confessiondata.FirstOrDefault().operatorName = newmodel.name; } else { @@ -1461,8 +1485,8 @@ namespace _24Hour.Controllers.Common Hearingdata.FirstOrDefault().acceptancetime = dto.time; Hearingdata.FirstOrDefault().reason = dto.reason; Hearingdata.FirstOrDefault().state = Convert.ToInt32(dto.state); - Hearingdata.FirstOrDefault().operatorId =newmodel.Id; - Hearingdata.FirstOrDefault().operatorName = newmodel.name; + Hearingdata.FirstOrDefault().operatorId = newmodel.Id; + Hearingdata.FirstOrDefault().operatorName = newmodel.name; } else { @@ -2154,7 +2178,7 @@ namespace _24Hour.Controllers.Common { type = 0, Id = q.Id, - operatorId=q.operatorId, + operatorId = q.operatorId, operatorName = userda?.name, daId = da?.Id, title = da?.title, @@ -2275,7 +2299,7 @@ namespace _24Hour.Controllers.Common }); //获取听证预约记录 var Hearingdata = await _db.Queryable() - .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode&&q.acceptancetime!=null && q.operatorId != null).ToArrayAsync(); + .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(); @@ -2339,7 +2363,7 @@ namespace _24Hour.Controllers.Common var Userdata = await _db.Queryable().Where(q => q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() - .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null &&q.operatorId== Commondata.Id).ToArrayAsync(); + .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(); @@ -2370,7 +2394,7 @@ namespace _24Hour.Controllers.Common }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() - .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync(); + .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(); @@ -2403,7 +2427,7 @@ namespace _24Hour.Controllers.Common }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() - .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync(); + .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(); @@ -2522,7 +2546,7 @@ namespace _24Hour.Controllers.Common } } result.IsSucceed = true; - result.result =new { GroupBy,satseGroupBy}; + result.result = new { GroupBy, satseGroupBy }; } catch (System.Exception ex) diff --git a/24Hour/Controllers/Common/WebSocketController.cs b/24Hour/Controllers/Common/WebSocketController.cs index 8f706b5..8bc02d9 100644 --- a/24Hour/Controllers/Common/WebSocketController.cs +++ b/24Hour/Controllers/Common/WebSocketController.cs @@ -28,17 +28,19 @@ namespace _24Hour.Controllers.Common private readonly ILogger _logger;//日志 private readonly IConfiguration _configuration; private static object obj = new object(); + private readonly WechatMessagerClient _wechatMessagerClient; 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) + public WebSocketController(ILogger logger, SqlSugarClient db, User userdata, WechatMessagerClient wechatMessagerClient, IConfiguration configuration) { _logger = logger; _db = db; _userdata = userdata.Userdata(); _configuration = configuration; + _wechatMessagerClient = wechatMessagerClient; } [HttpGet("/ws")] public async Task WebSocketServer() @@ -543,6 +545,26 @@ namespace _24Hour.Controllers.Common } return true; } + + ///// + ///// 微信推送 + ///// + ///// + ///// + //[HttpGet] + //[Route("wxts")] + //public async Task wxts() + //{ + // try + // { + // _wechatMessagerClient.wxts(); + // } + // catch (Exception) + // { + // } + // return true; + //} + } /// diff --git a/24Hour/WechatMessagerClient.cs b/24Hour/WechatMessagerClient.cs index 092837f..849f89f 100644 --- a/24Hour/WechatMessagerClient.cs +++ b/24Hour/WechatMessagerClient.cs @@ -2,31 +2,47 @@ using com.sun.xml.@internal.xsom; using Elight.Utility; using Elight.Utility.Code; +using Elight.Utility.Extensions; +using java.lang.annotation; +using Microsoft.IdentityModel.Logging; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using System.Runtime.Caching; namespace _24Hour { - + public class WechatMessagerClient { private readonly HttpClient httpCliet; - public WechatMessagerClient(HttpClient _httpCliet) + // 实例化MemoryCache对象 + MemoryCache cache = MemoryCache.Default; + private readonly IConfiguration _configuration; + /// + /// 小程序AppID + /// + private string appid = "wx48108a0c98a3dab0"; + /// + /// 小程序AppID + /// + private string secret = "wx48108a0c98a3dab0"; + /// + /// 小程序secretID + /// + private string secid = "e752e4fba67526eca21313a18c96a58f"; + public WechatMessagerClient(HttpClient _httpCliet, IConfiguration configuration) { this.httpCliet = _httpCliet; httpCliet.DefaultRequestHeaders.Add("Accept", "application/json"); httpCliet.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample"); httpCliet.DefaultRequestHeaders.ConnectionClose = true; - } + _configuration = configuration; - /// - /// 小程序AppID - /// - private const string appid = "wx48108a0c98a3dab0"; - /// - /// 小程序secretID - /// - private const string secid = "e752e4fba67526eca21313a18c96a58f"; + appid = $"{configuration.GetSection("Wechat:appid").Value}"; + secret = $"{configuration.GetSection("Wechat:secret").Value}"; + secid = $"{configuration.GetSection("Wechat:secid").Value}"; + } public async Task GetOpenId(string code) { var ret = new Result(); @@ -53,5 +69,142 @@ namespace _24Hour return ret; } + /// + /// 律师预约微信消息提醒,成功 + /// + /// + public bool wxts(string? useropenId, string? name, string? unit, DateTime? datetime, string? matter,string? attention) + { + try + { + var token = ""; + + // 获取缓存 + token = cache.Get("token")?.ToString(); + + if (string.IsNullOrEmpty(token)) + { + string geturl = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}"; + var re1 = HttpHelper.Get(geturl); + if (re1.Jsonstr("errcode") == null) + { + token = re1.Jsonstr("access_token"); + + // 移除缓存 + cache.Remove("token"); + // 添加缓存 + cache.Add("token", token, new CacheItemPolicy { AbsoluteExpiration = DateTime.Now.AddMinutes(120) }); + } + } + string url = $"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";//发送地址 + try + { + object msg = null; + string posturl = $"{url}{token}";//发送地址 + var thing4 = matter; + var thing5 = attention; + if (matter.Length>20) + thing4 = matter.Substring(0, 17)+"..."; + if (attention.Length>20) + thing5 = attention.Substring(0, 17)+"..."; + msg = new + { + touser = useropenId, + template_id = "mRfzPnc_3JuV9cPhjKrRL3jX1C_JJoBGYtqEnbfadRM", + page= "pages/selfService/reception/reception", + miniprogram_state= $"{_configuration.GetSection("Wechat:miniprogram_state").Value}", + lang ="zh_CN", + data = new + { + //name1 = new { value = $"{name}"},// + thing2 = new { value = $"{unit}"},// + date3 = new { value = $"{datetime:yyyy年MM月dd日 HH:mm}"},// + thing4 = new { value = $"{thing4}"},// + thing5 = new { value = $"{thing5}", color = "#173177" },// + }, + }; + var re = HttpHelper.Post(posturl, msg); + if (re.Jsonstr("errcode") == "0") + return true; + return false; + } + catch (Exception ex) + { + } + return true; + } + catch (Exception ex) + { + } + return false; + } + + + /// + /// 律师预约微信消息提醒,失败 + /// + /// + public bool sbwxts(string? useropenId,string? name,string? unit,DateTime? datetime,string? matter) + { + try + { + var token = ""; + + // 获取缓存 + var tokenss = cache.Get("token"); + + if (string.IsNullOrEmpty(token)) + { + string geturl = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx48108a0c98a3dab0&secret=e752e4fba67526eca21313a18c96a58f"; + var re1 = HttpHelper.Get(geturl); + if (re1.Jsonstr("errcode") == null) + { + token = re1.Jsonstr("access_token"); + + // 移除缓存 + cache.Remove("token"); + // 添加缓存 + cache.Add("token", token, new CacheItemPolicy { AbsoluteExpiration = DateTime.Now.AddMinutes(120) }); + } + } + string url = $"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";//发送地址 + try + { + object msg = null; + string posturl = $"{url}{token}";//发送地址 + var thing4 = matter; + if (matter.Length > 20) + thing4 = matter.Substring(0, 17) + "..."; + msg = new + { + touser = useropenId, + template_id = "sPbZd6ro14L4uCR_TyDlB4g-sR20zzqcvb-c6QkV3U4", + page = "pages/selfService/reception/reception", + miniprogram_state = $"{_configuration.GetSection("Wechat:miniprogram_state").Value}", + lang = "zh_CN", + data = new + { + thing1 = new { value = $"{name}" },//访问人 + thing2 = new { value = $"{unit}" },//访问单位 + time3 = new { value = $"{datetime:yyyy年MM月dd日 HH:mm}" },//预约时间 + thing4 = new { value = $"{thing4}" },//事由 + }, + }; + var re = HttpHelper.Post(posturl, msg); + if (re.Jsonstr("errcode") == "0") + return true; + return false; + } + catch (Exception ex) + { + } + return true; + } + catch (Exception ex) + { + } + return false; + } + } } diff --git a/24Hour/appsettings.json b/24Hour/appsettings.json index c196759..010af95 100644 --- a/24Hour/appsettings.json +++ b/24Hour/appsettings.json @@ -44,5 +44,11 @@ "Videoaddress": { "rtmp": "rtmp://192.168.0.24:1935/live/", "rtsp": "rtsp://192.168.0.24:8554/live/" + }, + "Wechat": { + "appid": "wx48108a0c98a3dab0", + "secret": "e752e4fba67526eca21313a18c96a58f", + "secid": "e752e4fba67526eca21313a18c96a58f", + "miniprogram_state": "trial" } } diff --git a/Elight.Utility/Extensions/StringExtension.cs b/Elight.Utility/Extensions/StringExtension.cs index c08fab3..cf9d417 100644 --- a/Elight.Utility/Extensions/StringExtension.cs +++ b/Elight.Utility/Extensions/StringExtension.cs @@ -1,4 +1,5 @@ -using System; +using Newtonsoft.Json.Linq; +using System; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.Globalization; @@ -61,6 +62,15 @@ namespace Elight.Utility.Extensions string str = string.Concat(s.First().ToString().ToLower(), s.AsSpan(1)); return str; } + public static string Jsonstr(this string str, string key) + { + JObject esult = JObject.Parse(str); + if (esult != null && esult[key] != null) + { + return $"{esult[key]}"; + } + return null; + } /// /// 首字母转大写