You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.7 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. using Shentun.WebPeis.Models;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Volo.Abp;
  8. using Volo.Abp.Domain.Repositories;
  9. using Volo.Abp.Domain.Services;
  10. namespace Shentun.WebPeis.AppointSchedules
  11. {
  12. public class AppointScheduleManager : DomainService
  13. {
  14. private readonly IRepository<AppointSchedule> _appointScheduleRepository;
  15. private readonly IRepository<AppointScheduleTime> _appointScheduleTimeRepository;
  16. public AppointScheduleManager(
  17. IRepository<AppointSchedule> appointScheduleRepository,
  18. IRepository<AppointScheduleTime> appointScheduleTimeRepository)
  19. {
  20. _appointScheduleRepository = appointScheduleRepository;
  21. _appointScheduleTimeRepository = appointScheduleTimeRepository;
  22. }
  23. /// <summary>
  24. /// 创建
  25. /// </summary>
  26. /// <param name="entity"></param>
  27. /// <returns></returns>
  28. public async Task<AppointSchedule> CreateAsync(
  29. AppointSchedule entity
  30. )
  31. {
  32. DataHelper.CheckEntityIsNull(entity);
  33. var isAppointDate = await _appointScheduleRepository.FirstOrDefaultAsync(f => f.AppointDate == entity.AppointDate);
  34. if (isAppointDate == null)
  35. {
  36. return new AppointSchedule
  37. {
  38. AmNumberLimit = entity.AmNumberLimit,
  39. AppointDate = entity.AppointDate,
  40. AppointScheduleId = entity.AppointScheduleId,
  41. AppointScheduleTimes = entity.AppointScheduleTimes,
  42. PmNumberLimit = entity.PmNumberLimit,
  43. SingleNumberLimit = entity.SingleNumberLimit
  44. };
  45. }
  46. else
  47. {
  48. isAppointDate.AmNumberLimit = entity.AmNumberLimit;
  49. isAppointDate.AppointDate = entity.AppointDate;
  50. isAppointDate.AppointScheduleTimes = entity.AppointScheduleTimes;
  51. isAppointDate.PmNumberLimit = entity.PmNumberLimit;
  52. isAppointDate.SingleNumberLimit = entity.SingleNumberLimit;
  53. return isAppointDate;
  54. }
  55. }
  56. /// <summary>
  57. /// 删除
  58. /// </summary>
  59. /// <param name="id"></param>
  60. /// <returns></returns>
  61. /// <exception cref="UserFriendlyException"></exception>
  62. public async Task CheckAndDeleteAsync(Guid appointScheduleId)
  63. {
  64. //先删除明细
  65. await _appointScheduleTimeRepository.DeleteAsync(m => m.AppointScheduleId == appointScheduleId);
  66. await _appointScheduleRepository.DeleteAsync(d => d.AppointScheduleId == appointScheduleId);
  67. }
  68. }
  69. }