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();
- }
- }
|