UserPathModel.class.php 2.04 KB
<?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);
    }
}