DrawListController.class.php 2.72 KB
<?php
/**
 * 【积分抽奖-手机端】获取中奖列表接口
 *
 * @author: heyuelong
 * @date: 2018年3月26日11:18:11
 */

namespace Api\Controller\Activity;

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

class DrawListController extends \Api\Controller\AbstractController
{

    /** @var ActivityService */
    protected $_activity_service;
    /** @var RecordService */
    protected $_record_service;

    public function before_action($action = '')
    {

        if (!parent::before_action($action)) {

            return false;
        }

        // 实例化活动
        $this->_activity_service = new ActivityService();
        // 实例化权限表
        $this->_record_service = new RecordService();

        return true;
    }

    /**
     * @return bool
     */
    public function Index_post()
    {
        $postData = I('post.');

        if (empty($postData['ac_id'])) {
            // 验证参数
            E('_EMPTY_ACTIVITY_ID');
        }

        // 分页默认值
        $postData['page'] = isset($postData['page']) ? $postData['page'] : Constant::PAGING_DEFAULT_PAGE;
        $postData['limit'] = isset($postData['limit']) ? $postData['limit'] : Constant::PAGING_DEFAULT_LIMIT;
        list($start, $perpage) = page_limit($postData['page'], $postData['limit']);
        $conds = [
            'is_prize' => Constant::HAVE_PRIZE,
            'ac_id' => $postData['ac_id'],
            'uid' => $this->uid
        ];

        // 获取中奖列表数
        $total = $this->_record_service->count_by_conds($conds);
        // 获取多个活动详情
        $activity = $this->_activity_service->get_by_conds(['ac_id' => $postData['ac_id']]);
        // 如果有数据
        if (!empty($total)) {

            $fields = 'ac_id,lr_id,lp_name,remark,created,cover_id';
            $record_list = $this->_record_service->list_by_conds($conds, [$start, $perpage], ['lr_id' => 'DESC'], $fields);
            
            $status = empty($activity) ? 1 : 0;
            // 遍历中奖纪录
            foreach ($record_list as &$value) {
                // 统计是否被删除状态 如果被删除展示0否则展示1
                $value['status'] = $status;
                // 获取奖品图片地址
                $value['img_url'] = imgUrlReal($value['cover_id']);
            }
        }

        $this->_result = [
            'info_remark' => $activity['remark'],
            'page' => $postData['page'],
            'limit' => $postData['limit'],
            'total' => isset($total) ? intval($total) : 0,
            'list' => isset($record_list) ? $record_list : [],
        ];

        return true;
    }
}