|
@@ -3,23 +3,96 @@
|
|
namespace app\api\controller;
|
|
namespace app\api\controller;
|
|
|
|
|
|
use app\api\controller\base\Base;
|
|
use app\api\controller\base\Base;
|
|
|
|
+use app\common\model\Address;
|
|
|
|
+use app\common\model\AppointmentTicket;
|
|
|
|
|
|
class Appointment extends Base
|
|
class Appointment extends Base
|
|
{
|
|
{
|
|
- private function getModel()
|
|
|
|
|
|
+ //获取地址列表
|
|
|
|
+ public function addressList()
|
|
{
|
|
{
|
|
- return new \app\common\model\Appointment();
|
|
|
|
|
|
+ $post = $this->request->param();
|
|
|
|
+ $validate = new \think\Validate([
|
|
|
|
+ ['page', 'number'],
|
|
|
|
+ ['pagenum', 'number|<=:1000']
|
|
|
|
+ ]);
|
|
|
|
+ if (!$validate->check($post)) {
|
|
|
|
+ $this->json_error('提交失败:' . $validate->getError());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $where = [];
|
|
|
|
+ $addressIds = (new \app\common\model\Appointment())->availableAddressIds();
|
|
|
|
+ $where['id'] = ['in', $addressIds];
|
|
|
|
+ $pagenum = $this->request->param('pagenum', 20, 'intval');
|
|
|
|
+ $datalist = (new Address())->where($where)->paginate($pagenum, true);
|
|
|
|
+ if (empty($datalist)) {
|
|
|
|
+ $this->json_error("没有数据");
|
|
|
|
+ }
|
|
|
|
+ $this->json_success("查询成功", $datalist);
|
|
}
|
|
}
|
|
|
|
|
|
- //按地点预约列表接口
|
|
|
|
- public function listByAddress()
|
|
|
|
|
|
+
|
|
|
|
+ //按地址id获取号源信息
|
|
|
|
+ public function getTicketByAddressId()
|
|
{
|
|
{
|
|
- $this->json_success("查询成功", $this->getModel()->listByAddress());
|
|
|
|
|
|
+ $post = $this->request->param();
|
|
|
|
+ $validate = new \think\Validate([
|
|
|
|
+ ['address_id', 'require|number'],
|
|
|
|
+ ['daytime', 'dateFormat:Y-m-d'],
|
|
|
|
+ ]);
|
|
|
|
+ if (!$validate->check($post)) {
|
|
|
|
+ $this->json_error('提交失败:' . $validate->getError());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $address_id = $this->request->param('address_id');
|
|
|
|
+ $daytime = $this->request->param('daytime', date('Y-m-d'));
|
|
|
|
+
|
|
|
|
+ $ticketModel = new AppointmentTicket();
|
|
|
|
+ $tickets = $ticketModel->where('address_id', $address_id)->where('appointment_daytime', strtotime($daytime))->select();
|
|
|
|
+
|
|
|
|
+ foreach ($tickets as $k => $item) {
|
|
|
|
+ //专家信息
|
|
|
|
+ $item->specialist;
|
|
|
|
+ //剩余预约号码
|
|
|
|
+ //拆分预约时段
|
|
|
|
+ //价格?
|
|
|
|
+ $tickets[$k] = $item;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $this->json_success($tickets);
|
|
}
|
|
}
|
|
|
|
|
|
- //按时间预约列表接口
|
|
|
|
- public function listByDayTime()
|
|
|
|
|
|
+ //按时间获取地址列表
|
|
|
|
+ public function addressListByDayTime()
|
|
{
|
|
{
|
|
|
|
+ \app\common\model\Appointment::createTicketFromAllAppointment();
|
|
|
|
+ $ticketModel = new AppointmentTicket();
|
|
|
|
+
|
|
|
|
+ //可预约日期列表
|
|
|
|
+// $maxEndTime = $ticketModel->max('end_time');
|
|
|
|
+// $daylist = DateHelper::getDateList(date('Y-m-d'), date('Y-m-d', $maxEndTime), true);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ $post = $this->request->param();
|
|
|
|
+ $validate = new \think\Validate([
|
|
|
|
+ ['daytime', 'date|dateFormat:Y-m-d'],
|
|
|
|
+ ['page', 'number'],
|
|
|
|
+ ['pagenum', 'number|<=:1000']
|
|
|
|
+ ]);
|
|
|
|
+ if (!$validate->check($post)) {
|
|
|
|
+ $this->json_error('提交失败:' . $validate->getError());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $daytime = $this->request->param('daytime', date('Y-m-d'));
|
|
|
|
+ $addressIds = $ticketModel->where('appointment_daytime', strtotime($daytime))->column('address_id');
|
|
|
|
|
|
|
|
+ $where = [];
|
|
|
|
+ $where['id'] = ['in', $addressIds];
|
|
|
|
+ $pagenum = $this->request->param('pagenum', 20, 'intval');
|
|
|
|
+ $datalist = (new Address())->where($where)->paginate($pagenum, true);
|
|
|
|
+ if (empty($datalist)) {
|
|
|
|
+ $this->json_error("没有数据");
|
|
|
|
+ }
|
|
|
|
+ $this->json_success("查询成功", $datalist);
|
|
}
|
|
}
|
|
}
|
|
}
|