1], [['limit'], 'default', 'value' => 20], ]; } public function search() { if (!$this->validate()) { return ['code' => 1, 'msg' => $this->getErrorSummary(false)[0]]; } // $query =Order::find()->alias('o') // ->leftJoin(['od' => OrderDetail::tableName()], 'o.id=od.order_id') // ->leftJoin(['g' => Goods::tableName()], 'od.goods_id=g.id') // ->leftJoin(['pb' => ProductBatch::tableName()], 'pb.goods_id=g.id') // ->leftJoin(['pbp' => ProductBatchProcess::tableName()], 'pb.id=pbp.product_batch_id') // ->leftJoin(['u' => User::tableName()], 'u.id=pbp.process_user_id') // ->leftJoin(['p' => Product::tableName()], 'p.id=pb.product_id') // ->where([ // 'pbp.is_delete' => 0, // 'pbp.store_id' => get_store_id(), // 'o.user_id' => $this->user_id // ]) // ->groupBy('g.id') // ->orderBy('pbp.id desc') // ->select(['pbp.process_name', 'pb.batch_number', 'pb.batch_name', // 'p.product_name', 'g.name as goods_name', 'g.cover_pic', 'g.price', // 'u.nickname', 'pbp.id', 'pbp.updated_at', 'pbp.product_batch_id']); $query =ProductBatchProcess::find()->alias('pbp') ->leftJoin(['u' => User::tableName()], 'u.id=pbp.process_user_id') ->leftJoin(['pb' => ProductBatch::tableName()], 'pb.id=pbp.product_batch_id') ->leftJoin(['p' => Product::tableName()], 'p.id=pb.product_id') ->leftJoin(['g' => Goods::tableName()], 'g.id=pb.goods_id') ->where([ 'pb.is_delete' => 0, 'pbp.is_delete' => 0, 'pbp.store_id' => get_store_id(), // 'pbp.process_user_id' => $this->user_id ]) ->groupBy('g.id') ->orderBy('pbp.id desc') ->select(['pbp.process_name', 'pb.batch_number', 'pb.batch_name', 'p.product_name', 'g.name as goods_name', 'g.cover_pic', 'g.price', 'u.nickname', 'pbp.id', 'pbp.updated_at', 'pbp.product_batch_id']); if (!empty($this->keyword)) { $query->andWhere([ 'or', ['like', 'p.product_name', $this->keyword], ['like', 'pb.batch_name', $this->keyword], ['like', 'pbp.process_name', $this->keyword] ]); } $count = $query->count(); $pagination = new Pagination(['totalCount' => $count, 'page' => $this->page - 1, 'pageSize' => $this->limit]); $list = $query->limit($pagination->limit)->offset($pagination->offset)->asArray()->all(); foreach ($list as $k => $v) { $list[$k]['updated_at'] = date('Y-m-d H:i:s', $v['updated_at']); } return [ 'code' => 0, 'msg' => 'success', 'data' => [ 'row_count' => $count, 'page_count' => $pagination->pageCount, 'list' => $list, ], ]; } }