Appointment.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. namespace app\api\controller;
  3. use app\api\controller\base\Base;
  4. use app\common\model\Address;
  5. use app\common\model\AppointmentTicket;
  6. class Appointment extends Base
  7. {
  8. //获取地址列表
  9. public function addressList()
  10. {
  11. $post = $this->request->param();
  12. $validate = new \think\Validate([
  13. ['page', 'number'],
  14. ['pagenum', 'number|<=:1000']
  15. ]);
  16. if (!$validate->check($post)) {
  17. $this->json_error('提交失败:' . $validate->getError());
  18. }
  19. $where = [];
  20. $addressIds = (new \app\common\model\Appointment())->availableAddressIds();
  21. $where['id'] = ['in', $addressIds];
  22. $pagenum = $this->request->param('pagenum', 20, 'intval');
  23. $datalist = (new Address())->where($where)->paginate($pagenum, true);
  24. if (empty($datalist)) {
  25. $this->json_error("没有数据");
  26. }
  27. $this->json_success("查询成功", $datalist);
  28. }
  29. //按地址id获取号源信息
  30. public function getTicketByAddressId()
  31. {
  32. $post = $this->request->param();
  33. $validate = new \think\Validate([
  34. ['address_id', 'require|number'],
  35. ['daytime', 'dateFormat:Y-m-d'],
  36. ]);
  37. if (!$validate->check($post)) {
  38. $this->json_error('提交失败:' . $validate->getError());
  39. }
  40. $address_id = $this->request->param('address_id');
  41. $daytime = $this->request->param('daytime', date('Y-m-d'));
  42. $ticketModel = new AppointmentTicket();
  43. $tickets = $ticketModel->where('address_id', $address_id)->where('appointment_daytime', strtotime($daytime))->select();
  44. foreach ($tickets as $k => $item) {
  45. //专家信息
  46. $item->specialist;
  47. //剩余预约号码
  48. //拆分预约时段
  49. //价格?
  50. $tickets[$k] = $item;
  51. }
  52. $this->json_success($tickets);
  53. }
  54. //按时间获取地址列表
  55. public function addressListByDayTime()
  56. {
  57. \app\common\model\Appointment::createTicketFromAllAppointment();
  58. $ticketModel = new AppointmentTicket();
  59. //可预约日期列表
  60. // $maxEndTime = $ticketModel->max('end_time');
  61. // $daylist = DateHelper::getDateList(date('Y-m-d'), date('Y-m-d', $maxEndTime), true);
  62. $post = $this->request->param();
  63. $validate = new \think\Validate([
  64. ['daytime', 'date|dateFormat:Y-m-d'],
  65. ['page', 'number'],
  66. ['pagenum', 'number|<=:1000']
  67. ]);
  68. if (!$validate->check($post)) {
  69. $this->json_error('提交失败:' . $validate->getError());
  70. }
  71. $daytime = $this->request->param('daytime', date('Y-m-d'));
  72. $addressIds = $ticketModel->where('appointment_daytime', strtotime($daytime))->column('address_id');
  73. $where = [];
  74. $where['id'] = ['in', $addressIds];
  75. $pagenum = $this->request->param('pagenum', 20, 'intval');
  76. $datalist = (new Address())->where($where)->paginate($pagenum, true);
  77. if (empty($datalist)) {
  78. $this->json_error("没有数据");
  79. }
  80. $this->json_success("查询成功", $datalist);
  81. }
  82. }