Browse Source

微信订阅号消息发送接口添加

develop-lawyerExampaper
liujiaqiang 2 years ago
parent
commit
4d60cd0546
  1. 1
      24Hour/24Hour.csproj
  2. 120
      24Hour/Controllers/Common/CommonController.cs
  3. 24
      24Hour/Controllers/Common/WebSocketController.cs
  4. 173
      24Hour/WechatMessagerClient.cs
  5. 6
      24Hour/appsettings.json
  6. 12
      Elight.Utility/Extensions/StringExtension.cs

1
24Hour/24Hour.csproj

@ -18,6 +18,7 @@
<PackageReference Include="Quartz" Version="3.6.3" /> <PackageReference Include="Quartz" Version="3.6.3" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.83" /> <PackageReference Include="SqlSugarCore" Version="5.1.4.83" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<PackageReference Include="System.Runtime.Caching" Version="7.0.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

120
24Hour/Controllers/Common/CommonController.cs

@ -38,10 +38,11 @@ namespace _24Hour.Controllers.Common
App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户
private readonly List<App_Sys_UnitModel> _Unitdata;//当前用户 private readonly List<App_Sys_UnitModel> _Unitdata;//当前用户
private readonly ILogger<LoginController> _logger;//日志 private readonly ILogger<LoginController> _logger;//日志
private readonly WechatMessagerClient _wechatMessagerClient;
private readonly IMapper _mapper; private readonly IMapper _mapper;
DateTime unixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); DateTime unixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
Result result = new Result(); Result result = new Result();
public CommonController(IMapper mapper,ILogger<LoginController> logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon) public CommonController(IMapper mapper, ILogger<LoginController> logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon, WechatMessagerClient wechatMessagerClient)
{ {
_logger = logger; _logger = logger;
_db = db; _db = db;
@ -50,6 +51,7 @@ namespace _24Hour.Controllers.Common
_SocketCon = SocketCon; _SocketCon = SocketCon;
_Unitdata = _db.Queryable<App_Sys_UnitModel>().Where(q => q.IsDelete == 0).ToList(); _Unitdata = _db.Queryable<App_Sys_UnitModel>().Where(q => q.IsDelete == 0).ToList();
_mapper = mapper; _mapper = mapper;
_wechatMessagerClient = wechatMessagerClient;
} }
#endregion #endregion
@ -70,11 +72,11 @@ namespace _24Hour.Controllers.Common
var Unitlist = await _db.Queryable<App_Sys_UnitModel>().ToListAsync(); var Unitlist = await _db.Queryable<App_Sys_UnitModel>().ToListAsync();
//获取工作台信息 //获取工作台信息
var Stagingdata = await _db.Queryable<StagingModel>().Where(q => q.IsDelete == 0).ToArrayAsync(); var Stagingdata = await _db.Queryable<StagingModel>().Where(q => q.IsDelete == 0).ToArrayAsync();
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) .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 => Lawyerdata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -92,7 +94,7 @@ namespace _24Hour.Controllers.Common
ettime = "", ettime = "",
creationtime = q.creationtime, creationtime = q.creationtime,
username = q.createusername, username = q.createusername,
unitCode= q.unitCode, unitCode = q.unitCode,
unitName = Unitlist.FirstOrDefault(x => x.unitCode == q.unitCode)?.unitname, unitName = Unitlist.FirstOrDefault(x => x.unitCode == q.unitCode)?.unitname,
handleId = q.receptionuser, handleId = q.receptionuser,
handleuser = q.receptionusername, handleuser = q.receptionusername,
@ -259,11 +261,11 @@ namespace _24Hour.Controllers.Common
//获取律师服务预约记录 //获取律师服务预约记录
var list = await _db.Queryable<App_LawyerServicesModel>() var list = await _db.Queryable<App_LawyerServicesModel>()
.Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync();
if (list.Count>0) if (list.Count > 0)
{ {
var datalist = _mapper.Map<List<App_LawyerServicesModel>, List<App_LawyerServicesDto>>(list); var datalist = _mapper.Map<List<App_LawyerServicesModel>, List<App_LawyerServicesDto>>(list);
var unitdal = _Unitdata.Where(q => q.unitCode == datalist.FirstOrDefault()?.unitCode).FirstOrDefault(); var unitdal = _Unitdata.Where(q => q.unitCode == datalist.FirstOrDefault()?.unitCode).FirstOrDefault();
if (unitdal!= null) if (unitdal != null)
{ {
datalist.FirstOrDefault().unitName = unitdal.unitname; datalist.FirstOrDefault().unitName = unitdal.unitname;
} }
@ -272,18 +274,18 @@ namespace _24Hour.Controllers.Common
} }
else else
{ {
result.result =null; result.result = null;
} }
break; break;
case 1: case 1:
//获取远程会见预约记录 //获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>() var Remotedata = await _db.Queryable<App_RemoteModel>()
.Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync();
if (Remotedata.Count>0) if (Remotedata.Count > 0)
{ {
var Remotedatalist = _mapper.Map<List<App_RemoteModel>, List<App_RemoteDto>>(Remotedata); var Remotedatalist = _mapper.Map<List<App_RemoteModel>, List<App_RemoteDto>>(Remotedata);
var unitdatote = _Unitdata.Where(q => q.unitCode == Remotedatalist.FirstOrDefault()?.unitCode).FirstOrDefault(); var unitdatote = _Unitdata.Where(q => q.unitCode == Remotedatalist.FirstOrDefault()?.unitCode).FirstOrDefault();
if (unitdatote!= null) if (unitdatote != null)
Remotedatalist.FirstOrDefault().unitName = unitdatote.unitname; Remotedatalist.FirstOrDefault().unitName = unitdatote.unitname;
result.result = Remotedatalist.FirstOrDefault(); result.result = Remotedatalist.FirstOrDefault();
} }
@ -292,11 +294,11 @@ namespace _24Hour.Controllers.Common
//获取远程接待预约记录 //获取远程接待预约记录
var Receptiondata = await _db.Queryable<App_ReceptionModel>() var Receptiondata = await _db.Queryable<App_ReceptionModel>()
.Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync();
if (Receptiondata.Count>0) if (Receptiondata.Count > 0)
{ {
var Receptiondatalist = _mapper.Map<List<App_ReceptionModel>, List<App_ReceptionDto>>(Receptiondata); var Receptiondatalist = _mapper.Map<List<App_ReceptionModel>, List<App_ReceptionDto>>(Receptiondata);
var unitdatR = _Unitdata.Where(q => q.unitCode == Receptiondatalist.FirstOrDefault().unitCode).FirstOrDefault(); var unitdatR = _Unitdata.Where(q => q.unitCode == Receptiondatalist.FirstOrDefault().unitCode).FirstOrDefault();
if (unitdatR!= null) if (unitdatR != null)
Receptiondatalist.FirstOrDefault().unitName = unitdatR.unitname; Receptiondatalist.FirstOrDefault().unitName = unitdatR.unitname;
result.result = Receptiondatalist.FirstOrDefault(); result.result = Receptiondatalist.FirstOrDefault();
} }
@ -305,11 +307,11 @@ namespace _24Hour.Controllers.Common
//获取听证预约记录 //获取听证预约记录
var Hearingdata = await _db.Queryable<App_HearingModel>() var Hearingdata = await _db.Queryable<App_HearingModel>()
.Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync();
if (Hearingdata.Count>0) if (Hearingdata.Count > 0)
{ {
var Hearingdatalist = _mapper.Map<List<App_HearingModel>, List<App_HearingDto>>(Hearingdata); var Hearingdatalist = _mapper.Map<List<App_HearingModel>, List<App_HearingDto>>(Hearingdata);
var unitdata = _Unitdata.Where(q => q.unitCode == Hearingdatalist.FirstOrDefault().unitCode).FirstOrDefault(); var unitdata = _Unitdata.Where(q => q.unitCode == Hearingdatalist.FirstOrDefault().unitCode).FirstOrDefault();
if (unitdata!= null) if (unitdata != null)
Hearingdatalist.FirstOrDefault().unitName = unitdata.unitname; Hearingdatalist.FirstOrDefault().unitName = unitdata.unitname;
result.result = Hearingdatalist.FirstOrDefault(); result.result = Hearingdatalist.FirstOrDefault();
} }
@ -318,11 +320,11 @@ namespace _24Hour.Controllers.Common
//获取文书签收记录 //获取文书签收记录
var Documentdata = await _db.Queryable<App_DocumentModel>() var Documentdata = await _db.Queryable<App_DocumentModel>()
.Where(q => q.Id == Id).ToListAsync(); .Where(q => q.Id == Id).ToListAsync();
if (Documentdata.Count>0) if (Documentdata.Count > 0)
{ {
var Documentdatalist = _mapper.Map<List<App_DocumentModel>, List<App_DocumentDto>>(Documentdata); var Documentdatalist = _mapper.Map<List<App_DocumentModel>, List<App_DocumentDto>>(Documentdata);
var unitda = _Unitdata.Where(q => q.unitCode == Documentdatalist.FirstOrDefault().dwbm).FirstOrDefault(); var unitda = _Unitdata.Where(q => q.unitCode == Documentdatalist.FirstOrDefault().dwbm).FirstOrDefault();
if (unitda!= null) if (unitda != null)
Documentdatalist.FirstOrDefault().unitName = unitda.unitname; Documentdatalist.FirstOrDefault().unitName = unitda.unitname;
result.result = Documentdatalist.FirstOrDefault(); result.result = Documentdatalist.FirstOrDefault();
} }
@ -331,7 +333,7 @@ namespace _24Hour.Controllers.Common
//获取云柜记录 //获取云柜记录
var CloudCabinetdata = await _db.Queryable<App_CloudCabinetModel>() var CloudCabinetdata = await _db.Queryable<App_CloudCabinetModel>()
.Where(q => q.Id == Id).ToListAsync(); .Where(q => q.Id == Id).ToListAsync();
if (CloudCabinetdata.Count>0) if (CloudCabinetdata.Count > 0)
{ {
var CloudCabinetdatalist = _mapper.Map<List<App_CloudCabinetModel>, List<App_CloudCabinetDto>>(CloudCabinetdata); var CloudCabinetdatalist = _mapper.Map<List<App_CloudCabinetModel>, List<App_CloudCabinetDto>>(CloudCabinetdata);
var unitdat = _Unitdata.Where(q => q.unitCode == CloudCabinetdatalist.FirstOrDefault().dwbm).FirstOrDefault(); var unitdat = _Unitdata.Where(q => q.unitCode == CloudCabinetdatalist.FirstOrDefault().dwbm).FirstOrDefault();
@ -343,7 +345,7 @@ namespace _24Hour.Controllers.Common
//获取认罪认罚预约记录 //获取认罪认罚预约记录
var Confessiondata = await _db.Queryable<App_ConfessionModel>() var Confessiondata = await _db.Queryable<App_ConfessionModel>()
.Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync();
if (Confessiondata.Count>0) if (Confessiondata.Count > 0)
result.result = Confessiondata.FirstOrDefault(); result.result = Confessiondata.FirstOrDefault();
break; break;
} }
@ -634,7 +636,7 @@ namespace _24Hour.Controllers.Common
// .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1)
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .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) .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 && !string.IsNullOrEmpty(q.receptionuser)).ToArrayAsync();
//.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).ToArrayAsync();
Lawyerdata.ToList().ForEach(q => 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 && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1)
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .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) .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 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync();
Remotedata.ToList().ForEach(q => 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 == 0, x => x.state == Commondata.state || x.state == 1)
// .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1)
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .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) .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 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync();
//.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).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 == 0, x => x.state == Commondata.state || x.state == 1)
// .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1)
.WhereIF(Commondata.state != null, x => x.state == Commondata.state) .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) .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 && !string.IsNullOrEmpty(q.receptionuser)).ToArrayAsync();
//.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).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)
//.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) //.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(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) .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 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync();
//.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).ToArrayAsync();
@ -975,13 +977,13 @@ namespace _24Hour.Controllers.Common
if (string.IsNullOrEmpty(_userdata.department)) if (string.IsNullOrEmpty(_userdata.department))
{ {
result.IsSucceed = true; result.IsSucceed = true;
result.result=list; result.result = list;
return result; return result;
} }
//获取律师服务预约记录 //获取律师服务预约记录
var Lawyerdata = await _db.Queryable<App_LawyerServicesModel>().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser==_userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) var Lawyerdata = await _db.Queryable<App_LawyerServicesModel>().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(); // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync();
Lawyerdata.ToList().ForEach(q => Lawyerdata.ToList().ForEach(q =>
{ {
@ -1020,7 +1022,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取远程会见预约记录 //获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) var Remotedata = await _db.Queryable<App_RemoteModel>().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 => Remotedata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -1058,7 +1060,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取远程接待预约记录 //获取远程接待预约记录
var Receptiondata = await _db.Queryable<App_ReceptionModel>().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) var Receptiondata = await _db.Queryable<App_ReceptionModel>().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(); // .Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync();
Receptiondata.ToList().ForEach(q => Receptiondata.ToList().ForEach(q =>
{ {
@ -1097,7 +1099,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取认罪认罚预约记录 //获取认罪认罚预约记录
var Confessiondata = await _db.Queryable<App_ConfessionModel>().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) var Confessiondata = await _db.Queryable<App_ConfessionModel>().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(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync();
Confessiondata.ToList().ForEach(q => Confessiondata.ToList().ForEach(q =>
{ {
@ -1136,7 +1138,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取听证服务预约记录 //获取听证服务预约记录
var Hearingdata = await _db.Queryable<App_HearingModel>().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) var Hearingdata = await _db.Queryable<App_HearingModel>().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(); // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync();
Hearingdata.ToList().ForEach(q => Hearingdata.ToList().ForEach(q =>
{ {
@ -1325,21 +1327,43 @@ namespace _24Hour.Controllers.Common
//} //}
Lawyerbol.FirstOrDefault().acceptancetime = dto.time; Lawyerbol.FirstOrDefault().acceptancetime = dto.time;
Lawyerbol.FirstOrDefault().reason = dto.reason; Lawyerbol.FirstOrDefault().reason = dto.reason;
Lawyerbol.FirstOrDefault().state = Convert.ToInt32(dto.state); Lawyerbol.FirstOrDefault().state = Convert.ToInt32(dto.state);
Lawyerbol.FirstOrDefault().operatorId =newmodel.Id; Lawyerbol.FirstOrDefault().operatorId = newmodel.Id;
Lawyerbol.FirstOrDefault().operatorName = newmodel.name; Lawyerbol.FirstOrDefault().operatorName = newmodel.name;
} }
else else
{ {
Lawyerbol.FirstOrDefault().receptionuser = dto.userId; Lawyerbol.FirstOrDefault().receptionuser = dto.userId;
Lawyerbol.FirstOrDefault().receptionusername = dto.username; Lawyerbol.FirstOrDefault().receptionusername = dto.username;
} }
var userdata = await _db.Queryable<App_Sys_UserModel>()
.Where(q => q.Id == Lawyerbol.FirstOrDefault().createuserId).ToArrayAsync();
_db.BeginTran(); _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(); 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(); _db.CommitTran();
if (num > 0) 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.IsSucceed = true;
result.result = "修改成功"; result.result = "修改成功";
} }
@ -1360,8 +1384,8 @@ namespace _24Hour.Controllers.Common
RemoteModelbol.FirstOrDefault().acceptancetime = dto.time; RemoteModelbol.FirstOrDefault().acceptancetime = dto.time;
RemoteModelbol.FirstOrDefault().reason = dto.reason; RemoteModelbol.FirstOrDefault().reason = dto.reason;
RemoteModelbol.FirstOrDefault().state = Convert.ToInt32(dto.state); RemoteModelbol.FirstOrDefault().state = Convert.ToInt32(dto.state);
RemoteModelbol.FirstOrDefault().operatorId =newmodel.Id; RemoteModelbol.FirstOrDefault().operatorId = newmodel.Id;
RemoteModelbol.FirstOrDefault().operatorName = newmodel.name; RemoteModelbol.FirstOrDefault().operatorName = newmodel.name;
} }
else else
{ {
@ -1394,8 +1418,8 @@ namespace _24Hour.Controllers.Common
Receptiondata.FirstOrDefault().acceptancetime = dto.time; Receptiondata.FirstOrDefault().acceptancetime = dto.time;
Receptiondata.FirstOrDefault().reason = dto.reason; Receptiondata.FirstOrDefault().reason = dto.reason;
Receptiondata.FirstOrDefault().state = Convert.ToInt32(dto.state); Receptiondata.FirstOrDefault().state = Convert.ToInt32(dto.state);
Receptiondata.FirstOrDefault().operatorId =newmodel.Id; Receptiondata.FirstOrDefault().operatorId = newmodel.Id;
Receptiondata.FirstOrDefault().operatorName = newmodel.name; Receptiondata.FirstOrDefault().operatorName = newmodel.name;
} }
else else
{ {
@ -1426,9 +1450,9 @@ namespace _24Hour.Controllers.Common
//} //}
Confessiondata.FirstOrDefault().acceptancetime = dto.time; Confessiondata.FirstOrDefault().acceptancetime = dto.time;
Confessiondata.FirstOrDefault().reason = dto.reason; Confessiondata.FirstOrDefault().reason = dto.reason;
Confessiondata.FirstOrDefault().state =Convert.ToInt32(dto.state); Confessiondata.FirstOrDefault().state = Convert.ToInt32(dto.state);
Confessiondata.FirstOrDefault().operatorId =newmodel.Id; Confessiondata.FirstOrDefault().operatorId = newmodel.Id;
Confessiondata.FirstOrDefault().operatorName = newmodel.name; Confessiondata.FirstOrDefault().operatorName = newmodel.name;
} }
else else
{ {
@ -1461,8 +1485,8 @@ namespace _24Hour.Controllers.Common
Hearingdata.FirstOrDefault().acceptancetime = dto.time; Hearingdata.FirstOrDefault().acceptancetime = dto.time;
Hearingdata.FirstOrDefault().reason = dto.reason; Hearingdata.FirstOrDefault().reason = dto.reason;
Hearingdata.FirstOrDefault().state = Convert.ToInt32(dto.state); Hearingdata.FirstOrDefault().state = Convert.ToInt32(dto.state);
Hearingdata.FirstOrDefault().operatorId =newmodel.Id; Hearingdata.FirstOrDefault().operatorId = newmodel.Id;
Hearingdata.FirstOrDefault().operatorName = newmodel.name; Hearingdata.FirstOrDefault().operatorName = newmodel.name;
} }
else else
{ {
@ -2154,7 +2178,7 @@ namespace _24Hour.Controllers.Common
{ {
type = 0, type = 0,
Id = q.Id, Id = q.Id,
operatorId=q.operatorId, operatorId = q.operatorId,
operatorName = userda?.name, operatorName = userda?.name,
daId = da?.Id, daId = da?.Id,
title = da?.title, title = da?.title,
@ -2275,7 +2299,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取听证预约记录 //获取听证预约记录
var Hearingdata = await _db.Queryable<App_HearingModel>() var Hearingdata = await _db.Queryable<App_HearingModel>()
.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 => Hearingdata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -2339,7 +2363,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>()
.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 => Lawyerdata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -2370,7 +2394,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取远程会见预约记录 //获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>() var Remotedata = await _db.Queryable<App_RemoteModel>()
.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 => Remotedata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -2403,7 +2427,7 @@ namespace _24Hour.Controllers.Common
}); });
//获取远程接待预约记录 //获取远程接待预约记录
var Receptiondata = await _db.Queryable<App_ReceptionModel>() var Receptiondata = await _db.Queryable<App_ReceptionModel>()
.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 => Receptiondata.ToList().ForEach(q =>
{ {
var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault();
@ -2522,7 +2546,7 @@ namespace _24Hour.Controllers.Common
} }
} }
result.IsSucceed = true; result.IsSucceed = true;
result.result =new { GroupBy,satseGroupBy}; result.result = new { GroupBy, satseGroupBy };
} }
catch (System.Exception ex) catch (System.Exception ex)

24
24Hour/Controllers/Common/WebSocketController.cs

@ -28,17 +28,19 @@ namespace _24Hour.Controllers.Common
private readonly ILogger<LoginController> _logger;//日志 private readonly ILogger<LoginController> _logger;//日志
private readonly IConfiguration _configuration; private readonly IConfiguration _configuration;
private static object obj = new object(); private static object obj = new object();
private readonly WechatMessagerClient _wechatMessagerClient;
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, Addressda> meeting_pool = new Dictionary<string, Addressda>();//会议连接池 private static Dictionary<string, Addressda> meeting_pool = new Dictionary<string, Addressda>();//会议连接池
private static Dictionary<string, string> userzx = new Dictionary<string, string>();//检察官在线池 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, WechatMessagerClient wechatMessagerClient, IConfiguration configuration)
{ {
_logger = logger; _logger = logger;
_db = db; _db = db;
_userdata = userdata.Userdata(); _userdata = userdata.Userdata();
_configuration = configuration; _configuration = configuration;
_wechatMessagerClient = wechatMessagerClient;
} }
[HttpGet("/ws")] [HttpGet("/ws")]
public async Task WebSocketServer() public async Task WebSocketServer()
@ -543,6 +545,26 @@ namespace _24Hour.Controllers.Common
} }
return true; return true;
} }
///// <summary>
///// 微信推送
///// </summary>
///// <param name="Id"></param>
///// <returns></returns>
//[HttpGet]
//[Route("wxts")]
//public async Task<bool> wxts()
//{
// try
// {
// _wechatMessagerClient.wxts();
// }
// catch (Exception)
// {
// }
// return true;
//}
} }
/// <summary> /// <summary>

