<?php

namespace app\activitymanage\controller;

use app\activity\model\ActivityJoinModel;
use app\activity\model\ActivityModel;
use cmf\controller\AdminBaseController;

class AdminActivityJoinManageController extends AdminBaseController
{
    /**
     * 活动列表
     */
    public function index()
    {
        $param = $this->request->param();

        //搜索条件
        $where          = [];
        if (!empty($param['keyword'])) {
            $where[] = ['a.title', 'like', "%{$param['keyword']}%"];
        }
        if (!empty($param['activity_id'])) {
            $where[] = ['aj.activity_id', '=', $param['activity_id']];
        }
        if (isset($param['status']) && ($param['status'] === '0' || $param['status'] > 0)) {
            $where[] = ['aj.status', '=', $param['status']];
        }
        $activity = ActivityJoinModel::alias('aj')
            ->leftJoin('activity a', 'aj.activity_id = a.id')
            ->leftJoin('user u', 'aj.user_id = u.id')
            ->field('aj.*,a.title,u.user_name,u.mobile')
            ->where($where)
            ->order('create_time', 'DESC')
            ->paginate(10, false, ['query' => $param]);

        $this->assign('keyword', isset($param['keyword']) ? $param['keyword'] : '');
        $this->assign('activity_id', isset($param['activity_id']) ? $param['activity_id'] : '');
        $this->assign('status', isset($param['status']) ? $param['status'] : '');
        $this->assign('activity', $activity->items());
        $this->assign('page', $activity->render());

        return $this->fetch();
    }

    public function export()
    {
        $param = $this->request->param();

        //搜索条件
        $where          = [];
        if (!empty($param['ids'])) {
            $where[] = ['aj.id', 'in', $param['ids']];
        } else {
            if (!empty($param['keyword'])) {
                $where[] = ['a.title', 'like', "%{$param['keyword']}%"];
            }
            if (!empty($param['activity_id'])) {
                $where[] = ['aj.activity_id', '=', $param['activity_id']];
            }
            if (isset($param['status']) && ($param['status'] === '0' || $param['status'] > 0)) {
                $where[] = ['aj.status', '=', $param['status']];
            }
        }

        //获取数据
        $activity = ActivityJoinModel::alias('aj')
            ->leftJoin('activity a', 'aj.activity_id = a.id')
            ->leftJoin('user u', 'aj.user_id = u.id')
            ->field('aj.*,a.title,u.user_name,u.mobile')
            ->where($where)
            ->order('create_time', 'DESC')
            ->select();

        //表头
        $header = [
            'id'          => 'id',
            'activity_id' => '活动id',
            'title'       => '活动标题',
            'user_id'     => '用户id',
            'user_name'   => '用户姓名',
            'mobile'      => '用户电话',
            'status'      => '状态',
            'create_time' => '报名时间',
        ];

        //表格内容
        foreach ($activity as $v) {
            $v['create_time'] = date('Y-m-d H:i', $v['create_time']);
            $v['status']      = $v['status'] == 0 ? '未签到' : '已签到';
        }
        export_excel_data($header, $activity, '报名列表', ['mobile','create_time']);
    }
}