SignSettingController.class.php 3.08 KB
<?php
/**
 * Created by PhpStorm.
 * User: tangxingguo
 * Date: 2017/7/24
 * Time: 11:51
 */

namespace Apicp\Controller\Dailytask;

use Common\Common\Constant;
use Common\Service\DailytaskService;

class SignSettingController extends \Apicp\Controller\AbstractController
{
    /**
     * SignSetting
     * @author tangxingguo
     * @desc 获取签到配置接口(注意:固定签到与递增签到规则字段、结构差异)
     * @return array 配置详情
                    array(
                        'is_open' => 1, // 是否开启(1=未开启;2=已开启)
                        'sign_type' => 1, // 签到规则类型(1=固定获取积分;2=递增获取积分)
                        'sign_fixed' => array( // 固定签到规则(sign_type=1时存在)
                            'day_integral' => 10, // 每天签到获取积分数
                            'reward_rule' => array( // 连续签到奖励规则(空=未设置;非空=已设置)
                                array(
                                    'cycle' => 7, // 连续签到天数
                                    'integral' => 10, // 一次性获取积分数
                                ),
                            ),
                        ),
                        'sign_cycle' => array( // 递增签到规则(sign_type=2时存在)
                            'cycle' => 7, // 递增周期天数
                            'first' => 2, // 首次签到获取积分数
                            'integral' => 7, // 每连续签到多一天获取的积分数
                        ),
                        'is_recommender' => 1, // 是否推荐到首页栏目icon(1=否;2=是)
                    );
     */

    public function Index_post()
    {
        $dailytaskServ = new DailytaskService();
        $signSetting = $dailytaskServ->get_by_conds(['app' => Constant::APP_SIGN]);
        if (empty($signSetting)) {
            return $this->_result = ['is_open' => Constant::DAILYTASK_IS_OPEN_FALSE];
        }

        // 格式化数据
        $signSetting['rules'] = unserialize($signSetting['rules']);
        $res = [
            'is_open' => $signSetting['is_open'],
            'sign_type' => $signSetting['rules']['sign_type'],
        ];
        switch ($res['sign_type']) {
            // 固定签到
            case Constant::DAILYTASK_SIGN_TYPE_IS_FIXED:
                $res['sign_fixed'] = $signSetting['rules']['sign_fixed'];
                break;
            // 递增签到
            case Constant::DAILYTASK_SIGN_TYPE_IS_CYCLE:
                $res['sign_cycle'] = $signSetting['rules']['sign_cycle'];
                break;
        }

        // 签到是否推荐到首页icon栏目
        $model = new \Common\Model\CommonModel('recommender', 'oa_common_');
        $is_icon = $model->count_by_conds([
            'type' => Constant::TYPE_ICON,
            'system' => Constant::SYSTEM_NO,
            'app_dir' => 'Sign',
        ]);

        $res['is_recommender'] = $is_icon ? Constant::RECOMMENDER_ICON_TRUE : Constant::RECOMMENDER_ICON_FALSE;

        $this->_result = $res;
    }
}