60 lines
1.5 KiB
PHP
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()
|
|
];
|
|
}
|
|
|
|
|
|
} |