平安校园
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

ClassRoomCallService.cs 4.0 KiB

8 månader sedan
7 månader sedan
8 månader sedan
7 månader sedan
7 månader sedan
7 månader sedan
7 månader sedan
8 månader sedan
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. namespace SafeCampus.Application.Services.Business.ClassRoomCallService;
  2. public class ClassRoomCallService : DbRepository<ClassRoomCall>, IClassRoomCallService
  3. {
  4. public async Task<bool> Add(ClassRoomCallDto input)
  5. {
  6. var model = input.Adapt<ClassRoomCall>();
  7. if (string.IsNullOrEmpty(model.PersonId))
  8. {
  9. if (await IsAnyAsync(x => x.TaskId == model.TaskId && x.PersonId == model.PersonId && x.PersonSetId == model.PersonSetId))
  10. {
  11. //该批次点名任务已经出现过这个人,不在重复添加
  12. return true;
  13. }
  14. }
  15. else
  16. {
  17. if (await IsAnyAsync(x=>x.TaskId==model.TaskId&&x.TrackId==model.TrackId))
  18. {
  19. //没有匹配到人员,但是所属同一跟踪id
  20. //该批次点名任务已经出现过这个人,不在重复添加
  21. return true;
  22. }
  23. }
  24. await InsertAsync(model);
  25. return true;
  26. }
  27. public async Task<bool> Update(ClassRoomCallUpdate input)
  28. {
  29. var model = await GetFirstAsync(p => p.Id == input.Id);
  30. if (model == null)
  31. {
  32. throw Oops.Oh("信息不存在");
  33. }
  34. //var res = input.Adapt(model);
  35. model.PersonSetId = input.PersonSetId;
  36. model.PersonId = input.PersonId;
  37. await Context.Updateable(model)
  38. .UpdateColumns(x => new
  39. {
  40. x.PersonSetId,
  41. x.PersonId
  42. })
  43. .ExecuteCommandAsync();
  44. //await UpdateAsync(model);
  45. return true;
  46. }
  47. public async Task<bool> Remove(long id)
  48. {
  49. var model = await GetFirstAsync(x => x.Id == id);
  50. if (model == null)
  51. {
  52. throw Oops.Oh("信息不存在");
  53. }
  54. await DeleteAsync(model);
  55. return true;
  56. }
  57. public async Task<SqlSugarPagedList<ClassRoomCallList>> GetPageList(ClassRoomCallSearch search)
  58. {
  59. var query = Context.Queryable<ClassRoomCall>()
  60. .Includes(x => x.CameraInfoItem)
  61. .WhereIF(!string.IsNullOrEmpty(search.AlarmType), x => x.AlarmType == search.AlarmType)
  62. .WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId)
  63. .WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId)
  64. .WhereIF(!string.IsNullOrEmpty(search.TaskId), x => x.TaskId == search.TaskId)
  65. .WhereIF(!string.IsNullOrEmpty(search.TrackId), x => x.TrackId == search.TrackId)
  66. .WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId)
  67. .WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick)
  68. .WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick);
  69. var list = await query.OrderByDescending(x => x.Tick)
  70. .ToPagedListAsyncMapster<ClassRoomCall, ClassRoomCallList>(search.PageNum, search.PageSize);
  71. return list;
  72. }
  73. public async Task<List<ClassRoomCallList>> GetNoPageList(ClassRoomCallSearch search)
  74. {
  75. var query = Context.Queryable<ClassRoomCall>()
  76. .Includes(x => x.CameraInfoItem)
  77. .WhereIF(!string.IsNullOrEmpty(search.AlarmType), x => x.AlarmType == search.AlarmType)
  78. .WhereIF(!string.IsNullOrEmpty(search.CameraId), x => x.CameraId == search.CameraId)
  79. .WhereIF(!string.IsNullOrEmpty(search.PersonSetId), x => x.PersonSetId == search.PersonSetId)
  80. .WhereIF(!string.IsNullOrEmpty(search.TaskId), x => x.TaskId == search.TaskId)
  81. .WhereIF(!string.IsNullOrEmpty(search.TrackId), x => x.TrackId == search.TrackId)
  82. .WhereIF(!string.IsNullOrEmpty(search.PersonId), x => x.PersonId == search.PersonId)
  83. .WhereIF(search.StartTick.HasValue, x => x.Tick >= search.StartTick)
  84. .WhereIF(search.EndTick.HasValue, x => x.Tick <= search.EndTick);
  85. var list = await query.OrderByDescending(x => x.Tick)
  86. .ToListAsync();
  87. return list.Adapt<List<ClassRoomCallList>>();
  88. }
  89. }