| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- <?php
 
- namespace app\admin\controller;
 
- use app\admin\controller\base\Permissions;
 
- use app\common\model\Appointment as appointmentModel;
 
- use think\Db;
 
- use time\DateHelper;
 
- class Appointment extends Permissions
 
- {
 
-     private function getModel()
 
-     {
 
-         return new appointmentModel();
 
-     }
 
-     public function publish()
 
-     {
 
-         $pid = $this->request->param('pid', 0, 'intval');
 
-         $post                = $this->request->post();
 
-         $post['provider_id'] = $pid;
 
-         if ($this->request->isPost()) {
 
-             //验证
 
-             $validate = new \think\Validate([
 
-                 ['provider_id', 'require|number'],
 
-             ]);
 
-             if (!$validate->check($post)) {
 
-                 $this->error('提交失败:' . $validate->getError());
 
-             }
 
-         }
 
-         $model       = $this->getModel();
 
-         $appointment = $model->where('provider_id', $pid)->find();
 
-         if ($appointment) {
 
-             //修改
 
-             if ($this->request->isPost()) {
 
-                 $weeks         = $post['weeks'] ?? [];
 
-                 $weeks         = array_keys($weeks);
 
-                 $post['weeks'] = implode(',', $weeks);
 
-                 $post['morning_time_periods']   = json_encode($post['morning_time_periods'] ?? []);
 
-                 $post['afternoon_time_periods'] = json_encode($post['afternoon_time_periods'] ?? []);
 
-                 if (false == $appointment->allowField(true)->save($post)) {
 
-                     $this->error('修改失败');
 
-                 }
 
-                 $this->publishAfter($pid);
 
-                 $this->success('修改成功', 'index', ['pid' => $pid]);
 
-             } else {
 
-                 $this->assign('data', $appointment);
 
-                 $this->assign('morning_time_periods_json', $appointment->morning_time_periods);
 
-                 $this->assign('afternoon_time_periods_json', $appointment->afternoon_time_periods);
 
-                 return $this->fetch();
 
-             }
 
-         } else {
 
-             //新增
 
-             if ($this->request->isPost()) {
 
-                 $weeks         = $post['weeks'] ?? [];
 
-                 $weeks         = array_keys($weeks);
 
-                 $post['weeks'] = implode(',', $weeks);
 
-                 $post['morning_time_periods']   = json_encode($post['morning_time_periods'] ?? []);
 
-                 $post['afternoon_time_periods'] = json_encode($post['afternoon_time_periods'] ?? []);
 
-                 if (false == $model->allowField(true)->save($post)) {
 
-                     $this->error('添加失败');
 
-                 }
 
-                 $this->success('添加成功', 'index', ['pid' => $pid]);
 
-             } else {
 
-                 //输出系统配置
 
-                 $webconfig = \app\common\model\Webconfig::get(1);
 
-                 $this->assign('data', $webconfig);
 
-                 $this->assign('morning_time_periods_json', json_decode($webconfig->morning_time_periods, true));
 
-                 $this->assign('afternoon_time_periods_json', json_decode($webconfig->afternoon_time_periods, true));
 
-                 return $this->fetch();
 
-             }
 
-         }
 
-     }
 
-     /**
 
-      * 放号设置修改,删除号源
 
-      * @param $id
 
-      * @author jiang
 
-      */
 
-     private function publishAfter($id)
 
-     {
 
-         $where = [];
 
-         if (!is_array($id)) {
 
-             $where['provider_id'] = $id;
 
-         } else {
 
-             $where['provider_id'] = ['in', $id];
 
-         }
 
-         $where['appointment_daytime'] = ['>', time()];
 
-         //删除该专家所有号源和记录
 
-         (new \app\common\model\AppointmentTicket())->where($where)->delete();
 
- //        (new \app\common\model\AppointmentApplication())->where($where)->delete();
 
-     }
 
- }
 
 
  |