UserTaskService.class.php 1.16 KB
<?php
/**
 * Created by PhpStorm.
 * User: zhonglei
 * Date: 17/7/26
 * Time: 16:36
 */
namespace Common\Service;

use Common\Model\UserTaskModel;

class UserTaskService extends AbstractService
{
    // 构造方法
    public function __construct()
    {
        parent::__construct();
        $this->_d = new UserTaskModel();
    }

    /**
     * 获取我的常规任务排名
     * @author liyifei
     * @param String $uid 人员UID
     * @param Int $customtask_id 常规任务ID
     * @return Int
     */
    public function getMyRank($uid, $customtask_id)
    {
        $userTask = $this->get_by_conds([
            'uid' => $uid,
            'progress > ?' => 0,
            'customtask_id' => $customtask_id,
        ]);

        // 未参与任务或任务完成度为0时,不显示排名
        $myRank = 0;
        if (!empty($userTask)) {
            // 我已参与任务,排名=完成度大于我的人数+完成度等于我且完成时间小于我的人数+1
            $userTotal = $this->_d->getMyRank($customtask_id, $userTask['progress'], $userTask['complete_time']);
            $myRank = (int)$userTotal + 1;
        }

        return $myRank;
    }
}