<?php

namespace App\Admin\Controllers\Content;

use App\Http\Controllers\Controller;
use App\Models\Recuperate;
use App\Models\RecuperateApply;
use App\Models\RecuperateLog;
use App\Models\RecuperateTime;
use Encore\Admin\Controllers\HasResourceActions;
use Encore\Admin\Grid;
use Encore\Admin\Layout\Content;
use Illuminate\Http\Request;
use Encore\Admin\Facades\Admin;
use App\Admin\Extensions\Form\ValidateForm;

class RecuperateTimeController extends Controller
{
    use HasResourceActions;

    /**
     * Index interface.
     *
     * @param Content $content
     * @return Content
     */
    public function index(Content $content)
    {
        return $content
            ->header('会员列表')
            ->description(' ')
            ->body(view('admin.content.recuperate_apply')->with(['grid' => $this->grid()]));
    }

    public function edit($id, Content $content)
    {
        return $content
            ->header('会员列表')
            ->description('金额修改')
           ->body($this->editForm($id)->edit($id));

    }

    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        $grid = new Grid(new RecuperateTime());

        $grid->model()->orderBy('year', 'DESC');
        $grid->column('memberinfo.realname', '姓名')->display(function ($realname) {
            return '<a href="'.route('recuperate.applypersonal',['uid'=>$this->uid]).'" target="_blank">'.$realname.'</a>';
        })->width(300);

/*        $grid->title('招聘会标题')->display(function ($title) {
            return '<a href="'.route('jobfair.show.com',$this->id).'" target="_blank">'.$title.'</a>';
        })->width(300);*/
        $grid->column('memberinfo.id_card','身份证号');
       $grid->column('memberinfo.phone','联系电话');
        $grid->year('年份');
        $grid->price('金额');
        $grid->created_at('创建时间');
        //审核功能
        $grid->actions(function ($actions) {
            if (Admin::user()->can('content_recuperate_time_list_edit')) {
                $actions->disableEdit(false);
            }


        });

        $grid->filter(function ($filter) {
            $filter->group('搜索', function ($group) {
                $group->where('姓名', function ($query) {
                    $query->whereHas('memberinfo',function ($query){
                        $query->where('realname', 'like','%'.request()->搜索.'%');
                    });
                });

                $group->where('身份证号', function ($query) {
                    $query->whereHas('memberinfo',function ($query){
                        $query->where('id_card', 'like','%'.request()->搜索.'%');
                    });
                });
                $group->where('联系电话',function ($query){
                    $query->whereHas('memberinfo',function ($query){
                        $query->where('phone', 'like','%'.request()->搜索.'%');
                    });
                });

            })->placeholder('请输入关键字');
        });
        return $grid;
    }


    protected function editForm($id)
    {
        $form = new ValidateForm(new RecuperateTime());
        $form->text('memberinfo.realname', '姓名')->readonly();
        $form->text('memberinfo.id_card', '身份证')->readonly();
        $form->text('memberinfo.phone', '联系方式')->readonly();
        $form->text('price', '金额')->setMustMark();
        $form->hidden('id');
        return $form;
    }

    public function update($id, Request $request)
    {
        $request->validate([
            'price' => 'required',

        ],
            [
                'price' => '请填写金额',

            ]);
        $res = $this->editForm($id)->update($id);
        if ($res) {
            $stu = RecuperateTime::where('id', $id)->select('uid')->first();
            $auditData = array(
                'type' => 3,
                'admin_id' => \Encore\Admin\Facades\Admin::user()->id,
                'sid' => $stu->uid,
                'content' =>$request->price
            );
            RecuperateLog::create($auditData);
        }
        return $res;
    }
}