cxgj/modules/admin/models/SigningForm.php
2024-01-18 18:35:38 +08:00

60 lines
1.5 KiB
PHP

<?php
namespace app\modules\admin\models;
use app\models\Goods;
use app\models\GoodsHub;
use app\models\Signing;
use app\models\User;
use yii\data\Pagination;
class SigningForm extends AdminModel
{
public $page;
public $limit;
public $order_no;
public $status;
public function rules()
{
return [
[['order_no'], 'string'],
[['page', 'limit', 'status'], 'integer'],
[['page'], 'default', 'value' => 1],
[['limit'], 'default', 'value' => 20],
[['status'], 'default', 'value' => null],
];
}
public function getList()
{
$query = Signing::find()->alias('s')
->leftJoin(['u' => User::tableName()], 's.user_id=u.id')
->leftJoin(['g' => Goods::tableName()], 's.goods_id=g.id')
->leftJoin(['gh' => GoodsHub::tableName()], 'g.goods_hub_id=gh.id')
->select('u.username,gh.name as goods_name,s.*');
if ($this->status != null) {
$query->where(['s.status' => $this->status]);
}
if ($this->order_no) {
$query->where(['s.order_no' => $this->order_no]);
}
$pagination = new Pagination(['totalCount' => $query->count(), 'defaultPageSize' => $this->limit]);
$list = $query->offset($pagination->offset)->orderBy(['s.create_time' => SORT_DESC])->asArray()->limit($pagination->limit)->all();
return [
'code' => 0,
'msg' => 'ok',
'data' => $list,
'count' => $query->count()
];
}
}