BindDeviceAppointmentController.php
3.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<?php
namespace app\ht\modules\device\controllers;
use Yii;
use yii\data\Pagination;
use yii\web\NotFoundHttpException;
use app\ht\controllers\BaseController;
use common\models\BindDeviceAppointment as BindDeviceAppointmentModel;
use function date;
/**
* 贴码预约申请控制器
* Class BindDeviceAppointmentController
* @package app\ht\modules\device\controllers
*/
class BindDeviceAppointmentController extends BaseController
{
/**
* 预约贴码列表
*/
public function actionIndex()
{
$params = $this->dataList();
/**
* 渲染模板
*/
return $this->render('index', $params);
}
/**
* 查询数据列表
*/
protected function dataList()
{
$request = Yii::$app->request;
/**
* 组织SQL type 0 未处理 1 已处理
*/
$postecode = BindDeviceAppointmentModel::find();
$postecode->andWhere(["is_deleted" => 0]);
$postecode->orderBy("id desc");
/**
* 查询过滤处理
*/
$get = [];
// 联系人
$connectName = $request->get('connectName');
$get['connectName'] = $connectName;
if ($connectName) {
$postecode->andFilterWhere(['like', 'connect_name', $connectName]);
}
// 电话
$mobile = $request->get('mobile');
$get['mobile'] = $mobile;
if ($mobile) {
$postecode->andFilterWhere(['like', 'mobile', $mobile]);
}
$selstatus = $request->get("selstatus");
$get['selstatus'] = $selstatus;
if ($selstatus) {
if ($selstatus == 1) {
$postecode->andWhere(['status' => 1]);
} else if ($selstatus == 2) {
$postecode->andWhere(['status' => 0]);
}
}
// 地址
$address = $request->get('address');
$get['address'] = $address;
if ($address) {
$postecode->andFilterWhere(['like', 'address', $address]);
}
/**
* 分页处理
*/
$pageSize = $request->get("pageSize") ? (int) $request->get("pageSize") : 20;
$pages = new Pagination(['totalCount' => $postecode->count(), 'pageSize' => $pageSize]);
$result = $postecode->offset($pages->offset)->limit($pages->limit)->all();
/**
* 数据整理
*/
$data = [];
foreach ($result as $item) {
$data[] = [
'id' => $item->id,
'connect_name' => $item->connect_name,
'mobile' => $item->mobile,
'address' => $item->address,
'status' => ($item->status == 1) ? '已处理' : '未处理',
'created_at' => date('Y-m-d H:i:s', $item->created_at),
'updated_at' => date('Y-m-d H:i:s', $item->updated_at),
'is_deleted' => ($item->is_deleted == 1) ? '删除' : '正常',
];
}
return [
'listdata' => $data,
'pages' => $pages,
'gets' => $get,
];
}
/**
* 处理贴码请求
*/
public function actionDoApply($id)
{
$model = $this->findModel($id);
$model->status = ($model->status == 1) ? 0 : 1;
$model->save();
return $this->redirect(['index']);
}
/**
* 根据主键查找模型
*/
protected function findModel($id)
{
$findModel = Yii::createObject(BindDeviceAppointmentModel::className());
if (($model = $findModel::findOne($id)) !== null) {
return $model;
} else {
throw new NotFoundHttpException('访问页面不存在');
}
}
}