DetailController.class.php 2.55 KB
<?php
/**
 *【积分抽奖-后台】活动详情接口
 * User: daijun
 * Date: 2018/3/23
 * Time: 下午3:42
 */

namespace Apicp\Controller\Activity;


use Common\Common\Constant;
use Common\Service\ActivityService;
use Common\Service\PrizeService;
use Common\Service\RightService;

class DetailController extends \Apicp\Controller\AbstractController
{

    public function Index_post()
    {
        // 获取参数
        $ac_id = I('post.ac_id');

        if (empty($ac_id)) {
            // 活动ID不能为空
            E('_EMPTY_ACTIVITY_ID');
        }

        $activity_serv = new ActivityService();

        $detail = $activity_serv->get($ac_id);

        if (empty($detail)) {
            // 活动信息不存在
            E('_ERR_ACTIVITY_DATA');
        }

        // 删掉多余字段
        unset($detail['domain'], $detail['status'], $detail['created'], $detail['updated'], $detail['deleted']);

        $detail['rule'] = unserialize($detail['rule']);
        $detail['prize_intro'] = unserialize($detail['prize_intro']);

        // 将活动详情数据赋值给返回字段
        $result = $detail;

        // 转换活动状态
        $result['activity_status'] = $activity_serv->activity_status($detail['activity_status'], $detail['start_time'], $detail['end_time']);

        $prize_serv = new PrizeService();
        // 查询奖品信息字段
        $field = 'lp_id,order_num,cover_id,name,num,percent,lottery_max,lottery_min,is_prize,prize_desc,is_default';
        // 查询奖品列表
        $prize_list = $prize_serv->list_by_conds(['ac_id' => $ac_id], null, ['order_num' => 'ASC'], $field);

        foreach ($prize_list as &$prize) {
            // 循环处理奖品图片地址
            $prize['is_prize'] = intval($prize['is_prize']);
            if ($prize['cover_id'] == 'integral-default') {
                // 默认封面图
                $url = (is_ssl() ? 'https://' : 'http://') . (cfg('FRONT_DOMAIN') ?: $_SERVER['HTTP_HOST']);
                $prize['cover_url'] = $url . "/static/img/lottery/". $prize['cover_id']. ".png";
            } else {
                $prize['cover_url'] = imgUrlReal($prize['cover_id']);
            }
        }

        // 将奖品列表信息赋值给返回字段
        $result['list'] = $prize_list;

        $right_serv = new RightService();
        // 组装权限数据
        $right = $right_serv->get_right_detail($ac_id, $result['is_all']);

        // 将权限列表信息赋值给返回字段
        $result['right_list'] = $right;

        $this->_result = $result;

        return true;
    }

}