cxgj/modules/admin/models/SigningForm.php
2024-01-20 17:38:52 +08:00

76 lines
1.9 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 $id;
public function rules()
{
return [
[['order_no'], 'string'],
[['page', 'limit', 'status', 'id'], '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()
];
}
public function signing()
{
$signing = Signing::findOne($this->id);
if ($signing->status == 1) {
$signing->status = 2;
$signing->signing_time = time();
return $signing->save() ? $this->apiReturnSuccess('操作成功') : $this->apiReturnError('操作失败');
}
return $this->apiReturnError('订单异常');
}
}