OrderController.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\integral\controllers;
  8. use app\models\Goods;
  9. use app\models\SaasIntegralCat;
  10. use app\models\User;
  11. use app\plugins\integral\models\form\GoodsForm;
  12. use app\plugins\integral\models\SaasIntegralGoods;
  13. use app\plugins\integral\models\SaasIntegralOrder;
  14. class OrderController extends BaseController
  15. {
  16. public function actionList() {
  17. $status = get_params('status', -1);
  18. $key = get_params('key');
  19. $query = SaasIntegralOrder::find()->alias('sio')->where(['sio.store_id' => get_store_id(),
  20. 'sio.is_delete' => 0])->leftJoin(['g' => Goods::tableName()],'g.id=sio.goods_id')
  21. ->leftJoin(['sig' => SaasIntegralGoods::tableName()],'sig.goods_id=sio.goods_id');
  22. if (!empty($key)) {
  23. $query->andWhere([
  24. 'or',
  25. ['like', 'g.name', $key],
  26. ['like', 'sig.name', $key],
  27. ['like', 'sio.name', $key],
  28. ['like', 'sio.order_no', $key],
  29. ]);
  30. }
  31. if ($status >= 0) {
  32. $query->andWhere(['sio.is_clerk' => $status]);
  33. }
  34. $query->select('sio.*, g.cover_pic, g.name AS origin_name, sig.attr AS integral_goods_attr, sig.cat_id AS integral_cat_id')->orderBy(['sio.is_clerk' => SORT_ASC, 'sio.created_at' => SORT_DESC]);
  35. $list = pagination_make($query);
  36. foreach ($list['list'] as &$val) {
  37. $user = User::findOne($val['user_id']);
  38. $val['user_name'] = $user->nickname;
  39. $val['binding'] = $user->binding;
  40. $val['cat_name'] = SaasIntegralCat::findOne($val['integral_cat_id'])->name;
  41. $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']);
  42. $attr = json_decode($val['integral_goods_attr'], true);
  43. $count = count($attr);
  44. $str = '';
  45. foreach ($attr as $key => &$value) {
  46. $attr_group = GoodsForm::getAttrGroupByAttId($value['attr_id']);
  47. $t = $value['attr_name'];
  48. unset($value['attr_name']);
  49. $value['attr_group_name'] = $attr_group ? $attr_group->attr_group_name : null;
  50. $value['attr_name'] = $t;
  51. $str .= $value['attr_group_name'] . ':' . $t;
  52. if ($key < $count - 1) {
  53. $str .= ',';
  54. }
  55. }
  56. $val['attr_str'] = $str;
  57. }
  58. return [
  59. 'code' => 0,
  60. 'msg' => 'success',
  61. 'data' => [
  62. 'data' => $list['list'],
  63. 'pageNo' => $list['pageNo'],
  64. 'totalCount' => $list['totalCount'],
  65. ],
  66. ];
  67. }
  68. }