100 lines
4.8 KiB
PHP
100 lines
4.8 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Models\FruitHistory;
|
|
use App\Models\Participant;
|
|
use App\Utils\Messenger;
|
|
use App\Utils\Http;
|
|
use App\Events\NoticeServer;
|
|
use Illuminate\Http\Request;
|
|
use App\Repositories\Eloquent\SmsRepository as Sms;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Contracts\UserContract;
|
|
use App\Exports\ParticipantExport;
|
|
|
|
|
|
class ParticipantController extends Controller
|
|
{
|
|
protected $sms;
|
|
protected $userCon;
|
|
public function __construct(Sms $sms, UserContract $userCon){
|
|
$this->sms = $sms;
|
|
$this->userCon = $userCon;
|
|
}
|
|
|
|
public function ParticipantList(Request $request){
|
|
$participant = Participant::select('id', 'mobile', 'nickname', 'subscribe','avatar', 'sex', 'fruit_num', 'chance', 'is_helper', 'is_pick_up', 'is_final_pick_up', 'updated_at');
|
|
if($request->has('fruit_num') && !empty($request->fruit_num)){
|
|
if($request->fruit_num > 9) {
|
|
$participant = $participant->where('fruit_num', '>=', 9);
|
|
}else{
|
|
$participant = $participant->where('fruit_num', $request->fruit_num);
|
|
}
|
|
}
|
|
if($request->has('keyword') && !empty($request->keyword)){
|
|
$participant = $participant->where('nickname', 'like', '%'.$request->keyword.'%')->orWhere('mobile', 'like', '%'.$request->keyword.'%');
|
|
}
|
|
if($request->has('subscribe') && is_numeric($request->subscribe)){
|
|
$participant = $participant->where('subscribe',$request->subscribe);
|
|
}
|
|
if($request->has('is_pick_up') && is_numeric($request->is_pick_up)){
|
|
$participant = $participant->where('is_pick_up',$request->is_pick_up);
|
|
}
|
|
if($request->has('start_time') && !empty($request->start_time) & $request->has('end_time') && !empty($request->end_time)){
|
|
$participant = $participant->whereBetween('updated_at', [$request->start_time, $request->end_time]);
|
|
}
|
|
$list = $participant->orderBy('fruit_num', 'desc')->orderBy('updated_at', 'desc')->paginate();
|
|
return $this->success('ok', $list);
|
|
}
|
|
|
|
public function ParticipantListExcel(Request $request){
|
|
$participant = Participant::select('mobile', 'nickname', 'subscribe','avatar', 'sex', 'fruit_num', 'chance', 'is_pick_up', 'is_final_pick_up');
|
|
if($request->has('fruit_num') && !empty($request->fruit_num)){
|
|
if($request->fruit_num > 9) {
|
|
$participant = $participant->where('fruit_num', '>=', 9);
|
|
}else{
|
|
$participant = $participant->where('fruit_num', 9);
|
|
}
|
|
}
|
|
if($request->has('keyword') && !empty($request->keyword)){
|
|
$participant = $participant->where('nickname', 'like', '%'.$request->keyword.'%');
|
|
}
|
|
if($request->has('subscribe') && is_numeric($request->subscribe)){
|
|
$participant = $participant->where('subscribe',$request->subscribe);
|
|
}
|
|
if($request->has('is_pick_up') && is_numeric($request->is_pick_up)){
|
|
$participant = $participant->where('is_pick_up',$request->is_pick_up);
|
|
}
|
|
if($request->has('start_time') && !empty($request->start_time) & $request->has('end_time') && !empty($request->end_time)){
|
|
$participant = $participant->whereBetween('updated_at', [$request->start_time, $request->end_time]);
|
|
}
|
|
$list = $participant->orderBy('updated_at', 'desc')->orderBy('fruit_num', 'desc')->get();
|
|
$new_data = [];
|
|
foreach ($list as $item) {
|
|
$data['nickname'] = $item->nickname;
|
|
$data['sex'] = $item->sex == 1 ? '男' : '女';
|
|
$data['fruit_num'] = $item->fruit_num;
|
|
$data['chance'] = $item->chance;
|
|
$data['subscribe'] = $item->subscribe ? '已关注' : '未关注';
|
|
$data['is_pick_up'] = $item->is_pick_up ? '已领取' : '未领取';
|
|
$data['is_final_pick_up'] = $item->is_final_pick_up ? '已领取' : '未领取';
|
|
$data['mobile'] = $item->mobile;
|
|
}
|
|
$new_data[] = $data;
|
|
return \Excel::download(new ParticipantExport($new_data), 'participant.xlsx');
|
|
}
|
|
|
|
public function ShareList(Request $request){
|
|
if(!$request->has('id') || empty($request->id)){
|
|
return $this->failure('请输入id');
|
|
}
|
|
$participant = Participant::withCount('participant_share')->find($request->id);
|
|
if(empty($participant)){
|
|
return $this->failure('用户信息不存在');
|
|
}
|
|
$list = FruitHistory::has('participant_helper')->has('participant_share')->with('participant_helper:id,nickname,avatar,sex,subscribe')->with('participant_share:id,nickname,sex')->where('participant_id', $request->id)->paginate();
|
|
return $this->success('ok', ['participant'=>$participant, 'list'=>$list]);
|
|
}
|
|
}
|