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="SqlSugarCore" Version="5.1.4.83" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" />
<PackageReference Include="System.Runtime.Caching" Version="7.0.0" />
</ItemGroup>
<ItemGroup>

120
24Hour/Controllers/Common/CommonController.cs

@ -38,10 +38,11 @@ namespace _24Hour.Controllers.Common
App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户
private readonly List<App_Sys_UnitModel> _Unitdata;//当前用户
private readonly ILogger<LoginController> _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<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;
_db = db;
@ -50,6 +51,7 @@ namespace _24Hour.Controllers.Common
_SocketCon = SocketCon;
_Unitdata = _db.Queryable<App_Sys_UnitModel>().Where(q => q.IsDelete == 0).ToList();
_mapper = mapper;
_wechatMessagerClient = wechatMessagerClient;
}
#endregion
@ -70,11 +72,11 @@ namespace _24Hour.Controllers.Common
var Unitlist = await _db.Queryable<App_Sys_UnitModel>().ToListAsync();
//获取工作台信息
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>()
.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,11 +261,11 @@ namespace _24Hour.Controllers.Common
//获取律师服务预约记录
var list = await _db.Queryable<App_LawyerServicesModel>()
.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 unitdal = _Unitdata.Where(q => q.unitCode == datalist.FirstOrDefault()?.unitCode).FirstOrDefault();
if (unitdal!= null)
if (unitdal != null)
{
datalist.FirstOrDefault().unitName = unitdal.unitname;
}
@ -272,18 +274,18 @@ namespace _24Hour.Controllers.Common
}
else
{
result.result =null;
result.result = null;
}
break;
case 1:
//获取远程会见预约记录
var Remotedata = await _db.Queryable<App_RemoteModel>()
.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 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<App_ReceptionModel>()
.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 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<App_HearingModel>()
.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 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<App_DocumentModel>()
.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 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<App_CloudCabinetModel>()
.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 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>()
.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<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();
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 && 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<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 =>
{
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))
.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<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();
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))
.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<App_Sys_UserModel>()
.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<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 =>
{
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 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 =>
{
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>()
.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<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 =>
{
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)

24
24Hour/Controllers/Common/WebSocketController.cs

@ -28,17 +28,19 @@ namespace _24Hour.Controllers.Common
private readonly ILogger<LoginController> _logger;//日志
private readonly IConfiguration _configuration;
private static object obj = new object();
private readonly WechatMessagerClient _wechatMessagerClient;
Result result = new Result();
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, string> userzx = new Dictionary<string, string>();//检察官在线池
//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;
_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;
}
///// <summary>
///// 微信推送
///// </summary>
///// <param name="Id"></param>
///// <returns></returns>
//[HttpGet]
//[Route("wxts")]
//public async Task<bool> wxts()
//{
// try
// {
// _wechatMessagerClient.wxts();
// }
// catch (Exception)
// {
// }
// return true;
//}
}
/// <summary>

173
24Hour/WechatMessagerClient.cs

@ -2,7 +2,12 @@
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
{
@ -10,23 +15,34 @@ namespace _24Hour
public class WechatMessagerClient
{
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;
httpCliet.DefaultRequestHeaders.Add("Accept", "application/json");
httpCliet.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");
httpCliet.DefaultRequestHeaders.ConnectionClose = true;
}
_configuration = configuration;
/// <summary>
/// 小程序AppID
/// </summary>
private const string appid = "wx48108a0c98a3dab0";
/// <summary>
/// 小程序secretID
/// </summary>
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<Result> GetOpenId(string code)
{
var ret = new Result();
@ -53,5 +69,142 @@ namespace _24Hour
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": {
"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"
}
}

12
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;
}
/// <summary>
/// 首字母转大写

Loading…
Cancel
Save