UserPathModel.class.php
2.04 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
<?php
/**
* Created by PhpStorm.
* User: liyifei2012it
* Date: 18/4/25
* Time: 15:30
*/
namespace Common\Model;
use Common\Common\Constant;
class UserPathModel extends AbstractModel
{
/**
* 构造方法
*/
public function __construct()
{
parent::__construct();
}
/**
* 处理条件语句及其值
* @author liyifei
* @param array $conds 条件
* @return array
*/
public function buildSql($conds)
{
// 条件
$where = '`domain` = ? AND `status` < ?';
// 条件的值
$params = [
QY_DOMAIN,
$this->get_st_delete(),
];
// 组合搜索条件及值
if (isset($conds['uids'])) {
$where .= " AND `uid` in ('?')";
$uids = implode("','", $conds['uids']);
$params[] = "{$uids}";
}
if (isset($conds['map_id'])) {
$where .= ' AND `map_id` = ?';
$params[] = $conds['map_id'];
}
if (isset($conds['complete_status'])) {
$where .= ' AND `complete_status` = ?';
$params[] = $conds['complete_status'];
}
return [
'where' => $where,
'params' => $params,
];
}
/**
* 获取已完成、未完成路径数量
* @author liyifei
* @param int $map_id 地图ID
* @param array $uids 人员ID数组
* @param int $complete_status 完成情况(1=未完成;2=已完成)
* @return array
*/
public function getPathCountByConds($map_id, $uids, $complete_status)
{
$uid_str = implode("','", $uids);
$sql = "SELECT uid, count(DISTINCT path_id) total FROM __TABLE__
WHERE `uid` in ('{$uid_str}') AND `map_id` = ? AND `complete_status` = ? AND `domain` = ? AND `status` < ?
GROUP BY uid";
$params = [
$map_id,
$complete_status,
QY_DOMAIN,
$this->get_st_delete(),
];
return $this->_m->fetch_array($sql, $params);
}
}