WorkTimeService.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace addons\ReservationService\common\services;
  3. use addons\ReservationService\common\models\ReservationServiceWorkTime;
  4. use common\enums\StatusEnum;
  5. class WorkTimeService
  6. {
  7. /**
  8. * 设置
  9. * @param int $mall_id
  10. * @param int $user_id
  11. * @param int $week_day
  12. * @param $next_day
  13. * @param array $times
  14. * @return ReservationServiceWorkTime|mixed|string|null
  15. */
  16. public function save(int $mall_id, int $user_id, int $week_day, $next_day, array $times)
  17. {
  18. /**
  19. * @var $model ReservationServiceWorkTime
  20. */
  21. $model = ReservationServiceWorkTime::getOne([
  22. ['user_id' => $user_id],
  23. ['mall_id' => $mall_id],
  24. ['week_day' => $week_day]
  25. ]);
  26. if (empty($model)) {
  27. $model = new ReservationServiceWorkTime();
  28. $model->mall_id = $mall_id;
  29. $model->user_id = $user_id;
  30. }
  31. $max_week_day = $week_day + $next_day;
  32. try {
  33. for ($i = $week_day; $i <= $max_week_day; $i++) {
  34. }
  35. // 判断时间是否被包含
  36. // ReservationServiceWorkTime::getOne([
  37. // ['user_id' => $user_id],
  38. // ['mall_id' => $mall_id],
  39. // ['>=', 'week_day', $week_day]
  40. // ]);
  41. $model->start_week_day = $week_day;
  42. $model->end_week_day = $week_day + $next_day; // 加天数
  43. $model->status = StatusEnum::ENABLED;
  44. $model->start_hour = intval($times[0]);
  45. $model->end_hour = intval($times[1]);
  46. if (!$model->save()) return $model->getErrorMessage();
  47. } catch (\Exception $e) {
  48. }
  49. return $model;
  50. }
  51. }