| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- <?php
- namespace addons\Store\api\modules\v1\controllers;
- use addons\Store\common\enums\StoreEnum;
- use addons\Store\common\models\Store;
- use addons\Store\common\models\StoreLoseOrder;
- use addons\Store\common\models\StoreOrder;
- use api\controllers\OnAuthController;
- use common\enums\OrderStatusEnum;
- use common\enums\StatusEnum;
- use Yii;
- /**
- * Class LoseOrderController
- * @package api\modules\order\controllers
- */
- class LoseOrderController extends OnAuthController
- {
- public $modelClass = '';
- /**
- * 不用进行登录验证的方法
- *
- * 例如: ['index', 'update', 'create', 'view', 'delete']
- * 默认全部需要验证
- *
- * @var array
- */
- protected $authOptional = [];
- // 流失订单
- public function actionIndex()
- {
- $store = Store::findOne(['user_id' => $this->user_id, 'status' => StatusEnum::ENABLED, 'check_status' => StoreEnum::CHECK_ADOPT]);
- if ($store) {
- $data = [
- "list" => [],
- "count" => 0,
- "page" => 1,
- "page_size" => 10,
- "row_count" => 1,
- "page_count" => 1,
- ];
- return $this->success('success', $data);
- }
- $where[] = [
- 'lo.mall_id' => $this->mall_id,
- 'lo.user_id' => $this->user_id,
- 'lo.status' => StatusEnum::ENABLED,
- 'o.status' => StatusEnum::ENABLED,
- ];
- $where[] = ['>', 'order_status', OrderStatusEnum::NOT_PAY];
- $params['where'] = $where;
- $params['alias'] = 'o';
- $params['join'] = [['INNER JOIN', StoreLoseOrder::tableName() . ' lo', 'lo.order_id = o.id']];
- $params['select'] = 'o.id, o.order_status, o.pay_money, o.user_id';
- $params['with'] = [
- 'detail' => function ($query) {
- $query->select('id, goods_name, goods_attr_name, price, num, pic_url, order_id');
- },
- 'base_user'
- ];
- $params['order'] = 'o.id DESC';
- $list = StoreOrder::listPage($params);
- if ($list === false) return $this->error('服务错误');
- if ($list['list']) {
- foreach ($list['list'] as &$item) {
- $item['num'] = array_sum(array_column($item['detail'], 'num'));
- }
- }
- return $this->success('success', $list);
- }
- }
|