BookController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\food\controllers;
  8. use app\plugins\food\models\client\BookForm;
  9. use app\plugins\food\models\FoodBook;
  10. class BookController extends BaseController
  11. {
  12. /**
  13. * 点餐预约列表
  14. * @return array
  15. */
  16. public function actionList() {
  17. $status = get_params('status', -1);
  18. $keyword = get_params('keyword');
  19. $start_time = get_params('start_time');
  20. $end_time = get_params('end_time');
  21. $query = FoodBook::find()->where(['store_id' => get_store_id()]);
  22. if (!empty($keyword)) {
  23. $query->andWhere([
  24. 'or',
  25. ['like', 'name', $keyword],
  26. ['like', 'mobile', $keyword],
  27. ['like', 'number', $keyword]
  28. ]);
  29. }
  30. if ($start_time) {
  31. $query->andWhere(['>=', 'created_at', $start_time]);
  32. }
  33. if ($end_time) {
  34. $query->andWhere(['<=', 'created_at', $end_time]);
  35. }
  36. if (in_array($status, FoodBook::$validStatus)) {
  37. $query->andWhere(['status' => $status]);
  38. }
  39. $query->select(['*'])->orderBy(['created_at' => SORT_DESC]);
  40. $list = pagination_make($query);
  41. foreach ($list['list'] as &$val) {
  42. $val['book_num'] = BookForm::bookNumber($val['start_time'], false, $val['id']);
  43. // $val['status'] = $val['status'] == FoodBook::BOOK_CONFIRM ? '已到店' : ($val['status'] == FoodBook::BOOK_NOT_EXIST ? '已取消或已失效' : '待到店');
  44. }
  45. return [
  46. 'code' => 0,
  47. 'msg' => 'success',
  48. 'data' => [
  49. 'data' => $list['list'],
  50. 'pageNo' => $list['pageNo'],
  51. 'totalCount' => $list['totalCount'],
  52. ],
  53. ];
  54. }
  55. /**
  56. * 店铺确定预约信息
  57. */
  58. public function actionConfirm() {
  59. $id = post_params('id');
  60. $book = FoodBook::findOne(['id' => $id, 'status' => FoodBook::BOOK_WAIT]);
  61. if (!$book) {
  62. return [
  63. 'code' => 1,
  64. 'msg' => '该预约信息已确定或取消,失效'
  65. ];
  66. }
  67. $book->status = FoodBook::BOOK_CONFIRM;
  68. if ($book->save()) {
  69. return [
  70. 'code' => 0,
  71. 'msg' => '预约信息已更新'
  72. ];
  73. } else {
  74. return [
  75. 'code' => 1,
  76. 'msg' => $book->errors[0]
  77. ];
  78. }
  79. }
  80. }