DeviceStatsRepository.php
2.52 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
<?php
namespace domain\device;
use domain\device\models\Device as DeviceModel;
use domain\device\models\DeviceStats as DeviceStatsModel;
use domain\manufacturer\models\Manufacturer as ManufacturerModel;
use domain\model\models\Model as ModelModel;
use domain\project\models\Project as ProjectModel;
use yii\db\Query;
class DeviceStatsRepository
{
/**
* @param $condition
* @return null|static
*/
static function findOne($condition)
{
return DeviceStatsModel::findOne($condition);
}
/**
* 获取分页数据
* @param $where
* @param $offset
* @param $limit
* @return array|\yii\db\ActiveRecord[]
*/
static function getPageList($where, $offset, $limit)
{
$upgradeFind = DeviceStatsModel::find()->alias("ds")
->select([
"ds.*",
"mf.name as manufacture_name",
'de.serial_no',
'de.device_id as device_device_id',
'pj.name as project_name',
'md.name as model_name',
]);
$upgradeFind->leftJoin(ManufacturerModel::tableName() . " mf", "mf.id = ds.manufacture_id");
$upgradeFind->leftJoin(DeviceModel::tableName() . " de", "de.id = ds.device_id");
$upgradeFind->leftJoin(ProjectModel::tableName() . " pj", "pj.id = ds.project_id");
$upgradeFind->leftJoin(ModelModel::tableName() . " md", "md.id = ds.model_id");
if (!empty($where)) {
$upgradeFind->where($where);
}
if ($offset) {
$upgradeFind->offset($offset);
}
if ($limit) {
$upgradeFind->limit($limit);
}
$upgradeFind->orderBy("ds.id desc");
$upgradeFind->asArray();
$dataList = $upgradeFind->all();
return $dataList;
}
/**
* 列表页面分页器数量
* @param string $map
*/
static function getPageCount($map = '')
{
$DeviceStatsFind = DeviceStatsModel::find()->alias("ds");
$DeviceStatsFind->leftJoin(ManufacturerModel::tableName() . " mf", "mf.id = ds.manufacture_id");
$DeviceStatsFind->leftJoin(DeviceModel::tableName() . " de", "de.id = ds.device_id");
$DeviceStatsFind->leftJoin(ProjectModel::tableName() . " pj", "pj.id = ds.project_id");
$DeviceStatsFind->leftJoin(ModelModel::tableName() . " md", "md.id = ds.model_id");
if (!empty($map)) {
$DeviceStatsFind->where($map);
}
$pageCount = $DeviceStatsFind->count();
return $pageCount;
}
}