平安校园
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

95 lines
3.1 KiB

  1. using SafeCampus.Application.Services.Business.CameraInfoService;
  2. using System.Collections.Generic;
  3. namespace SafeCampus.Web.Core.Controllers.Application.Business;
  4. /// <summary>
  5. /// 摄像头管理接口
  6. /// </summary>
  7. [ApiDescriptionSettings(ApiGroupConsts.SYSTEM_Business, Order = 91, Tag = "摄像头管理")]
  8. [Route("/business/cameraInfo")]
  9. [RolePermission]
  10. public class CameraInfoController
  11. {
  12. private readonly ICameraInfoService _cameraInfoService;
  13. public CameraInfoController(ICameraInfoService cameraInfoService)
  14. {
  15. _cameraInfoService = cameraInfoService;
  16. }
  17. /// <summary>
  18. /// 数据同步
  19. /// </summary>
  20. /// <returns></returns>
  21. [DisplayName("数据同步")]
  22. public async Task<bool> Dat()
  23. {
  24. return await _cameraInfoService.DataSync();
  25. }
  26. /// <summary>
  27. /// 获取摄像头列表
  28. /// </summary>
  29. /// <param name="search"></param>
  30. /// <returns></returns>
  31. [DisplayName("获取摄像头列表")]
  32. public async Task<SqlSugarPagedList<CameraInfoDto>> GetPageList(CameraSearch search)
  33. {
  34. return await _cameraInfoService.GetPageList(search);
  35. }
  36. /// <summary>
  37. /// 批量给摄像头设置分组
  38. /// </summary>
  39. /// <param name="input"></param>
  40. /// <returns></returns>
  41. [DisplayName("批量给摄像头设置分组")]
  42. public async Task<bool> BatchSetGroup(SetGroupInput input)
  43. {
  44. return await _cameraInfoService.BatchSetGroup(input);
  45. }
  46. /// <summary>
  47. /// 根据分组批量设置推送人
  48. /// </summary>
  49. /// <param name="input"></param>
  50. /// <returns></returns>
  51. [DisplayName("根据分组批量设置推送人")]
  52. public async Task<bool> BatchSetPushPersonByGroup(SetPushPersonGroupInput input)
  53. {
  54. return await _cameraInfoService.BatchSetPushPersonByGroup(input);
  55. }
  56. /// <summary>
  57. /// 对摄像头批量设置推送人
  58. /// </summary>
  59. /// <param name="input"></param>
  60. /// <returns></returns>
  61. [DisplayName("对摄像头批量设置推送人")]
  62. public async Task<bool> BatchSetPushPerson(SetPushPersonInput input)
  63. {
  64. return await _cameraInfoService.BatchSetPushPerson(input);
  65. }
  66. /// <summary>
  67. /// 根据预警分组设置推送人
  68. /// </summary>
  69. /// <param name="input"></param>
  70. /// <returns></returns>
  71. [DisplayName("根据预警分组设置推送人")]
  72. public async Task<bool> BatchSetPushPersonByWarn(SetPushPersonWarnInput input)
  73. {
  74. return await _cameraInfoService.BatchSetPushPersonByWarn(input);
  75. }
  76. /// <summary>
  77. /// 设备状态统计API
  78. /// </summary>
  79. /// <returns></returns>
  80. [DisplayName("设备状态统计API")]
  81. public async Task<dynamic> GetCameraStatistic()
  82. {
  83. var list = await _cameraInfoService.GetPageList(new CameraSearch{PageNum = 1,PageSize = 1000});
  84. var numbers = new Dictionary<bool, string> { {true, "在线" }, { false, "离线" } };
  85. var statistics = numbers.Select(x => new
  86. {
  87. Name = x.Value,
  88. Count = list.List.Count(xx => xx.DeviceStatus)
  89. }).ToList();
  90. return statistics;
  91. }
  92. }