OrderController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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\models\User;
  9. use app\plugins\food\models\FoodOrder;
  10. use app\plugins\food\models\FoodOrderDetail;
  11. class OrderController extends BaseController
  12. {
  13. public function actionList() {
  14. $status = get_params('status', -1);
  15. $key = get_params('keyword');
  16. $dateStart = get_params('dateStart');
  17. $dateEnd = get_params('dateEnd');
  18. $query = FoodOrder::find()->alias('fo')->where(['fo.store_id' => get_store_id()])->leftJoin(['u' => User::tableName()],'u.id=fo.user_id');
  19. if (!empty($key)) {
  20. $query->andWhere([
  21. 'or',
  22. ['like', 'u.nickname', $key],
  23. ['like', 'u.real_name', $key],
  24. ['like', 'fo.order_no', $key],
  25. ['like', 'u.binding', $key],
  26. ]);
  27. }
  28. if ($dateStart) {
  29. $query->andWhere(['>=', 'fo.created_at', strtotime($dateStart)]);
  30. }
  31. if ($dateEnd) {
  32. $query->andWhere(['<=', 'fo.created_at', strtotime($dateEnd)]);
  33. }
  34. if (in_array($status, [0, 1])) {
  35. $query->andWhere(['fo.is_pay' => $status]);
  36. }
  37. $query->select('fo.*, u.nickname, u.real_name, u.binding')->orderBy(['fo.created_at' => SORT_DESC]);
  38. $list = pagination_make($query);
  39. foreach ($list['list'] as &$val) {
  40. $val['goods_list'] = FoodOrderDetail::find()->where(['order_id' => $val['id']])->asArray()->all();
  41. }
  42. return [
  43. 'code' => 0,
  44. 'msg' => 'success',
  45. 'data' => [
  46. 'data' => $list['list'],
  47. 'pageNo' => $list['pageNo'],
  48. 'totalCount' => $list['totalCount'],
  49. ],
  50. ];
  51. }
  52. }