ListController.class.php 4.17 KB
<?php
/**
 * Created by PhpStorm.
 * User: tangxingguo
 * Date: 2017/7/24
 * Time: 11:51
 */
namespace Api\Controller\Dailytask;

use Common\Common\Constant;
use Common\Common\TaskHelper;
use Common\Service\DailytaskService;
use Common\Service\UserSignRecordService;
use Common\Service\UserSignService;

class ListController extends \Api\Controller\AbstractController
{
    /**
     * List
     * @author liyifei
     * @desc 获取每日任务列表
     * @return mixed 列表详情
                 array(
                    'sign' => array( // 签到
                        'is_sign' => 1, // 是否已签到(1=未签到;2=已签到)
                        'integral' => 5, // 积分值
                        'count' => 1, // 任务总数
                        'complete_task' => 0, // 完成的任务数
                        'app_url' => 'http://dsc.vchangyi.com', // 去完成任务的url
                    ),
                    'workmate' => array( // 同事圈(规则:workmate_circle=话题规则;workmate_comment=评论规则;workmate_like=点赞规则)
                        array(
                            'app' => 'workmate', // 应用名
                            'rule_name' => 'workmate_like', // 规则名
                            'task_title' => '在同事圈进行10个点赞', // 任务名称
                            'integral' => 10, // 可获得积分
                            'require_total' => 10, // 任务总数
                            'complete_total' => 0, // 已完成的任务数
                            'is_get' => 1, // 是否已领取(1=未领取;2=已领取)
                            'app_url' => '', // 去完成任务的url
                        ),
                    ),
                    'answer' => array( // 问答(规则:answer_question=提问规则;answer_answer=回答规则)
                        array(
                            'app' => 'answer', // 应用名
                            'rule_name' => 'answer_question', // 规则名
                            'task_title' => '在问答中心发起1个提问', // 任务名称
                            'integral' => 11, // 可获得积分
                            'require_total' => 1, // 任务总数
                            'complete_total' => 0, // 已完成的任务数
                            'is_get' => 1, // 是否已领取(1=未领取;2=已领取)
                            'app_url' => '', // 去完成任务的url
                        ),
                    ),
                );
     */
    public function Index_post()
    {
        $user = $this->_login->user;

        // 每日任务-同事圈、问答中心配置
        $taskHelper = &TaskHelper::instance();
        $taskList = $taskHelper->buildDailytaskList($user);

        // 每日任务-签到配置
        $dailytaskServ = new DailytaskService();
        $signTask = $dailytaskServ->get_by_conds([
            'is_open' => Constant::DAILYTASK_IS_OPEN_TRUE,
            'app' => Constant::APP_SIGN,
        ]);

        // 签到信息
        $signData = [];
        if (!empty($signTask)) {
            // 今天是否签到
            $recordServ = new UserSignRecordService();
            $startTime = rstrtotime(rgmdate(MILLI_TIME,'Y-m-d'), 1);
            $endTime = $startTime + 24 * 60 * 60 * 1000;
            $record = $recordServ->get_by_conds([
                'uid' => $user['memUid'],
                'created >= ?' => $startTime,
                'created < ?' => $endTime,
            ]);

            // 今天签到可以获取的积分
            $signServ = new UserSignService();
            $integral = $signServ->signIntegral($user['memUid']);

            // 签到返回数据
            $signData['sign'] = [
                'is_sign' => empty($record) ? Constant::TODAY_IS_SIGN_FALSE : Constant::TODAY_IS_SIGN_TRUE,
                'integral' => $integral,
                'complete_task' => empty($record) ? 0 : 1,
                'count' => 1,
                'app_url' => empty($record) ? $taskHelper->getAppUrl(Constant::APP_SIGN) : '',
            ];
        }

        $list = array_merge($signData, $taskList);

        $this->_result = $list;
    }
}