CommentModel.class.php 3.14 KB
<?php
/**
 * Created by PhpStorm.
 * User: liyifei2012it
 * Date: 17/5/18
 * Time: 11:35
 */
namespace Common\Model;

class CommentModel extends AbstractModel
{

    // 构造方法
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * 获取用户评论排行
     * @author zhonglei
     * @param array $conds 条件
     * @param int $limit 数据总数,0为取所有数据
     * @return array
     */
    public function listUserRank($conds, $limit = 0)
    {
        $wheres = [];
        $params = [];

        if (is_array($conds) && !empty($conds)) {
            $this->_parse_where($wheres, $params, $conds);
        }

        // 企业标记
        $wheres[] = "`{$this->prefield}domain`=?";
        $params[] = QY_DOMAIN;
        // 状态条件
        $wheres[] = "`{$this->prefield}status`<?";
        $params[] = $this->get_st_delete();

        $wheres_sql = implode(' AND ', $wheres);
        $sql = "SELECT *, COUNT(*) `total` FROM __TABLE__ WHERE {$wheres_sql} GROUP BY `uid` ORDER BY `total` DESC, `created` DESC";

        if ($limit > 0) {
            $sql .= " LIMIT {$limit}";
        }

        return $this->_m->fetch_array($sql, $params);
    }

    /**
     * 获取应用数据评论排行
     * @author zhonglei
     * @param array $conds 条件
     * @param int $limit 数据总数,0为取所有数据
     * @return array
     */
    public function listCommentRank($conds, $limit = 0)
    {
        $wheres = [];
        $params = [];

        if (is_array($conds) && !empty($conds)) {
            $this->_parse_where($wheres, $params, $conds);
        }

        // 企业标记
        $wheres[] = "`{$this->prefield}domain`=?";
        $params[] = QY_DOMAIN;
        // 状态条件
        $wheres[] = "`{$this->prefield}status`<?";
        $params[] = $this->get_st_delete();

        $wheres_sql = implode(' AND ', $wheres);
        $sql = "SELECT *, COUNT(*) `total` FROM __TABLE__ WHERE {$wheres_sql} GROUP BY `app_data_id` ORDER BY `total` DESC";

        if ($limit > 0) {
            $sql .= " LIMIT {$limit}";
        }

        return $this->_m->fetch_array($sql, $params);
    }

    /**
     * 批量获取多人员、多评论对象的评论总数
     * @author liyifei
     * @param array $uids 人员UID数组
     * @param string $app 应用
     * @param array $app_data_ids 评论对象ID
     * @return array
     */
    public function listCommentTotalGroup($uids, $app, $app_data_ids)
    {
        $conds = [
            'uid' => $uids,
            'app' => $app,
            'app_data_id' => $app_data_ids,
        ];

        $wheres = [];
        $params = [];
        $this->_parse_where($wheres, $params, $conds);

        // 企业标记
        $wheres[] = "`{$this->prefield}domain`=?";
        $params[] = QY_DOMAIN;
        // 状态条件
        $wheres[] = "`{$this->prefield}status`<?";
        $params[] = $this->get_st_delete();

        $wheres_sql = implode(' AND ', $wheres);
        $sql = "SELECT `uid`, `app_data_id`, count(*) total FROM __TABLE__ WHERE {$wheres_sql} GROUP BY `uid`,`app_data_id` ORDER BY `total` DESC";

        return $this->_m->fetch_array($sql, $params);
    }
}