1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- <?php
- namespace app\common\model;
- use think\Exception;
- use think\Model;
- class Appointment extends Model
- {
- protected $updateTime = false;
- const STATUS_OPEN = 1;
- const STATUS_CLOSE = 0;
- const WEEK_TEXTS = ['', '周一', '周二', '周三', '周四', '周五', '周六', '周日'];
- //morning_time_periods
- public function getMorningTimePeriodsAttr($value, $data)
- {
- $json = json_decode($value, true);
- if (!is_array($json)) {
- return [];
- } else {
- foreach ($json as $k => $item) {
- if (empty($item))
- unset($json[$k]);
- }
- return $json;
- }
- }
- //afternoon_time_periods
- public function getAfternoonTimePeriodsAttr($value, $data)
- {
- $json = json_decode($value, true);
- if (!is_array($json)) {
- return [];
- } else {
- foreach ($json as $k => $item) {
- if (empty($item))
- unset($json[$k]);
- }
- return $json;
- }
- }
- //生成工作日号源
- public static function createWeekTicketAll($daytime)
- {
- $daytimestamp = strtotime($daytime);
- if (strtotime(date('Y-m-d')) > $daytimestamp) {
- throw new Exception("该时间已过期,请重新选择时间");
- }
- $daytimeWeek = date('w', $daytimestamp);
- $appoints = (new Appointment())->where('weeks', '<>', '')->select();
- foreach ($appoints as $appoint) {
- $weeks = explode(',', $appoint->weeks);
- if (in_array($daytimeWeek, $weeks)) {
- //生成号源记录
- if (0 == (new AppointmentTicket())->where(['appointment_id' => $appoint->id, 'appointment_daytime' => $daytimestamp])->count()) {
- (new AppointmentTicket())->allowField(true)->save([
- 'appointment_id' => $appoint->id,
- 'appointment_daytime' => $daytimestamp,
- 'address_id' => $appoint->specialist->address_id,
- 'provider_id' => $appoint->provider_id,
- 'status' => AppointmentTicket::STATUS_OPEN
- ]);
- }
- }
- }
- }
- //关联专家
- public function specialist()
- {
- return $this->belongsTo('Specialist', 'provider_id');
- }
- }
|