| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- /**
- * 重庆赤晓店信息科技有限公司
- * https://www.chixiaodian.com
- * Copyright (c) 2023 赤店商城 All rights reserved.
- */
- namespace app\plugins\product_traceability\models\client;
- use app\models\Goods;
- use app\models\Order;
- use app\models\OrderDetail;
- use app\models\SaasUser;
- use app\models\Shop;
- use app\models\Store;
- use app\models\User;
- use app\plugins\food\models\FoodOrderDetail;
- use app\plugins\product_traceability\models\Product;
- use app\plugins\product_traceability\models\ProductBatch;
- use app\plugins\product_traceability\models\ProductBatchProcess;
- use app\plugins\product_traceability\models\ProductBatchProcessLog;
- use app\utils\Tools;
- use yii\base\Model;
- use yii\data\Pagination;
- use yii\helpers\Json;
- use yii\helpers\Json as HelpersJson;
- class ProductBatchProcessAreaForm extends Model
- {
- public $store_id;
- public $user_id;
- public $keyword;
- public $page;
- public $limit;
- public function rules()
- {
- return [
- [['store_id', 'user_id'], 'required'],
- [['keyword'], 'string'],
- [['page', 'limit'], 'integer'],
- [['page'], 'default', 'value' => 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,
- ],
- ];
- }
- }
|