'活动名称', 'start_time_desc' => '开始时间', 'end_time_desc' => '结束时间', 'join_num' => '抽奖人数', 'win_num' => '中奖人数', 'status_desc' => '活动状态', 'create_time' => '创建时间', ]; } public function setFileName(): string { return '幸运抽奖活动列表'; } public function extend() { $all = LuckyDraw::count(); $wait = LuckyDraw::where('status', LuckyDrawEnum::WAIT)->count(); $ing = LuckyDraw::where('status', LuckyDrawEnum::ING)->count(); $end = LuckyDraw::where('status', LuckyDrawEnum::END)->count(); return [ 'all' => $all, 'wait' => $wait, 'ing' => $ing, 'end' => $end, ]; } /** * @notes 附加搜索条件 * @author Tab * @date 2021/11/25 17:36 */ public function setSearch() { if (isset($this->params['status']) && trim($this->params['status']) != '') { $this->searchWhere[] = ['status', '=', $this->params['status']]; } if (isset($this->params['name']) && !empty($this->params['name'])) { $this->searchWhere[] = ['name', 'like', '%' . trim($this->params['name']) . '%']; } if (isset($this->params['start_time']) && isset($this->params['end_time']) && !empty($this->params['start_time']) && !empty($this->params['end_time'])) { $this->searchWhere[] = ['start_time', '<=', strtotime($this->params['start_time'])]; $this->searchWhere[] = ['end_time', '>=', strtotime($this->params['end_time'])]; } } public function lists(): array { $this->setSearch(); $field = [ 'id', 'name', 'start_time', 'end_time', 'status', 'create_time', ]; $lists = LuckyDraw::field($field) ->append(['start_time_desc', 'end_time_desc','join_num', 'win_num', 'status_desc']) ->where($this->searchWhere) ->order('id', 'desc') ->limit($this->limitOffset, $this->limitLength) ->select() ->toArray(); return $lists; } public function count(): int { $this->setSearch(); $count = LuckyDraw::where($this->searchWhere)->count(); return $count; } }