# Conflicts: # SafeCampus.WEB/src/api/interface/sys/index.tsmaster
@@ -25,4 +25,5 @@ bld/ | |||
# Visual Studio 2015 cache/options directory | |||
.vs/ | |||
# Uncomment if you have tasks that create the | |||
# Uncomment if you have tasks that create the | |||
/SafeCampus.API/SafeCampus.Web.Entry/logs |
@@ -12,6 +12,7 @@ using Newtonsoft.Json.Linq; | |||
using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; | |||
using SafeCampus.Application.Services.Business.Warn.Dto; | |||
using SafeCampus.Application.Services.Business.Warn.Service; | |||
using SafeCampus.Core.Utils.TXYSMS; | |||
namespace SafeCampus.Application.Manager.DeepelephManager; | |||
/// <summary> | |||
@@ -333,6 +334,7 @@ public class DeepelephManager : IDeepelephManager, IScoped | |||
var body = json["body"]; | |||
if (body != null) | |||
{ | |||
TxySmsUtil.SendSms(new[] { "" }, new[] { "" }); | |||
//TODO 由于未知道数据格式暂不写处理 | |||
} | |||
} | |||
@@ -84,6 +84,793 @@ | |||
系统配置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceAddInput.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceAddInput.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceAddInput.Tick"> | |||
<summary> | |||
考勤时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.Id"> | |||
<summary> | |||
ID | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.TenantCode"> | |||
<summary> | |||
租户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.EventId"> | |||
<summary> | |||
考勤事件id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.TrackId"> | |||
<summary> | |||
人员跟踪id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.IsAuto"> | |||
<summary> | |||
是否自动上报 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.Similarity"> | |||
<summary> | |||
相似度 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.FaceScore"> | |||
<summary> | |||
人脸质量分,取值[0, 100] | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.SnapshotUrl"> | |||
<summary> | |||
人脸照片url,链接有效期为2小时 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.SnapshotData"> | |||
<summary> | |||
人脸照片数据,base64编码(本地对接使用) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.Extend"> | |||
<summary> | |||
人员扩展信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto.CreateTime"> | |||
<summary> | |||
创建时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.Id"> | |||
<summary> | |||
ID | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.TenantCode"> | |||
<summary> | |||
租户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.EventId"> | |||
<summary> | |||
考勤事件id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.TrackId"> | |||
<summary> | |||
人员跟踪id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.IsAuto"> | |||
<summary> | |||
是否自动上报 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.Similarity"> | |||
<summary> | |||
相似度 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.FaceScore"> | |||
<summary> | |||
人脸质量分,取值[0, 100] | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.SnapshotUrl"> | |||
<summary> | |||
人脸照片url,链接有效期为2小时 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.SnapshotData"> | |||
<summary> | |||
人脸照片数据,base64编码(本地对接使用) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.Extend"> | |||
<summary> | |||
人员扩展信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceList.CreateTime"> | |||
<summary> | |||
创建时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.TrackId"> | |||
<summary> | |||
人员跟踪id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.IsAuto"> | |||
<summary> | |||
是否自动上报 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.StartTick"> | |||
<summary> | |||
事件发生时间开始 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch.EndTick"> | |||
<summary> | |||
事件发生时间结束 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.AttendanceService.IAttendanceService.Add(SafeCampus.Application.Services.Business.AttendanceService.AttendanceDto)"> | |||
<summary> | |||
添加考勤记录 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.AttendanceService.IAttendanceService.GetPageList(SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch)"> | |||
<summary> | |||
分页获取考勤列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.AttendanceService.IAttendanceService.GetNoPageList(SafeCampus.Application.Services.Business.AttendanceService.AttendanceSearch)"> | |||
<summary> | |||
不分页获取考勤列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraGroupService.ICameraGroupService.Add(SafeCampus.Application.Services.Business.CameraGroupService.CameraGroupAddInput)"> | |||
<summary> | |||
添加分组 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraGroupService.ICameraGroupService.Update(SafeCampus.Application.Services.Business.CameraGroupService.CameraGroupInput)"> | |||
<summary> | |||
修改分组 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraGroupService.ICameraGroupService.Delete(System.Int64)"> | |||
<summary> | |||
删除分组 | |||
</summary> | |||
<param name="id">id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraGroupService.ICameraGroupService.GetNoPageList"> | |||
<summary> | |||
获取分组列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.CameraSearch.SensorName"> | |||
<summary> | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.CameraSearch.SensorId"> | |||
<summary> | |||
摄像头编码 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.CameraSearch.GroupId"> | |||
<summary> | |||
分组id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.CameraSearch.DeviceStatus"> | |||
<summary> | |||
摄像头状态 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetGroupInput.Id"> | |||
<summary> | |||
分组Id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetGroupInput.Ids"> | |||
<summary> | |||
摄像头Id列表 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonGroupInput.GroupId"> | |||
<summary> | |||
分组Id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonGroupInput.UserId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonInput.UserId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonInput.Ids"> | |||
<summary> | |||
摄像头Id列表 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonWarnInput.WarnCode"> | |||
<summary> | |||
告警类型编码 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonWarnInput.UserId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraInfoService.ICameraInfoService.DataSync"> | |||
<summary> | |||
数据同步 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraInfoService.ICameraInfoService.GetPageList(SafeCampus.Application.Services.Business.CameraInfoService.CameraSearch)"> | |||
<summary> | |||
获取摄像头列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraInfoService.ICameraInfoService.BatchSetGroup(SafeCampus.Application.Services.Business.CameraInfoService.SetGroupInput)"> | |||
<summary> | |||
批量给摄像头设置分组 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraInfoService.ICameraInfoService.BatchSetPushPersonByGroup(SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonGroupInput)"> | |||
<summary> | |||
根据分组批量设置推送人 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraInfoService.ICameraInfoService.BatchSetPushPerson(SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonInput)"> | |||
<summary> | |||
对摄像头批量设置推送人 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.CameraInfoService.ICameraInfoService.BatchSetPushPersonByWarn(SafeCampus.Application.Services.Business.CameraInfoService.SetPushPersonWarnInput)"> | |||
<summary> | |||
根据预警分组设置推送人 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.TenantCode"> | |||
<summary> | |||
租户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.TaskId"> | |||
<summary> | |||
任务id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.EventId"> | |||
<summary> | |||
点名事件id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.AlarmTypeDesc"> | |||
<summary> | |||
预警类型说明 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.TrackId"> | |||
<summary> | |||
人员跟踪id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.Similarity"> | |||
<summary> | |||
相似度 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.FaceScore"> | |||
<summary> | |||
人脸质量分,取值[0, 100] | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.SnapshotUrl"> | |||
<summary> | |||
人脸照片url,链接有效期为2小时 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.SnapshotData"> | |||
<summary> | |||
人脸照片数据,base64编码(本地对接使用) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.Extend"> | |||
<summary> | |||
人员扩展信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto.CreateTime"> | |||
<summary> | |||
创建时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.PoiId"> | |||
<summary> | |||
门店id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.TaskId"> | |||
<summary> | |||
任务id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.EventId"> | |||
<summary> | |||
点名事件id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.AlarmTypeDesc"> | |||
<summary> | |||
预警类型说明 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.TrackId"> | |||
<summary> | |||
人员跟踪id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.SnapshotUrl"> | |||
<summary> | |||
人脸照片url,链接有效期为2小时 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.SnapshotData"> | |||
<summary> | |||
人脸照片数据,base64编码(本地对接使用) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.Tick"> | |||
<summary> | |||
事件发生时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.Rects"> | |||
<summary> | |||
目标在快照中的位置 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallList.CreateTime"> | |||
<summary> | |||
创建时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.TaskId"> | |||
<summary> | |||
任务id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.AlarmType"> | |||
<summary> | |||
预警类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.TrackId"> | |||
<summary> | |||
人员跟踪id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.StartTick"> | |||
<summary> | |||
事件开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch.EndTick"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallUpdate.Id"> | |||
<summary> | |||
ID | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallUpdate.PersonSetId"> | |||
<summary> | |||
关联底库id 如果为空,表示该人员未匹配到底库 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallUpdate.PersonId"> | |||
<summary> | |||
人员id | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallService.IClassRoomCallService.Add(SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallDto)"> | |||
<summary> | |||
添加点名记录 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallService.IClassRoomCallService.Update(SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallUpdate)"> | |||
<summary> | |||
修改点名信息,人工处理 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallService.IClassRoomCallService.Remove(System.Int64)"> | |||
<summary> | |||
删除点名记录(只可删除待处理的记录) | |||
</summary> | |||
<param name="id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallService.IClassRoomCallService.GetPageList(SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch)"> | |||
<summary> | |||
分页获取列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallService.IClassRoomCallService.GetNoPageList(SafeCampus.Application.Services.Business.ClassRoomCallService.ClassRoomCallSearch)"> | |||
<summary> | |||
不分页获取列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskAdd.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskAdd.ContinueTime"> | |||
<summary> | |||
点名持续时间,单位为分钟,取值[1, 100] | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskAdd.PersonSetId"> | |||
<summary> | |||
人员底库id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskAdd.Similarity"> | |||
<summary> | |||
匹配相似度阈值(如果没传,系统默认用0.5) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.Id"> | |||
<summary> | |||
ID | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.TaskId"> | |||
<summary> | |||
点名任务id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.ContinueTime"> | |||
<summary> | |||
点名持续时间,单位为分钟,取值[1, 100] | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.PersonSetId"> | |||
<summary> | |||
人员底库id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.Similarity"> | |||
<summary> | |||
匹配相似度阈值(如果没传,系统默认用0.5) | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.CreateTime"> | |||
<summary> | |||
创建时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto.EndTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskSearch.TaskId"> | |||
<summary> | |||
点名任务id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskSearch.PersonSetId"> | |||
<summary> | |||
人员底库id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskSearch.StartTime"> | |||
<summary> | |||
开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskSearch.EndTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.IClassRoomCallTaskService.Add(SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskDto)"> | |||
<summary> | |||
添加点名任务 | |||
</summary> | |||
<param name="input"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.IClassRoomCallTaskService.Remove(System.Int64)"> | |||
<summary> | |||
删除点名任务,删除关联点名数据 | |||
</summary> | |||
<param name="id"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassRoomCallTaskService.IClassRoomCallTaskService.GetPageList(SafeCampus.Application.Services.Business.ClassRoomCallTaskService.ClassRoomCallTaskSearch)"> | |||
<summary> | |||
获取点名任务列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherDto.UserId"> | |||
<summary> | |||
班主任用户id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherDto.PersonSetId"> | |||
<summary> | |||
班级id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherDto.Name"> | |||
<summary> | |||
班主任名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherDto.Phone"> | |||
<summary> | |||
班主任联系方式 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherInput.PersonSetId"> | |||
<summary> | |||
班级id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherInput.UserId"> | |||
<summary> | |||
班主任人员id | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassTeacherService.IClassTeacherService.Add(SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherInput)"> | |||
<summary> | |||
添加班主任 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassTeacherService.IClassTeacherService.Update(SafeCampus.Application.Services.Business.ClassTeacherService.ClassTeacherUpdateInput)"> | |||
<summary> | |||
修改班主任 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassTeacherService.IClassTeacherService.Delete(System.Int64)"> | |||
<summary> | |||
删除班主任 | |||
</summary> | |||
<param name="id">id</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassTeacherService.IClassTeacherService.GetInfo(System.String)"> | |||
<summary> | |||
根据班级id获取班主任信息 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.ClassTeacherService.IClassTeacherService.GetNoPageList"> | |||
<summary> | |||
获取列表 | |||
</summary> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Dto.AlarmSearch.alarmType"> | |||
<summary> | |||
预警类型 | |||
@@ -104,6 +891,85 @@ | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.Id"> | |||
<summary> | |||
主键Id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.ExtJson"> | |||
<summary> | |||
分片Json信息 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.QueryTime"> | |||
<summary> | |||
查询时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.StartTime"> | |||
<summary> | |||
开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.EndTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.CameraIds"> | |||
<summary> | |||
摄像头id列表 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.CameraNames"> | |||
<summary> | |||
摄像头名称列表 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.Split"> | |||
<summary> | |||
分片类型 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto.Total"> | |||
<summary> | |||
总数 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowSearch.StartTime"> | |||
<summary> | |||
开始时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowSearch.EndTime"> | |||
<summary> | |||
结束时间 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowSearch.CameraId"> | |||
<summary> | |||
摄像头id | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowSearch.Split"> | |||
<summary> | |||
分片类型 true小时 false天 | |||
</summary> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.PassengerFlowService.IPassengerFlowService.Add(SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowDto)"> | |||
<summary> | |||
添加客流查询任务 | |||
</summary> | |||
<param name="input">添加参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Application.Services.Business.PassengerFlowService.IPassengerFlowService.GetPageList(SafeCampus.Application.Services.Business.PassengerFlowService.Dto.PassengerFlowSearch)"> | |||
<summary> | |||
分页查询列表 | |||
</summary> | |||
<param name="search"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoDto.TenantCode"> | |||
<summary> | |||
租户id | |||
@@ -219,6 +1085,11 @@ | |||
摄像头名称 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.CameraGroup"> | |||
<summary> | |||
摄像头所属分组 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Application.Services.Business.Warn.Dto.WarnInfoList.Tick"> | |||
<summary> | |||
事件发生时间 | |||
@@ -0,0 +1,45 @@ | |||
namespace SafeCampus.Application.Services.Business.AttendanceService; | |||
public class AttendanceService:DbRepository<Attendance>, IAttendanceService | |||
{ | |||
public async Task<bool> Add(AttendanceDto input) | |||
{ | |||
var model = input.Adapt<Attendance>(); | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<SqlSugarPagedList<AttendanceList>> GetPageList(AttendanceSearch search) | |||
{ | |||
var query = Context.Queryable<Attendance>() | |||
//.Includes(x => x.CameraInfoItem) | |||
.WhereIF(search.IsAuto.HasValue, x => x.IsAuto == search.IsAuto) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TrackId), x => x.TrackId == search.TrackId) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick) | |||
.WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick); | |||
var list = await query.OrderByDescending(x => x.Tick) | |||
.ToPagedListAsyncMapster<Attendance, AttendanceList>(search.PageNum, search.PageSize); | |||
return list; | |||
} | |||
public async Task<List<AttendanceList>> GetNoPageList(AttendanceSearch search) | |||
{ | |||
var query = Context.Queryable<Attendance>() | |||
//.Includes(x => x.CameraInfoItem) | |||
.WhereIF(search.IsAuto.HasValue, x => x.IsAuto == search.IsAuto) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TrackId), x => x.TrackId == search.TrackId) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick) | |||
.WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick); | |||
var list = await query.OrderByDescending(x => x.Tick) | |||
.ToListAsync(); | |||
return list.Adapt<List<AttendanceList>>(); | |||
} | |||
} |
@@ -0,0 +1,17 @@ | |||
namespace SafeCampus.Application.Services.Business.AttendanceService; | |||
public class AttendanceAddInput | |||
{ | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 考勤时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
} |
@@ -0,0 +1,73 @@ | |||
namespace SafeCampus.Application.Services.Business.AttendanceService; | |||
public class AttendanceDto | |||
{ | |||
/// <summary> | |||
/// ID | |||
/// </summary> | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 租户id | |||
/// </summary> | |||
public string TenantCode { get; set; } | |||
/// <summary> | |||
/// 门店id | |||
/// </summary> | |||
public string PoiId { get; set; } | |||
/// <summary> | |||
/// 考勤事件id | |||
/// </summary> | |||
public string EventId { get; set; } | |||
/// <summary> | |||
/// 人员跟踪id | |||
/// </summary> | |||
public string TrackId { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 是否自动上报 | |||
/// </summary> | |||
public bool IsAuto { get; set; } | |||
/// <summary> | |||
/// 相似度 | |||
/// </summary> | |||
public float Similarity { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 人脸质量分,取值[0, 100] | |||
/// </summary> | |||
public float FaceScore { get; set; } | |||
/// <summary> | |||
/// 人脸照片url,链接有效期为2小时 | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 人脸照片数据,base64编码(本地对接使用) | |||
/// </summary> | |||
public string SnapshotData { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
/// <summary> | |||
/// 目标在快照中的位置 | |||
/// </summary> | |||
public string Rects { get; set; } | |||
/// <summary> | |||
/// 人员扩展信息 | |||
/// </summary> | |||
public string Extend { get; set; } | |||
/// <summary> | |||
/// 创建时间 | |||
/// </summary> | |||
public DateTime CreateTime { get; set; } | |||
} |
@@ -0,0 +1,73 @@ | |||
namespace SafeCampus.Application.Services.Business.AttendanceService; | |||
public class AttendanceList | |||
{ | |||
/// <summary> | |||
/// ID | |||
/// </summary> | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 租户id | |||
/// </summary> | |||
public string TenantCode { get; set; } | |||
/// <summary> | |||
/// 门店id | |||
/// </summary> | |||
public string PoiId { get; set; } | |||
/// <summary> | |||
/// 考勤事件id | |||
/// </summary> | |||
public string EventId { get; set; } | |||
/// <summary> | |||
/// 人员跟踪id | |||
/// </summary> | |||
public string TrackId { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 是否自动上报 | |||
/// </summary> | |||
public bool IsAuto { get; set; } | |||
/// <summary> | |||
/// 相似度 | |||
/// </summary> | |||
public float Similarity { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 人脸质量分,取值[0, 100] | |||
/// </summary> | |||
public float FaceScore { get; set; } | |||
/// <summary> | |||
/// 人脸照片url,链接有效期为2小时 | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 人脸照片数据,base64编码(本地对接使用) | |||
/// </summary> | |||
public string SnapshotData { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
/// <summary> | |||
/// 目标在快照中的位置 | |||
/// </summary> | |||
public string Rects { get; set; } | |||
/// <summary> | |||
/// 人员扩展信息 | |||
/// </summary> | |||
public string Extend { get; set; } | |||
/// <summary> | |||
/// 创建时间 | |||
/// </summary> | |||
public DateTime CreateTime { get; set; } | |||
} |
@@ -0,0 +1,33 @@ | |||
namespace SafeCampus.Application.Services.Business.AttendanceService; | |||
public class AttendanceSearch:BasePageInput | |||
{ | |||
/// <summary> | |||
/// 人员跟踪id | |||
/// </summary> | |||
public string TrackId { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 是否自动上报 | |||
/// </summary> | |||
public bool? IsAuto { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 事件发生时间开始 | |||
/// </summary> | |||
public DateTime? StartTick { get; set; } | |||
/// <summary> | |||
/// 事件发生时间结束 | |||
/// </summary> | |||
public DateTime? EndTick { get; set; } | |||
} |
@@ -0,0 +1,23 @@ | |||
namespace SafeCampus.Application.Services.Business.AttendanceService; | |||
public interface IAttendanceService:ITransient | |||
{ | |||
/// <summary> | |||
/// 添加考勤记录 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> Add(AttendanceDto input); | |||
/// <summary> | |||
/// 分页获取考勤列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<AttendanceList>> GetPageList(AttendanceSearch search); | |||
/// <summary> | |||
/// 不分页获取考勤列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
Task<List<AttendanceList>> GetNoPageList(AttendanceSearch search); | |||
} |
@@ -0,0 +1,51 @@ | |||
namespace SafeCampus.Application.Services.Business.CameraGroupService; | |||
public class CameraGroupService :DbRepository<CameraGroup>, ICameraGroupService | |||
{ | |||
public async Task<bool> Add(CameraGroupAddInput input) | |||
{ | |||
var model = input.Adapt<CameraGroup>(); | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Update(CameraGroupInput input) | |||
{ | |||
if (!input.ID.HasValue) | |||
{ | |||
throw Oops.Oh("请填写ID"); | |||
} | |||
var model = await GetFirstAsync(p => p.Id == input.ID); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
var res = input.Adapt(model); | |||
await UpdateAsync(res); | |||
return true; | |||
} | |||
public async Task<bool> Delete(long id) | |||
{ | |||
var cameraInfo = ChangeRepository<DbRepository<CameraInfo>>();//切换仓储 | |||
var model = await GetFirstAsync(x => x.Id == id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
var isOK = await cameraInfo.IsAnyAsync(x => x.GroupId == model.Id); | |||
if (isOK) | |||
{ | |||
throw Oops.Oh("分组下存在摄像头,请转移至其他分组后在删除!"); | |||
} | |||
await DeleteAsync(model); | |||
return true; | |||
} | |||
public async Task<List<CameraGroup>> GetNoPageList() | |||
{ | |||
var list = await GetListAsync(); | |||
return list; | |||
} | |||
} |
@@ -0,0 +1,6 @@ | |||
namespace SafeCampus.Application.Services.Business.CameraGroupService; | |||
public class CameraGroupAddInput | |||
{ | |||
public string Name { get; set; } | |||
} |
@@ -0,0 +1,7 @@ | |||
namespace SafeCampus.Application.Services.Business.CameraGroupService; | |||
public class CameraGroupInput | |||
{ | |||
public string Name { get; set; } | |||
public long? ID { get; set; } | |||
} |
@@ -0,0 +1,28 @@ | |||
namespace SafeCampus.Application.Services.Business.CameraGroupService; | |||
public interface ICameraGroupService :ITransient | |||
{ | |||
/// <summary> | |||
/// 添加分组 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task<bool> Add(CameraGroupAddInput input); | |||
/// <summary> | |||
/// 修改分组 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task<bool> Update(CameraGroupInput input); | |||
/// <summary> | |||
/// 删除分组 | |||
/// </summary> | |||
/// <param name="id">id</param> | |||
/// <returns></returns> | |||
Task<bool> Delete(long id); | |||
/// <summary> | |||
/// 获取分组列表 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<List<CameraGroup>> GetNoPageList(); | |||
} |
@@ -0,0 +1,144 @@ | |||
using MoYu.RemoteRequest.Extensions; | |||
using Newtonsoft.Json; | |||
using Newtonsoft.Json.Linq; | |||
using SafeCampus.Application.Manager.DeepelephManager; | |||
using System.Collections.Generic; | |||
namespace SafeCampus.Application.Services.Business.CameraInfoService; | |||
public class CameraInfoService:DbRepository<CameraInfo>, ICameraInfoService | |||
{ | |||
private readonly IDeepelephManager _deepelephManager; | |||
private readonly ISimpleCacheService _simpleCacheService; | |||
public CameraInfoService(IDeepelephManager deepelephManager, ISimpleCacheService simpleCacheService) | |||
{ | |||
_deepelephManager = deepelephManager; | |||
_simpleCacheService = simpleCacheService; | |||
} | |||
public async Task<bool> DataSync() | |||
{ | |||
var appSettings = App.GetOptionsMonitor<AppInfoOptions>(); | |||
var list = await Context.Queryable<CameraInfo>().ToListAsync(); | |||
var str = await $"{appSettings.SXAPIURL}/device/console/v1/sensor/page_query/brief" | |||
.SetBody(new | |||
{ | |||
token = _deepelephManager.GetToken(), | |||
tenantCode = appSettings.TenantCode, | |||
poiId = appSettings.PoiId, | |||
pageNo = 1, | |||
pageSize = 1000, | |||
}) | |||
.SetContentType("application/json") | |||
.PostAsAsync<string>(); | |||
var model = JsonConvert.DeserializeObject<JObject>(str); | |||
if (!(bool)model["success"]) throw Oops.Oh(model["message"].ToString()); | |||
if (model["data"] != null) | |||
{ | |||
foreach (var item in model["data"]["items"]) | |||
{ | |||
var old_model = list.FirstOrDefault(x => x.SensorId == item["sensorId"].ToString()); | |||
if (old_model != null) | |||
{ | |||
old_model.DeviceStatus = item["deviceStatus"].ToString() == "online"; | |||
old_model.DirectUrlIp = item["directUrlIp"].ToString(); | |||
old_model.FieldId = item["fieldId"].ToString(); | |||
old_model.FieldName = item["fieldName"].ToString(); | |||
old_model.LastTime = DateTime.Now; | |||
old_model.ResHeight = (int)item["resHeight"]; | |||
old_model.ResWidth = (int)item["resWidth"]; | |||
old_model.SensorName = item["sensorName"].ToString(); | |||
old_model.SnapshotUrl = item["snapshotUrl"].ToString(); | |||
await UpdateAsync(old_model); | |||
} | |||
else | |||
{ | |||
await InsertAsync(new CameraInfo | |||
{ | |||
DeviceStatus = item["deviceStatus"].ToString()== "online", | |||
DirectUrlIp = item["directUrlIp"].ToString(), | |||
FieldId = item["fieldId"].ToString(), | |||
FieldName = item["fieldName"].ToString(), | |||
LastTime = DateTime.Now, | |||
ResHeight = (int)item["resHeight"], | |||
ResWidth = (int)item["resWidth"], | |||
SensorId = item["sensorId"].ToString(), | |||
SensorName = item["sensorName"].ToString(), | |||
SnapshotUrl = item["snapshotUrl"].ToString(), | |||
}); | |||
} | |||
} | |||
return true; | |||
} | |||
return false; | |||
} | |||
public async Task<SqlSugarPagedList<CameraInfo>> GetPageList(CameraSearch search) | |||
{ | |||
var query = Context.Queryable<CameraInfo>() | |||
.WhereIF(search.DeviceStatus.HasValue, x => x.DeviceStatus == search.DeviceStatus) | |||
.WhereIF(!string.IsNullOrEmpty(search.SensorId), x => x.SensorId == search.SensorId) | |||
.WhereIF(!string.IsNullOrEmpty(search.SensorName), x => x.SensorName == search.SensorName) | |||
.WhereIF(search.GroupId.HasValue, x => (search.GroupId.Value==-1?x.GroupId==null:x.GroupId==search.GroupId.Value)); | |||
var list = await query.OrderBy(x => x.LastTime) | |||
.ToPagedListAsync(search.PageNum, search.PageSize); | |||
return list; | |||
} | |||
public async Task<bool> BatchSetGroup(SetGroupInput input) | |||
{ | |||
if (input.Id==-1) | |||
{ | |||
var result = await Context.Updateable<CameraInfo>() | |||
.SetColumns(x => x.GroupId == null) | |||
.Where(x => input.Ids.Contains(x.Id)) | |||
.ExecuteCommandAsync(); | |||
return result == input.Ids.Count; | |||
} | |||
else | |||
{ | |||
var result = await Context.Updateable<CameraInfo>() | |||
.SetColumns(x => x.GroupId == input.Id) | |||
.Where(x => input.Ids.Contains(x.Id)) | |||
.ExecuteCommandAsync(); | |||
return result == input.Ids.Count; | |||
} | |||
} | |||
public async Task<bool> BatchSetPushPersonByGroup(SetPushPersonGroupInput input) | |||
{ | |||
var result = await Context.Updateable<CameraInfo>() | |||
.SetColumns(x => x.PushUserId == input.UserId) | |||
.Where(x =>x.GroupId==input.GroupId) | |||
.ExecuteCommandAsync(); | |||
return result >0; | |||
} | |||
public async Task<bool> BatchSetPushPerson(SetPushPersonInput input) | |||
{ | |||
var result = await Context.Updateable<CameraInfo>() | |||
.SetColumns(x => x.PushUserId == input.UserId) | |||
.Where(x => input.Ids.Contains(x.Id)) | |||
.ExecuteCommandAsync(); | |||
return result == input.Ids.Count; | |||
} | |||
public async Task<bool> BatchSetPushPersonByWarn(SetPushPersonWarnInput input) | |||
{ | |||
var warn = _simpleCacheService.Get<List<WarnGroupInfo>>(SafeCampusConst.WarnGroup); | |||
var warnGroupInfo = warn.FirstOrDefault(x => x.Code == input.WarnCode); | |||
if (warnGroupInfo != null) | |||
{ | |||
var ids = warnGroupInfo.CameraId; | |||
var result = await Context.Updateable<CameraInfo>() | |||
.SetColumns(x => x.PushUserId == input.UserId) | |||
.Where(x => ids.Contains(x.SensorId)) | |||
.ExecuteCommandAsync(); | |||
return result >0; | |||
} | |||
throw Oops.Oh("分组不存在"); | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
namespace SafeCampus.Application.Services.Business.CameraInfoService; | |||
public class CameraSearch: BasePageInput | |||
{ | |||
/// <summary> | |||
/// 摄像头名称 | |||
/// </summary> | |||
public string SensorName { get; set; } | |||
/// <summary> | |||
/// 摄像头编码 | |||
/// </summary> | |||
public string SensorId { get; set; } | |||
/// <summary> | |||
/// 分组id | |||
/// </summary> | |||
public long? GroupId { get; set; } | |||
/// <summary> | |||
/// 摄像头状态 | |||
/// </summary> | |||
public bool? DeviceStatus { get; set; } | |||
} |
@@ -0,0 +1,19 @@ | |||
using MoYu.DataValidation; | |||
using System.ComponentModel.DataAnnotations; | |||
namespace SafeCampus.Application.Services.Business.CameraInfoService; | |||
public class SetGroupInput | |||
{ | |||
/// <summary> | |||
/// 分组Id | |||
/// </summary> | |||
[IdNotNull(ErrorMessage = "Id不能为空")] | |||
[DataValidation(ValidationTypes.Numeric)] | |||
public virtual long Id { get; set; } | |||
/// <summary> | |||
/// 摄像头Id列表 | |||
/// </summary> | |||
[IdsNotNull(ErrorMessage = "IdList不能为空")] | |||
public List<long> Ids { get; set; } = new List<long>(); | |||
} |
@@ -0,0 +1,50 @@ | |||
using MoYu.DataValidation; | |||
using System.ComponentModel.DataAnnotations; | |||
namespace SafeCampus.Application.Services.Business.CameraInfoService; | |||
public class SetPushPersonGroupInput | |||
{ | |||
/// <summary> | |||
/// 分组Id | |||
/// </summary> | |||
[IdNotNull(ErrorMessage = "Id不能为空")] | |||
[DataValidation(ValidationTypes.Numeric)] | |||
public virtual long GroupId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
[IdNotNull(ErrorMessage = "Id不能为空")] | |||
[DataValidation(ValidationTypes.Numeric)] | |||
public virtual long UserId { get; set; } | |||
} | |||
public class SetPushPersonInput | |||
{ | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
[IdNotNull(ErrorMessage = "Id不能为空")] | |||
[DataValidation(ValidationTypes.Numeric)] | |||
public virtual long UserId { get; set; } | |||
/// <summary> | |||
/// 摄像头Id列表 | |||
/// </summary> | |||
[IdsNotNull(ErrorMessage = "IdList不能为空")] | |||
public List<long> Ids { get; set; } = new List<long>(); | |||
} | |||
public class SetPushPersonWarnInput | |||
{ | |||
/// <summary> | |||
/// 告警类型编码 | |||
/// </summary> | |||
[IdNotNull(ErrorMessage = "告警类型编码")] | |||
public virtual string WarnCode { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
[IdNotNull(ErrorMessage = "Id不能为空")] | |||
[DataValidation(ValidationTypes.Numeric)] | |||
public virtual long UserId { get; set; } | |||
} |
@@ -0,0 +1,40 @@ | |||
namespace SafeCampus.Application.Services.Business.CameraInfoService; | |||
public interface ICameraInfoService:ITransient | |||
{ | |||
/// <summary> | |||
/// 数据同步 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<bool> DataSync(); | |||
/// <summary> | |||
/// 获取摄像头列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<CameraInfo>> GetPageList(CameraSearch search); | |||
/// <summary> | |||
/// 批量给摄像头设置分组 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> BatchSetGroup(SetGroupInput input); | |||
/// <summary> | |||
/// 根据分组批量设置推送人 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> BatchSetPushPersonByGroup(SetPushPersonGroupInput input); | |||
/// <summary> | |||
/// 对摄像头批量设置推送人 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> BatchSetPushPerson(SetPushPersonInput input); | |||
/// <summary> | |||
/// 根据预警分组设置推送人 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> BatchSetPushPersonByWarn(SetPushPersonWarnInput input); | |||
} |
@@ -0,0 +1,79 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallService; | |||
public class ClassRoomCallService : DbRepository<ClassRoomCall>, IClassRoomCallService | |||
{ | |||
public async Task<bool> Add(ClassRoomCallDto input) | |||
{ | |||
var model = input.Adapt<ClassRoomCall>(); | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Update(ClassRoomCallUpdate input) | |||
{ | |||
var model = await GetFirstAsync(p => p.Id == input.Id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
//var res = input.Adapt(model); | |||
model.PersonSetId = input.PersonSetId; | |||
model.PersonId = input.PersonId; | |||
await Context.Updateable<ClassRoomCall>() | |||
.UpdateColumns(x => new | |||
{ | |||
x.PersonSetId, | |||
x.PersonId | |||
}) | |||
.ExecuteCommandAsync(); | |||
//await UpdateAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Remove(long id) | |||
{ | |||
var model = await GetFirstAsync(x => x.Id == id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
await DeleteAsync(model); | |||
return true; | |||
} | |||
public async Task<SqlSugarPagedList<ClassRoomCallList>> GetPageList(ClassRoomCallSearch search) | |||
{ | |||
var query = Context.Queryable<ClassRoomCall>() | |||
.Includes(x => x.CameraInfoItem) | |||
.WhereIF(!string.IsNullOrEmpty(search.AlarmType), x => x.AlarmType == search.AlarmType) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TaskId), x => x.TaskId == search.TaskId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TrackId), x => x.TrackId == search.TrackId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId) | |||
.WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick) | |||
.WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick); | |||
var list = await query.OrderByDescending(x => x.Tick) | |||
.ToPagedListAsyncMapster<ClassRoomCall, ClassRoomCallList>(search.PageNum, search.PageSize); | |||
return list; | |||
} | |||
public async Task<List<ClassRoomCallList>> GetNoPageList(ClassRoomCallSearch search) | |||
{ | |||
var query = Context.Queryable<ClassRoomCall>() | |||
.Includes(x => x.CameraInfoItem) | |||
.WhereIF(!string.IsNullOrEmpty(search.AlarmType), x => x.AlarmType == search.AlarmType) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TaskId), x => x.TaskId == search.TaskId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TrackId), x => x.TrackId == search.TrackId) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId) | |||
.WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick) | |||
.WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick); | |||
var list = await query.OrderByDescending(x => x.Tick) | |||
.ToListAsync(); | |||
return list.Adapt<List<ClassRoomCallList>>(); | |||
} | |||
} |
@@ -0,0 +1,78 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallService; | |||
public class ClassRoomCallDto | |||
{ | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 租户id | |||
/// </summary> | |||
public string TenantCode { get; set; } | |||
/// <summary> | |||
/// 门店id | |||
/// </summary> | |||
public string PoiId { get; set; } | |||
/// <summary> | |||
/// 任务id | |||
/// </summary> | |||
public string TaskId { get; set; } | |||
/// <summary> | |||
/// 点名事件id | |||
/// </summary> | |||
public string EventId { get; set; } | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string AlarmType { get; set; } | |||
/// <summary> | |||
/// 预警类型说明 | |||
/// </summary> | |||
public string AlarmTypeDesc { get; set; } | |||
/// <summary> | |||
/// 人员跟踪id | |||
/// </summary> | |||
public string TrackId { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 相似度 | |||
/// </summary> | |||
public float Similarity { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 人脸质量分,取值[0, 100] | |||
/// </summary> | |||
public float FaceScore { get; set; } | |||
/// <summary> | |||
/// 人脸照片url,链接有效期为2小时 | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 人脸照片数据,base64编码(本地对接使用) | |||
/// </summary> | |||
public string SnapshotData { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
/// <summary> | |||
/// 目标在快照中的位置 | |||
/// </summary> | |||
public string Rects { get; set; } | |||
/// <summary> | |||
/// 人员扩展信息 | |||
/// </summary> | |||
public string Extend { get; set; } | |||
/// <summary> | |||
/// 创建时间 | |||
/// </summary> | |||
public DateTime CreateTime { get; set; } | |||
} |
@@ -0,0 +1,62 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallService; | |||
public class ClassRoomCallList | |||
{ | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 门店id | |||
/// </summary> | |||
public string PoiId { get; set; } | |||
/// <summary> | |||
/// 任务id | |||
/// </summary> | |||
public string TaskId { get; set; } | |||
/// <summary> | |||
/// 点名事件id | |||
/// </summary> | |||
public string EventId { get; set; } | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string AlarmType { get; set; } | |||
/// <summary> | |||
/// 预警类型说明 | |||
/// </summary> | |||
public string AlarmTypeDesc { get; set; } | |||
/// <summary> | |||
/// 人员跟踪id | |||
/// </summary> | |||
public string TrackId { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 人脸照片url,链接有效期为2小时 | |||
/// </summary> | |||
public string SnapshotUrl { get; set; } | |||
/// <summary> | |||
/// 人脸照片数据,base64编码(本地对接使用) | |||
/// </summary> | |||
public string SnapshotData { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
/// <summary> | |||
/// 目标在快照中的位置 | |||
/// </summary> | |||
public string Rects { get; set; } | |||
/// <summary> | |||
/// 创建时间 | |||
/// </summary> | |||
public DateTime CreateTime { get; set; } | |||
} |
@@ -0,0 +1,37 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallService; | |||
public class ClassRoomCallSearch:BasePageInput | |||
{ | |||
/// <summary> | |||
/// 任务id | |||
/// </summary> | |||
public string TaskId { get; set; } | |||
/// <summary> | |||
/// 预警类型 | |||
/// </summary> | |||
public string AlarmType { get; set; } | |||
/// <summary> | |||
/// 人员跟踪id | |||
/// </summary> | |||
public string TrackId { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 事件开始时间 | |||
/// </summary> | |||
public DateTime? StartTick { get; set; } | |||
/// <summary> | |||
/// 结束时间 | |||
/// </summary> | |||
public DateTime? EndTick { get; set; } | |||
} |
@@ -0,0 +1,17 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallService; | |||
public class ClassRoomCallUpdate | |||
{ | |||
/// <summary> | |||
/// ID | |||
/// </summary> | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 关联底库id 如果为空,表示该人员未匹配到底库 | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 人员id | |||
/// </summary> | |||
public string PersonId { get; set; } | |||
} |
@@ -0,0 +1,34 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallService; | |||
public interface IClassRoomCallService:ITransient | |||
{ | |||
/// <summary> | |||
/// 添加点名记录 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> Add(ClassRoomCallDto input); | |||
/// <summary> | |||
/// 修改点名信息,人工处理 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool> Update(ClassRoomCallUpdate input); | |||
/// <summary> | |||
/// 删除点名记录(只可删除待处理的记录) | |||
/// </summary> | |||
/// <param name="id"></param> | |||
/// <returns></returns> | |||
Task<bool> Remove(long id); | |||
/// <summary> | |||
/// 分页获取列表 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<ClassRoomCallList>> GetPageList(ClassRoomCallSearch search); | |||
/// <summary> | |||
/// 不分页获取列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
Task<List<ClassRoomCallList>> GetNoPageList(ClassRoomCallSearch search); | |||
} |
@@ -0,0 +1,39 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallTaskService; | |||
public class ClassRoomCallTaskService : DbRepository<ClassRoomCallTask> ,IClassRoomCallTaskService | |||
{ | |||
public async Task<bool> Add(ClassRoomCallTaskDto input) | |||
{ | |||
var model = input.Adapt<ClassRoomCallTask>(); | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Remove(long id) | |||
{ | |||
var model = await GetFirstAsync(x => x.Id == id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
await DeleteAsync(model); | |||
var classRoomCall = ChangeRepository<DbRepository<ClassRoomCall>>();//切换仓储 | |||
await classRoomCall.DeleteAsync(x => x.TaskId == model.TaskId); | |||
return true; | |||
} | |||
public async Task<SqlSugarPagedList<ClassRoomCallTaskDto>> GetPageList(ClassRoomCallTaskSearch search) | |||
{ | |||
var query = Context.Queryable<ClassRoomCallTask>() | |||
//.Includes(x => x.CameraInfoItem) | |||
.WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId) | |||
.WhereIF(!string.IsNullOrEmpty(search.TaskId), x => x.TaskId == search.TaskId) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
.WhereIF(search.StartTime.HasValue, x => x.CreateTime >= search.StartTime) | |||
.WhereIF(search.EndTime.HasValue, x => x.EndTime <= search.EndTime); | |||
var list = await query.OrderByDescending(x => x.CreateTime) | |||
.ToPagedListAsyncMapster<ClassRoomCallTask, ClassRoomCallTaskDto>(search.PageNum, search.PageSize); | |||
return list; | |||
} | |||
} |
@@ -0,0 +1,21 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallTaskService; | |||
public class ClassRoomCallTaskAdd | |||
{ | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 点名持续时间,单位为分钟,取值[1, 100] | |||
/// </summary> | |||
public int ContinueTime { get; set; } | |||
/// <summary> | |||
/// 人员底库id | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 匹配相似度阈值(如果没传,系统默认用0.5) | |||
/// </summary> | |||
public float Similarity { get; set; } | |||
} |
@@ -0,0 +1,37 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallTaskService; | |||
public class ClassRoomCallTaskDto | |||
{ | |||
/// <summary> | |||
/// ID | |||
/// </summary> | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 点名任务id | |||
/// </summary> | |||
public string TaskId { get; set; } | |||
/// <summary> | |||
/// 点名持续时间,单位为分钟,取值[1, 100] | |||
/// </summary> | |||
public int ContinueTime { get; set; } | |||
/// <summary> | |||
/// 人员底库id | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 匹配相似度阈值(如果没传,系统默认用0.5) | |||
/// </summary> | |||
public float Similarity { get; set; } | |||
/// <summary> | |||
/// 创建时间 | |||
/// </summary> | |||
public DateTime CreateTime { get; set; } | |||
/// <summary> | |||
/// 结束时间 | |||
/// </summary> | |||
public DateTime EndTime { get; set; } | |||
} |
@@ -0,0 +1,25 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallTaskService; | |||
public class ClassRoomCallTaskSearch:BasePageInput | |||
{ | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 点名任务id | |||
/// </summary> | |||
public string TaskId { get; set; } | |||
/// <summary> | |||
/// 人员底库id | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 开始时间 | |||
/// </summary> | |||
public DateTime? StartTime { get; set; } | |||
/// <summary> | |||
/// 结束时间 | |||
/// </summary> | |||
public DateTime? EndTime { get; set; } | |||
} |
@@ -0,0 +1,23 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassRoomCallTaskService; | |||
public interface IClassRoomCallTaskService : ITransient | |||
{ | |||
/// <summary> | |||
/// 添加点名任务 | |||
/// </summary> | |||
/// <param name="input"></param> | |||
/// <returns></returns> | |||
Task<bool>Add(ClassRoomCallTaskDto input); | |||
/// <summary> | |||
/// 删除点名任务,删除关联点名数据 | |||
/// </summary> | |||
/// <param name="id"></param> | |||
/// <returns></returns> | |||
Task<bool>Remove(long id); | |||
/// <summary> | |||
/// 获取点名任务列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<ClassRoomCallTaskDto>> GetPageList(ClassRoomCallTaskSearch search); | |||
} |
@@ -0,0 +1,59 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassTeacherService; | |||
public class ClassTeacherService:DbRepository<ClassTeacher>, IClassTeacherService | |||
{ | |||
public async Task<bool> Add(ClassTeacherInput input) | |||
{ | |||
var model = input.Adapt<ClassTeacher>(); | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<bool> Update(ClassTeacherUpdateInput input) | |||
{ | |||
if (!input.ID.HasValue) | |||
{ | |||
throw Oops.Oh("请填写ID"); | |||
} | |||
var model = await GetFirstAsync(p => p.Id == input.ID); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
var res = input.Adapt(model); | |||
await UpdateAsync(res); | |||
return true; | |||
} | |||
public async Task<bool> Delete(long id) | |||
{ | |||
var model = await GetFirstAsync(x => x.Id == id); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在"); | |||
} | |||
await DeleteAsync(model); | |||
return true; | |||
} | |||
public async Task<ClassTeacherDto> GetInfo(string personSetId) | |||
{ | |||
var model = await Context.Queryable<ClassTeacher>() | |||
.Includes(x => x.SysUserItem) | |||
.Where(x => x.PersonSetId == personSetId).FirstAsync(); | |||
if (model == null) | |||
{ | |||
return null; | |||
//throw Oops.Oh("信息不存在!"); | |||
} | |||
return model.Adapt<ClassTeacherDto>(); | |||
} | |||
public async Task<List<ClassTeacherDto>> GetNoPageList() | |||
{ | |||
var list = await Context.Queryable<ClassTeacher>() | |||
.Includes(x => x.SysUserItem) | |||
.ToListAsync(); | |||
return list.Adapt<List<ClassTeacherDto>>(); | |||
} | |||
} |
@@ -0,0 +1,32 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassTeacherService; | |||
public class ClassTeacherDto | |||
{ | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 班主任用户id | |||
/// </summary> | |||
public long UserId { get; set; } | |||
/// <summary> | |||
/// 班级id | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 班主任名称 | |||
/// </summary> | |||
public string Name { get; set; } | |||
/// <summary> | |||
/// 班主任联系方式 | |||
/// </summary> | |||
public string Phone { get; set; } | |||
} | |||
public class ClassTeacherDtoMapper : IRegister | |||
{ | |||
public void Register(TypeAdapterConfig config) | |||
{ | |||
config.ForType<ClassTeacher, ClassTeacherDto>() | |||
//.Map(dest => dest.CameraName, src => src.CameraId.GetDescriptionByEnum<CameraType>()); | |||
.Map(dest => dest.Name, src => src.SysUserItem.Name) | |||
.Map(dest => dest.Phone, src => src.SysUserItem.Phone); | |||
} | |||
} |
@@ -0,0 +1,18 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassTeacherService; | |||
public class ClassTeacherInput | |||
{ | |||
/// <summary> | |||
/// 班级id | |||
/// </summary> | |||
public string PersonSetId { get; set; } | |||
/// <summary> | |||
/// 班主任人员id | |||
/// </summary> | |||
public string UserId { get; set; } | |||
} | |||
public class ClassTeacherUpdateInput: ClassTeacherInput | |||
{ | |||
public long? ID { get; set; } | |||
} |
@@ -0,0 +1,33 @@ | |||
namespace SafeCampus.Application.Services.Business.ClassTeacherService; | |||
public interface IClassTeacherService:ITransient | |||
{ | |||
/// <summary> | |||
/// 添加班主任 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task<bool> Add(ClassTeacherInput input); | |||
/// <summary> | |||
/// 修改班主任 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task<bool> Update(ClassTeacherUpdateInput input); | |||
/// <summary> | |||
/// 删除班主任 | |||
/// </summary> | |||
/// <param name="id">id</param> | |||
/// <returns></returns> | |||
Task<bool> Delete(long id); | |||
/// <summary> | |||
/// 根据班级id获取班主任信息 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<ClassTeacherDto> GetInfo(string personSetId); | |||
/// <summary> | |||
/// 获取列表 | |||
/// </summary> | |||
/// <returns></returns> | |||
Task<List<ClassTeacherDto>> GetNoPageList(); | |||
} |
@@ -0,0 +1,42 @@ | |||
namespace SafeCampus.Application.Services.Business.PassengerFlowService.Dto; | |||
public class PassengerFlowDto | |||
{ | |||
/// <summary> | |||
/// 主键Id | |||
/// </summary> | |||
public long Id { get; set; } | |||
/// <summary> | |||
/// 分片Json信息 | |||
/// </summary> | |||
public string ExtJson { get; set; } | |||
/// <summary> | |||
/// 查询时间 | |||
/// </summary> | |||
public DateTime QueryTime { get; set; } | |||
/// <summary> | |||
/// 开始时间 | |||
/// </summary> | |||
public DateTime StartTime { get; set; } | |||
/// <summary> | |||
/// 结束时间 | |||
/// </summary> | |||
public DateTime EndTime { get; set; } | |||
/// <summary> | |||
/// 摄像头id列表 | |||
/// </summary> | |||
public string[] CameraIds { get; set; } | |||
/// <summary> | |||
/// 摄像头名称列表 | |||
/// </summary> | |||
public string[] CameraNames { get; set; } | |||
/// <summary> | |||
/// 分片类型 | |||
/// </summary> | |||
public bool Split { get; set; } | |||
/// <summary> | |||
/// 总数 | |||
/// </summary> | |||
public int Total { get; set; } | |||
} |
@@ -0,0 +1,21 @@ | |||
namespace SafeCampus.Application.Services.Business.PassengerFlowService.Dto; | |||
public class PassengerFlowSearch:BasePageInput | |||
{ | |||
/// <summary> | |||
/// 开始时间 | |||
/// </summary> | |||
public DateTime? StartTime { get; set; } | |||
/// <summary> | |||
/// 结束时间 | |||
/// </summary> | |||
public DateTime? EndTime { get; set; } | |||
/// <summary> | |||
/// 摄像头id | |||
/// </summary> | |||
public string CameraId { get; set; } | |||
/// <summary> | |||
/// 分片类型 true小时 false天 | |||
/// </summary> | |||
public bool? Split { get; set; } | |||
} |
@@ -0,0 +1,19 @@ | |||
using SafeCampus.Application.Services.Business.PassengerFlowService.Dto; | |||
namespace SafeCampus.Application.Services.Business.PassengerFlowService; | |||
public interface IPassengerFlowService : ITransient | |||
{ | |||
/// <summary> | |||
/// 添加客流查询任务 | |||
/// </summary> | |||
/// <param name="input">添加参数</param> | |||
/// <returns></returns> | |||
Task<bool> Add(PassengerFlowDto input); | |||
/// <summary> | |||
/// 分页查询列表 | |||
/// </summary> | |||
/// <param name="search"></param> | |||
/// <returns></returns> | |||
Task<SqlSugarPagedList<PassengerFlowDto>> GetPageList(PassengerFlowSearch search); | |||
} |
@@ -0,0 +1,37 @@ | |||
using SafeCampus.Application.Services.Business.PassengerFlowService.Dto; | |||
namespace SafeCampus.Application.Services.Business.PassengerFlowService; | |||
public class PassengerFlowService:DbRepository<PassengerFlow>, IPassengerFlowService | |||
{ | |||
public async Task<bool> Add(PassengerFlowDto input) | |||
{ | |||
//var model = input.Adapt<PassengerFlow>(); | |||
var model = new PassengerFlow | |||
{ | |||
CameraIds = string.Join("、", input.CameraIds), | |||
CameraNames = string.Join("、",input.CameraNames), | |||
EndTime = input.EndTime, | |||
ExtJson = input.ExtJson, | |||
QueryTime = DateTime.Now, | |||
Split = input.Split, | |||
StartTime = input.StartTime, | |||
Total = input.Total | |||
}; | |||
await InsertAsync(model); | |||
return true; | |||
} | |||
public async Task<SqlSugarPagedList<PassengerFlowDto>> GetPageList(PassengerFlowSearch search) | |||
{ | |||
var query = Context.Queryable<PassengerFlow>() | |||
.WhereIF(search.Split.HasValue, x => x.Split == search.Split) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraIds.Contains(search.CameraId)) | |||
.WhereIF(search.StartTime.HasValue, x => x.QueryTime >= search.StartTime) | |||
.WhereIF(search.EndTime.HasValue, x => x.QueryTime <= search.EndTime); | |||
var list = await query.OrderByDescending(x => x.QueryTime) | |||
.ToPagedListAsyncMapster<PassengerFlow, PassengerFlowDto>(search.PageNum, search.PageSize); | |||
return list; | |||
} | |||
} |
@@ -1,10 +1,8 @@ | |||
using AngleSharp.Dom; | |||
namespace SafeCampus.Application.Services.Business.Warn.Dto; | |||
namespace SafeCampus.Application.Services.Business.Warn.Dto; | |||
public class WarnInfoList | |||
{ | |||
public int ID { get; set; } | |||
public long ID { get; set; } | |||
/// <summary> | |||
/// 预警id | |||
/// </summary> | |||
@@ -27,6 +25,10 @@ public class WarnInfoList | |||
/// </summary> | |||
public string CameraName { get; set; } | |||
/// <summary> | |||
/// 摄像头所属分组 | |||
/// </summary> | |||
public string CameraGroup { get; set; } | |||
/// <summary> | |||
/// 事件发生时间 | |||
/// </summary> | |||
public DateTime Tick { get; set; } | |||
@@ -56,6 +58,8 @@ public class WarnInfoListMapper : IRegister | |||
public void Register(TypeAdapterConfig config) | |||
{ | |||
config.ForType<WarnInfo, WarnInfoList>() | |||
.Map(dest => dest.CameraName, src => src.CameraId.GetDescriptionByEnum<CameraType>()); | |||
//.Map(dest => dest.CameraName, src => src.CameraId.GetDescriptionByEnum<CameraType>()); | |||
.Map(dest => dest.CameraName, src => src.CameraInfoItem.SensorName) | |||
.Map(dest => dest.CameraGroup, src => src.CameraInfoItem.CameraGroupItem.Name); | |||
} | |||
} |
@@ -53,7 +53,7 @@ public class WarnInfoService:DbRepository<WarnInfo>, IWarnInfoService,ITransient | |||
public async Task<WarnInfoDto> GetInfo(long Id) | |||
{ | |||
var model = await GetFirstAsync(p => p.Id == Id); | |||
var model = await Context.Queryable<WarnInfo>().Includes(x=>x.CameraInfoItem).Where(x=>x.Id==Id).FirstAsync(); | |||
if (model == null) | |||
{ | |||
throw Oops.Oh("信息不存在!"); | |||
@@ -92,6 +92,7 @@ public class WarnInfoService:DbRepository<WarnInfo>, IWarnInfoService,ITransient | |||
} | |||
var query = Context.Queryable<WarnInfo>() | |||
.Includes(x=>x.CameraInfoItem) | |||
.WhereIF(search.WarnHand.HasValue, x => x.WarnHand == search.WarnHand) | |||
.WhereIF(!string.IsNullOrEmpty(search.AlarmType),x => x.AlarmType == search.AlarmType) | |||
.WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId) | |||
@@ -2,11 +2,7 @@ | |||
// | |||
using SafeCampus.Core.Options; | |||
namespace SafeCampus.Application; | |||
@@ -26,6 +22,7 @@ public class Startup : AppStartup | |||
//业务配置转实体 | |||
services.AddConfigurableOptions<ApplicationSettingsOptions>(); | |||
services.AddConfigurableOptions<AppInfoOptions>(); | |||
services.AddConfigurableOptions<TXSmsOptions>(); | |||
} | |||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) | |||
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
8deff3ea2db041439b250089eed6dc5718b475df70ec4b5eb2a8480a011a29f2 | |||
15cfdb9642c228344ca348393e44bfc41e49f25544b43d9b0a17ff2c6024d12a |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
8deff3ea2db041439b250089eed6dc5718b475df70ec4b5eb2a8480a011a29f2 | |||
15cfdb9642c228344ca348393e44bfc41e49f25544b43d9b0a17ff2c6024d12a |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Application")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
8deff3ea2db041439b250089eed6dc5718b475df70ec4b5eb2a8480a011a29f2 | |||
15cfdb9642c228344ca348393e44bfc41e49f25544b43d9b0a17ff2c6024d12a |
@@ -361,6 +361,10 @@ | |||
"target": "Package", | |||
"version": "[8.0.6, )" | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk": { | |||
"target": "Package", | |||
"version": "[3.0.5, )" | |||
}, | |||
"Yitter.IdGenerator": { | |||
"target": "Package", | |||
"version": "[1.0.14, )" | |||
@@ -431,6 +435,10 @@ | |||
"target": "Package", | |||
"version": "[8.0.6, )" | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk": { | |||
"target": "Package", | |||
"version": "[3.0.5, )" | |||
}, | |||
"Yitter.IdGenerator": { | |||
"target": "Package", | |||
"version": "[1.0.14, )" | |||
@@ -501,6 +509,10 @@ | |||
"target": "Package", | |||
"version": "[8.0.6, )" | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk": { | |||
"target": "Package", | |||
"version": "[3.0.5, )" | |||
}, | |||
"Yitter.IdGenerator": { | |||
"target": "Package", | |||
"version": "[1.0.14, )" | |||
@@ -3324,6 +3324,31 @@ | |||
} | |||
} | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"type": "package", | |||
"dependencies": { | |||
"TencentCloudSDK": "3.0.500" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
} | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"type": "package", | |||
"dependencies": { | |||
"Newtonsoft.Json": "11.0.1", | |||
"System.Text.Encodings.Web": "4.5.1" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
} | |||
}, | |||
"UAParser/3.1.47": { | |||
"type": "package", | |||
"compile": { | |||
@@ -3384,6 +3409,7 @@ | |||
"SharpZipLib": "1.4.2", | |||
"SimpleTool": "1.0.6", | |||
"System.Drawing.Common": "8.0.6", | |||
"Tencent.QCloud.Cos.Sts.Sdk": "3.0.5", | |||
"Yitter.IdGenerator": "1.0.14" | |||
}, | |||
"compile": { | |||
@@ -6733,6 +6759,31 @@ | |||
} | |||
} | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"type": "package", | |||
"dependencies": { | |||
"TencentCloudSDK": "3.0.500" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
} | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"type": "package", | |||
"dependencies": { | |||
"Newtonsoft.Json": "11.0.1", | |||
"System.Text.Encodings.Web": "4.5.1" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
} | |||
}, | |||
"UAParser/3.1.47": { | |||
"type": "package", | |||
"compile": { | |||
@@ -6793,6 +6844,7 @@ | |||
"SharpZipLib": "1.4.2", | |||
"SimpleTool": "1.0.6", | |||
"System.Drawing.Common": "8.0.6", | |||
"Tencent.QCloud.Cos.Sts.Sdk": "3.0.5", | |||
"Yitter.IdGenerator": "1.0.14" | |||
}, | |||
"compile": { | |||
@@ -10118,6 +10170,31 @@ | |||
} | |||
} | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"type": "package", | |||
"dependencies": { | |||
"TencentCloudSDK": "3.0.500" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
} | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"type": "package", | |||
"dependencies": { | |||
"Newtonsoft.Json": "11.0.1", | |||
"System.Text.Encodings.Web": "4.5.1" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
} | |||
}, | |||
"UAParser/3.1.47": { | |||
"type": "package", | |||
"compile": { | |||
@@ -10178,6 +10255,7 @@ | |||
"SharpZipLib": "1.4.2", | |||
"SimpleTool": "1.0.6", | |||
"System.Drawing.Common": "8.0.6", | |||
"Tencent.QCloud.Cos.Sts.Sdk": "3.0.5", | |||
"Yitter.IdGenerator": "1.0.14" | |||
}, | |||
"compile": { | |||
@@ -18139,6 +18217,32 @@ | |||
"useSharedDesignerContext.txt" | |||
] | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"sha512": "e1EVha7hwm6CLEC5Hc6ahnMvfEo9qkWJuiaS5W3RaHgS/SDMTwySwGIu4Ij90p2su+xRfTRBGuVnODecsDTiYg==", | |||
"type": "package", | |||
"path": "tencent.qcloud.cos.sts.sdk/3.0.5", | |||
"files": [ | |||
".nupkg.metadata", | |||
".signature.p7s", | |||
"lib/net45/COSSTS.dll", | |||
"lib/netstandard2.0/COSSTS.dll", | |||
"tencent.qcloud.cos.sts.sdk.3.0.5.nupkg.sha512", | |||
"tencent.qcloud.cos.sts.sdk.nuspec" | |||
] | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"sha512": "tDFtr7SY+PBUt6+spijOOK62uDlcYotIsiI6AzYekajVhH5L5cuCiJvXczFSunxPkixDjq0GsM8+3XE4AIj0cA==", | |||
"type": "package", | |||
"path": "tencentcloudsdk/3.0.500", | |||
"files": [ | |||
".nupkg.metadata", | |||
".signature.p7s", | |||
"lib/net45/TencentCloud.dll", | |||
"lib/netstandard2.0/TencentCloud.dll", | |||
"tencentcloudsdk.3.0.500.nupkg.sha512", | |||
"tencentcloudsdk.nuspec" | |||
] | |||
}, | |||
"UAParser/3.1.47": { | |||
"sha512": "I68Jl/Vs5RQZdz9BbmYtnXgujg0jVd61LhKbyNZOCm9lBxZFGxLbiQo6yFj21VYi7DzPvEvrVOmeC6v41AoLfw==", | |||
"type": "package", | |||
@@ -1,6 +1,6 @@ | |||
{ | |||
"version": 2, | |||
"dgSpecHash": "LJDRIq/ZDeMdFSVhR5N8tMTn+ddODzj2V9kDVFPo/WYCMq68Qo6xChDrrhg7TLZoABi7x4k6FKgMKKQ0ixJw7w==", | |||
"dgSpecHash": "kAt7Z4rcXRuB3cYmj09KCUb/5aGTknaeZuAQSrhoe1ylvq25s1tym+OyuV9nmkpcsHJ1Zf+HQTvCRnevIX+beQ==", | |||
"success": true, | |||
"projectFilePath": "F:\\Project\\QJKJ\\SafeCampus\\SafeCampus.API\\SafeCampus.Application\\SafeCampus.Application.csproj", | |||
"expectedPackageFiles": [ | |||
@@ -220,6 +220,8 @@ | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\system.threading.tasks.parallel\\4.3.0\\system.threading.tasks.parallel.4.3.0.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\system.windows.extensions\\6.0.0\\system.windows.extensions.6.0.0.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\tencent.qcloud.cos.sts.sdk\\3.0.5\\tencent.qcloud.cos.sts.sdk.3.0.5.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\tencentcloudsdk\\3.0.500\\tencentcloudsdk.3.0.500.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\uaparser\\3.1.47\\uaparser.3.1.47.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\yitter.idgenerator\\1.0.14\\yitter.idgenerator.1.0.14.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\zstdsharp.port\\0.8.0\\zstdsharp.port.0.8.0.nupkg.sha512" | |||
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
9edcfca15341e2224b96c8290cf81021a91a09773c5a891357f64da3e16d0529 | |||
cf464dcd5bd4b535dcf46523fc87b0a310f24c212b199ec74b6b1a1aab3a3148 |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
9edcfca15341e2224b96c8290cf81021a91a09773c5a891357f64da3e16d0529 | |||
cf464dcd5bd4b535dcf46523fc87b0a310f24c212b199ec74b6b1a1aab3a3148 |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Cache")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
9edcfca15341e2224b96c8290cf81021a91a09773c5a891357f64da3e16d0529 | |||
cf464dcd5bd4b535dcf46523fc87b0a310f24c212b199ec74b6b1a1aab3a3148 |
@@ -239,6 +239,10 @@ | |||
"target": "Package", | |||
"version": "[8.0.6, )" | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk": { | |||
"target": "Package", | |||
"version": "[3.0.5, )" | |||
}, | |||
"Yitter.IdGenerator": { | |||
"target": "Package", | |||
"version": "[1.0.14, )" | |||
@@ -309,6 +313,10 @@ | |||
"target": "Package", | |||
"version": "[8.0.6, )" | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk": { | |||
"target": "Package", | |||
"version": "[3.0.5, )" | |||
}, | |||
"Yitter.IdGenerator": { | |||
"target": "Package", | |||
"version": "[1.0.14, )" | |||
@@ -379,6 +387,10 @@ | |||
"target": "Package", | |||
"version": "[8.0.6, )" | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk": { | |||
"target": "Package", | |||
"version": "[3.0.5, )" | |||
}, | |||
"Yitter.IdGenerator": { | |||
"target": "Package", | |||
"version": "[1.0.14, )" | |||
@@ -2687,6 +2687,31 @@ | |||
"lib/netstandard1.3/System.Threading.Tasks.Parallel.dll": {} | |||
} | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"type": "package", | |||
"dependencies": { | |||
"TencentCloudSDK": "3.0.500" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
} | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"type": "package", | |||
"dependencies": { | |||
"Newtonsoft.Json": "11.0.1", | |||
"System.Text.Encodings.Web": "4.5.1" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
} | |||
}, | |||
"Yitter.IdGenerator/1.0.14": { | |||
"type": "package", | |||
"compile": { | |||
@@ -2720,6 +2745,7 @@ | |||
"SharpZipLib": "1.4.2", | |||
"SimpleTool": "1.0.6", | |||
"System.Drawing.Common": "8.0.6", | |||
"Tencent.QCloud.Cos.Sts.Sdk": "3.0.5", | |||
"Yitter.IdGenerator": "1.0.14" | |||
}, | |||
"compile": { | |||
@@ -5375,6 +5401,31 @@ | |||
"lib/netstandard1.3/System.Threading.Tasks.Parallel.dll": {} | |||
} | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"type": "package", | |||
"dependencies": { | |||
"TencentCloudSDK": "3.0.500" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
} | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"type": "package", | |||
"dependencies": { | |||
"Newtonsoft.Json": "11.0.1", | |||
"System.Text.Encodings.Web": "4.5.1" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
} | |||
}, | |||
"Yitter.IdGenerator/1.0.14": { | |||
"type": "package", | |||
"compile": { | |||
@@ -5408,6 +5459,7 @@ | |||
"SharpZipLib": "1.4.2", | |||
"SimpleTool": "1.0.6", | |||
"System.Drawing.Common": "8.0.6", | |||
"Tencent.QCloud.Cos.Sts.Sdk": "3.0.5", | |||
"Yitter.IdGenerator": "1.0.14" | |||
}, | |||
"compile": { | |||
@@ -8039,6 +8091,31 @@ | |||
"lib/netstandard1.3/System.Threading.Tasks.Parallel.dll": {} | |||
} | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"type": "package", | |||
"dependencies": { | |||
"TencentCloudSDK": "3.0.500" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/COSSTS.dll": {} | |||
} | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"type": "package", | |||
"dependencies": { | |||
"Newtonsoft.Json": "11.0.1", | |||
"System.Text.Encodings.Web": "4.5.1" | |||
}, | |||
"compile": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
}, | |||
"runtime": { | |||
"lib/netstandard2.0/TencentCloud.dll": {} | |||
} | |||
}, | |||
"Yitter.IdGenerator/1.0.14": { | |||
"type": "package", | |||
"compile": { | |||
@@ -8072,6 +8149,7 @@ | |||
"SharpZipLib": "1.4.2", | |||
"SimpleTool": "1.0.6", | |||
"System.Drawing.Common": "8.0.6", | |||
"Tencent.QCloud.Cos.Sts.Sdk": "3.0.5", | |||
"Yitter.IdGenerator": "1.0.14" | |||
}, | |||
"compile": { | |||
@@ -15016,6 +15094,32 @@ | |||
"system.threading.tasks.parallel.nuspec" | |||
] | |||
}, | |||
"Tencent.QCloud.Cos.Sts.Sdk/3.0.5": { | |||
"sha512": "e1EVha7hwm6CLEC5Hc6ahnMvfEo9qkWJuiaS5W3RaHgS/SDMTwySwGIu4Ij90p2su+xRfTRBGuVnODecsDTiYg==", | |||
"type": "package", | |||
"path": "tencent.qcloud.cos.sts.sdk/3.0.5", | |||
"files": [ | |||
".nupkg.metadata", | |||
".signature.p7s", | |||
"lib/net45/COSSTS.dll", | |||
"lib/netstandard2.0/COSSTS.dll", | |||
"tencent.qcloud.cos.sts.sdk.3.0.5.nupkg.sha512", | |||
"tencent.qcloud.cos.sts.sdk.nuspec" | |||
] | |||
}, | |||
"TencentCloudSDK/3.0.500": { | |||
"sha512": "tDFtr7SY+PBUt6+spijOOK62uDlcYotIsiI6AzYekajVhH5L5cuCiJvXczFSunxPkixDjq0GsM8+3XE4AIj0cA==", | |||
"type": "package", | |||
"path": "tencentcloudsdk/3.0.500", | |||
"files": [ | |||
".nupkg.metadata", | |||
".signature.p7s", | |||
"lib/net45/TencentCloud.dll", | |||
"lib/netstandard2.0/TencentCloud.dll", | |||
"tencentcloudsdk.3.0.500.nupkg.sha512", | |||
"tencentcloudsdk.nuspec" | |||
] | |||
}, | |||
"Yitter.IdGenerator/1.0.14": { | |||
"sha512": "F4nOJ7Geq41vgNWX9E6/vkxRzFInACGpDp4Kad2mA2WIKhEwgPyE9FpulBAuEmDByrfHHz6mOII3IIeLJAh91g==", | |||
"type": "package", | |||
@@ -1,6 +1,6 @@ | |||
{ | |||
"version": 2, | |||
"dgSpecHash": "BiOnQzyJgl/0vwUtFDP2BYbECu0aaDXmegkLZC08P5je0wISveJTtr8hxoR1rWStNcdlbf3yzhjx4VHfQzEHIw==", | |||
"dgSpecHash": "t9HMX1FcLhEStgZaVpCzN98xhmd1HnmKT7gh8EWP1GZt2GPCukFB+tQdMTB+WapbaHW7SDvwwm6tezc/CrqJ/A==", | |||
"success": true, | |||
"projectFilePath": "F:\\Project\\QJKJ\\SafeCampus\\SafeCampus.API\\SafeCampus.Cache\\SafeCampus.Cache.csproj", | |||
"expectedPackageFiles": [ | |||
@@ -183,6 +183,8 @@ | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\system.threading.tasks.parallel\\4.3.0\\system.threading.tasks.parallel.4.3.0.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\tencent.qcloud.cos.sts.sdk\\3.0.5\\tencent.qcloud.cos.sts.sdk.3.0.5.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\tencentcloudsdk\\3.0.500\\tencentcloudsdk.3.0.500.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\yitter.idgenerator\\1.0.14\\yitter.idgenerator.1.0.14.nupkg.sha512", | |||
"C:\\Users\\王晓寒\\.nuget\\packages\\zstdsharp.port\\0.8.0\\zstdsharp.port.0.8.0.nupkg.sha512" | |||
], | |||
@@ -1,14 +1,4 @@ | |||
| |||
// | |||
namespace SafeCampus.Core; | |||
namespace SafeCampus.Core; | |||
/// <summary> | |||
/// 验证Id不能为 空 | |||
@@ -17,12 +7,11 @@ public class IdNotNull : ValidationAttribute | |||
{ | |||
public override bool IsValid(object value) | |||
{ | |||
if (value.ToLong() > 0 || !string.IsNullOrEmpty(value.ToString())) | |||
return true; | |||
return false; | |||
return value != null && (value.ToLong() > 0 || !string.IsNullOrEmpty(value.ToString())); | |||
} | |||
} | |||
/// <summary> | |||
/// 验证Id列表不能为空 | |||
/// </summary> | |||
@@ -30,8 +19,6 @@ public class IdsNotNull : ValidationAttribute | |||
{ | |||
public override bool IsValid(object value) | |||
{ | |||
if (value is List<string> { Count: 0 }) | |||
return false; | |||
return true; | |||
return value is not List<string> { Count: 0 }; | |||
} | |||
} |
@@ -1,14 +1,4 @@ | |||
| |||
// | |||
namespace SafeCampus.Core; | |||
namespace SafeCampus.Core; | |||
/// <summary> | |||
/// 文件上传输入参数 | |||
@@ -1,14 +1,4 @@ | |||
| |||
// | |||
namespace SafeCampus.Core; | |||
namespace SafeCampus.Core; | |||
/// <summary> | |||
/// 主键Id输入参数 | |||
@@ -1,13 +1,4 @@ | |||
| |||
// | |||
namespace SafeCampus.Core; | |||
/// <summary> | |||
@@ -24,7 +15,7 @@ public class BasePageInput : IValidatableObject | |||
/// <summary> | |||
/// 每页条数 | |||
/// </summary> | |||
[Range(1, 100, ErrorMessage = "页码容量超过最大限制")] | |||
[Range(1, 1000, ErrorMessage = "页码容量超过最大限制")] | |||
[DataValidation(ValidationTypes.Numeric)] | |||
public virtual int PageSize { get; set; } = 10; | |||
@@ -1,16 +1,4 @@ | |||
| |||
// | |||
// | |||
using System.Runtime.InteropServices; | |||
using System.Runtime.InteropServices; | |||
namespace SafeCampus.Core; | |||
@@ -14,5 +14,9 @@ public class SafeCampusConst | |||
/// 告警分组 | |||
/// </summary> | |||
public const string WarnGroup = "WARN_GROUP"; | |||
/// <summary> | |||
/// 重点人员库ID | |||
/// </summary> | |||
public const string ZDRY = "ZDRY"; | |||
} |
@@ -0,0 +1,46 @@ | |||
using Microsoft.Extensions.Configuration; | |||
using MoYu.ConfigurableOptions; | |||
namespace SafeCampus.Core.Options; | |||
public class TXSmsOptions : IConfigurableOptionsListener<TXSmsOptions> | |||
{ | |||
/// <summary> | |||
/// 腾讯云API密钥 SecretId | |||
/// </summary> | |||
public string SecretId { get; set; } | |||
/// <summary> | |||
/// 腾讯云API密钥 SecretKey | |||
/// </summary> | |||
public string SecretKey { get; set; } | |||
/// <summary> | |||
/// 腾讯云短信 Appid | |||
/// </summary> | |||
public string SmsAppId { get; set; } | |||
/// <summary> | |||
/// 腾讯云短信 签名 | |||
/// </summary> | |||
public string SmsSn { get; set; } | |||
/// <summary> | |||
/// 验证码模板id | |||
/// </summary> | |||
public string VerificationCodeId { get; set; } | |||
public void PostConfigure(TXSmsOptions options, IConfiguration configuration) | |||
{ | |||
} | |||
public void OnListener(TXSmsOptions options, IConfiguration configuration) | |||
{ | |||
SecretId=options.SecretId; | |||
SecretKey=options.SecretKey; | |||
SmsAppId=options.SmsAppId; | |||
SmsSn=options.SmsSn; | |||
VerificationCodeId = options.VerificationCodeId; | |||
} | |||
} |
@@ -11,6 +11,7 @@ | |||
<PackageReference Include="Portable.BouncyCastle" Version="1.9.0" /> | |||
<PackageReference Include="SimpleTool" Version="1.0.6" /> | |||
<PackageReference Include="System.Drawing.Common" Version="8.0.6" /> | |||
<PackageReference Include="Tencent.QCloud.Cos.Sts.Sdk" Version="3.0.5" /> | |||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" /> | |||
<PackageReference Include="Masuit.Tools.Core" Version="2024.3.4" /> | |||
<PackageReference Include="SharpZipLib" Version="1.4.2" /> | |||
@@ -26,4 +27,8 @@ | |||
</None> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Utils\TXYSMS\" /> | |||
</ItemGroup> | |||
</Project> |
@@ -251,6 +251,11 @@ | |||
告警分组 | |||
</summary> | |||
</member> | |||
<member name="F:SafeCampus.Core.SafeCampusConst.ZDRY"> | |||
<summary> | |||
重点人员库ID | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Core.MqttMessage"> | |||
<summary> | |||
mqtt消息 | |||
@@ -1038,6 +1043,31 @@ | |||
最大日志等级 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Core.Options.TXSmsOptions.SecretId"> | |||
<summary> | |||
腾讯云API密钥 SecretId | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Core.Options.TXSmsOptions.SecretKey"> | |||
<summary> | |||
腾讯云API密钥 SecretKey | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Core.Options.TXSmsOptions.SmsAppId"> | |||
<summary> | |||
腾讯云短信 Appid | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Core.Options.TXSmsOptions.SmsSn"> | |||
<summary> | |||
腾讯云短信 签名 | |||
</summary> | |||
</member> | |||
<member name="P:SafeCampus.Core.Options.TXSmsOptions.VerificationCodeId"> | |||
<summary> | |||
验证码模板id | |||
</summary> | |||
</member> | |||
<member name="T:SafeCampus.Core.Startup"> | |||
<summary> | |||
AppStartup启动类 | |||
@@ -1700,6 +1730,14 @@ | |||
<param name="s2"></param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Core.Utils.TXYSMS.TxySmsUtil.SendSms(System.String[],System.String[])"> | |||
<summary> | |||
发送短信 | |||
</summary> | |||
<param name="phone">new[] { $"+86{phone}" } 手机号码</param> | |||
<param name="content">new[] { code.ToString(), "5" } 内容参数</param> | |||
<returns></returns> | |||
</member> | |||
<member name="M:SafeCampus.Core.Utils.ZipUtils.ZipFile(System.String,System.String,System.Int32,System.Int32)"> | |||
<summary> | |||
压缩单个文件 | |||
@@ -0,0 +1,48 @@ | |||
using SafeCampus.Core.Options; | |||
using TencentCloud.Common; | |||
using TencentCloud.Common.Profile; | |||
using TencentCloud.Sms.V20210111; | |||
using TencentCloud.Sms.V20210111.Models; | |||
namespace SafeCampus.Core.Utils.TXYSMS; | |||
public static class TxySmsUtil | |||
{ | |||
/// <summary> | |||
/// 发送短信 | |||
/// </summary> | |||
/// <param name="phone">new[] { $"+86{phone}" } 手机号码</param> | |||
/// <param name="content">new[] { code.ToString(), "5" } 内容参数</param> | |||
/// <returns></returns> | |||
public static bool SendSms(string[] phone, string[] content) | |||
{ | |||
var setting = App.GetOptionsMonitor<TXSmsOptions>(); | |||
Credential cred = new() | |||
{ | |||
SecretId = setting.SecretId, | |||
SecretKey = setting.SecretKey | |||
}; | |||
ClientProfile clientProfile = new(); | |||
HttpProfile httpProfile = new() | |||
{ | |||
Endpoint = ("sms.tencentcloudapi.com"), | |||
}; | |||
clientProfile.HttpProfile = httpProfile; | |||
SmsClient client = new(cred, "ap-beijing", clientProfile); | |||
SendSmsRequest req = new() | |||
{ | |||
PhoneNumberSet = phone,// new[] { $"+86{phone}" }, | |||
SmsSdkAppId = setting.SmsAppId, | |||
SignName = setting.SmsSn, | |||
TemplateId = setting.VerificationCodeId, | |||
TemplateParamSet = content, | |||
}; | |||
SendSmsResponse resp = client.SendSmsSync(req); | |||
if (resp.SendStatusSet[0].Code == "Ok") | |||
{ | |||
// 缓存验证码 | |||
return true; | |||
} | |||
return false; | |||
} | |||
} |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
a9d50ac7ca3e0c444071362e2818ebe56ba854544ae4bc9a347b1eccf6f2f8d8 | |||
c3eada0a000d1796c2cc2f1e5ea0c2a44cea1a71229adf776461dc271d8255e6 |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||
@@ -1 +1 @@ | |||
a9d50ac7ca3e0c444071362e2818ebe56ba854544ae4bc9a347b1eccf6f2f8d8 | |||
c3eada0a000d1796c2cc2f1e5ea0c2a44cea1a71229adf776461dc271d8255e6 |
@@ -14,7 +14,7 @@ using System.Reflection; | |||
[assembly: System.Reflection.AssemblyCompanyAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] | |||
[assembly: System.Reflection.AssemblyFileVersionAttribute("3.0.0.0")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+7b594c62a278bc4c7cdeb186fc16b21a67573018")] | |||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("3.0.0+8094eb9f28ce0eacd3a9839bce976835a89bac36")] | |||
[assembly: System.Reflection.AssemblyProductAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyTitleAttribute("SafeCampus.Core")] | |||
[assembly: System.Reflection.AssemblyVersionAttribute("3.0.0.0")] | |||