173
24Hour/WechatMessagerClient.cs

@ -2,7 +2,12 @@
using com.sun.xml.@internal.xsom; using com.sun.xml.@internal.xsom;
using Elight.Utility; using Elight.Utility;
using Elight.Utility.Code; using Elight.Utility.Code;
using Elight.Utility.Extensions;
using java.lang.annotation;
using Microsoft.IdentityModel.Logging;
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Runtime.Caching;
namespace _24Hour namespace _24Hour
{ {
@ -10,23 +15,34 @@ namespace _24Hour
public class WechatMessagerClient public class WechatMessagerClient
{ {
private readonly HttpClient httpCliet; private readonly HttpClient httpCliet;
public WechatMessagerClient(HttpClient _httpCliet) // 实例化MemoryCache对象
MemoryCache cache = MemoryCache.Default;
private readonly IConfiguration _configuration;
/// <summary>
/// 小程序AppID
/// </summary>
private string appid = "wx48108a0c98a3dab0";
/// <summary>
/// 小程序AppID
/// </summary>
private string secret = "wx48108a0c98a3dab0";
/// <summary>
/// 小程序secretID
/// </summary>
private string secid = "e752e4fba67526eca21313a18c96a58f";
public WechatMessagerClient(HttpClient _httpCliet, IConfiguration configuration)
{ {
this.httpCliet = _httpCliet; this.httpCliet = _httpCliet;
httpCliet.DefaultRequestHeaders.Add("Accept", "application/json"); httpCliet.DefaultRequestHeaders.Add("Accept", "application/json");
httpCliet.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample"); httpCliet.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");
httpCliet.DefaultRequestHeaders.ConnectionClose = true; httpCliet.DefaultRequestHeaders.ConnectionClose = true;
} _configuration = configuration;
/// <summary> appid = $"{configuration.GetSection("Wechat:appid").Value}";
/// 小程序AppID secret = $"{configuration.GetSection("Wechat:secret").Value}";
/// </summary> secid = $"{configuration.GetSection("Wechat:secid").Value}";
private const string appid = "wx48108a0c98a3dab0"; }
/// <summary>
/// 小程序secretID
/// </summary>
private const string secid = "e752e4fba67526eca21313a18c96a58f";
public async Task<Result> GetOpenId(string code) public async Task<Result> GetOpenId(string code)
{ {
var ret = new Result(); var ret = new Result();
@ -53,5 +69,142 @@ namespace _24Hour
return ret; return ret;
} }
/// <summary>
/// 律师预约微信消息提醒,成功
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 律师预约微信消息提醒,失败
/// </summary>
/// <returns></returns>
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;
}
} }
} }

6
24Hour/appsettings.json

@ -44,5 +44,11 @@
"Videoaddress": { "Videoaddress": {
"rtmp": "rtmp://192.168.0.24:1935/live/", "rtmp": "rtmp://192.168.0.24:1935/live/",
"rtsp": "rtsp://192.168.0.24:8554/live/" "rtsp": "rtsp://192.168.0.24:8554/live/"
},
"Wechat": {
"appid": "wx48108a0c98a3dab0",
"secret": "e752e4fba67526eca21313a18c96a58f",
"secid": "e752e4fba67526eca21313a18c96a58f",
"miniprogram_state": "trial"
} }
} }

12
Elight.Utility/Extensions/StringExtension.cs

@ -1,4 +1,5 @@
using System; using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Globalization; using System.Globalization;
@ -61,6 +62,15 @@ namespace Elight.Utility.Extensions
string str = string.Concat(s.First().ToString().ToLower(), s.AsSpan(1)); string str = string.Concat(s.First().ToString().ToLower(), s.AsSpan(1));
return str; 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;
}
/// <summary> /// <summary>
/// 首字母转大写 /// 首字母转大写

Loading…
Cancel
Save