| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 | <?phpnamespace App\Admin\Controllers\Company;use App\Http\Controllers\Controller;use App\Models\Setmeal;use Encore\Admin\Auth\Permission;use Encore\Admin\Controllers\HasResourceActions;use Encore\Admin\Facades\Admin;use Encore\Admin\Form;use Encore\Admin\Grid;use Encore\Admin\Layout\Content;use Encore\Admin\Show;use Illuminate\Support\Facades\Cache;use Illuminate\Validation\Rule;class SetmealController extends Controller{    use HasResourceActions;    /**     * Index interface.     *     * @param Content $content     * @return Content     */    public function index(Content $content)    {        Permission::check('setmeal_manager_category');        return $content            ->header('套餐分类')            ->description('列表')            ->body($this->grid());    }    /**     * Show interface.     *     * @param mixed $id     * @param Content $content     * @return Content     */    public function show($id, Content $content)    {        return $content            ->header('会员套餐')            ->description('详情')            ->body($this->detail($id));    }    /**     * Edit interface.     *     * @param mixed $id     * @param Content $content     * @return Content     */    public function edit($id, Content $content)    {        return $content            ->header('套餐分类')            ->description('编辑')            ->body($this->editform($id)->edit($id));    }    /**     * Create interface.     *     * @param Content $content     * @return Content     */    public function create(Content $content)    {        return $content            ->header('套餐分类')            ->description('新增')            ->body($this->form());    }    /**     * Make a grid builder.     *     * @return Grid     */    protected function grid()    {        Permission::check('setmeal_manager_category');        $grid = new Grid(new Setmeal);        $grid->id('ID');        $grid->setmeal_name('名称');        $grid->display('会员显示')->display(function ($display) {            return $display==1?"显示":'不显示';        });        $grid->apply('允许申请')->display(function ($apply) {            return $apply==1?"允许":'不允许';        });        $grid->expense('服务价')->display(function ($expense) {            return $expense==0?"免费":$expense;        });        $grid->days('期限')->display(function ($days) {            return $days==0?"不限制":$days;        });        if (Admin::user()->can('setmeal_manager_category_add')) {            $grid->disableCreateButton(false);        }        $grid->show_order('排序');        $grid->disableFilter();        $grid->actions(function ($actions) {            if (Admin::user()->can('setmeal_manager_category_edit')) {                $actions->disableEdit(false);            }            if ($actions->row['id'] != 1) {                if (Admin::user()->can('setmeal_manager_category_delete')) {                    $actions->disableDelete(false);                }            }        });        return $grid;    }    /**     * Make a show builder.     *     * @param mixed $id     * @return Show     */    protected function detail($id)    {        $show = new Show(Setmeal::findOrFail($id));        $show->setmeal_name('名称');        $show->display('会员显示')->as(function ($display) {            return $display==1?"显示":'不显示';        });        $show->apply('会员显示')->as(function ($apply) {            return $apply==1?"允许":'不允许';        });        $show->expense('服务价')->as(function ($expense) {            return $expense==0?"免费":$expense;        });        $show->days('期限')->as(function ($days) {            return $days==0?"不限制":$days;        });        $show->jobs_meanwhile('职位最大并发数');        $show->refresh_jobs_free('每天免费刷新职位次数');        $show->download_resume('下载简历');        $show->jobfair_num('招聘会场次');        $show->download_resume_max('每天下载简历数上限');        $show->discount_download_resume('下载简历增值包折扣');        $show->discount_sms('短信增值包折扣');        $show->discount_stick('职位置顶折扣');        $show->discount_emergency('职位紧急折扣');        $show->discount_tpl('企业模板折扣');        $show->discount_auto_refresh_jobs('职位预约刷新折扣');        $show->show_order('显示顺序');        $show->set_sms('赠送短信条数');        $show->set_points('赠送积分');        $show->show_apply_contact('收到简历的联系方式免费查看');        $show->apply('允许会员申请此服务');        $show->setmeal_img('修改套餐图标(png格式)')->image();        $show->added('其他说明)');        return $show;    }    /**     * Make a form builder.     *     * @return Form     */    protected function form()    {        Permission::check('setmeal_manager_category_add');        $form = new Form(new Setmeal);        $form->display('id');        $form->text('setmeal_name', '套餐名称')->rules(['required','unique:setmeals'], ['required'=>'请填写套餐名称','unique' => '套餐名称已经存在']);        $form->number('days', '有效时间')->min(0)->rules('required', ['required'=>'请填写有效时间']);        $form->number('expense', '价格')->min(0)->rules('required', ['required'=>'请填写套餐价格']);        $form->number('jobs_meanwhile', '职位最大发布数')->min(0)->rules('required', ['required'=>'请填写职位最大发布数']);        $form->number('refresh_jobs_free', '每天免费刷新职位次数')->min(0)->rules('required', ['required'=>'请填写每天免费刷新职位数']);        $form->number('download_resume', '下载简历')->min(0)->rules('required', ['required'=>'请填写下载简历数']);        $form->number('jobfair_num', '招聘会场次')->min(0)->rules('required', ['required'=>'请填写招聘会场次']);        $form->number('download_resume_max', '每天下载简历数上限')->min(0)->rules('required', ['required'=>'请填写每天下载简历数上限']);        $form->number('discount_download_resume', '下载简历增值包折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写下载简历增值包折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_sms', '短信增值包折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写短信增值包折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_stick', '职位置顶折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写职位置顶折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_emergency', '职位紧急折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写职位紧急折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_tpl', '企业模板折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写企业模板折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_auto_refresh_jobs', '职位预约刷新折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写职位预约刷新折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('show_order', '显示顺序');        $form->number('set_sms', '赠送短信条数')->rules('required', ['required'=>'请填写赠送短信条数']);        $form->number('set_points', '赠送积分')->rules('required', ['required'=>'请填写赠送积分']);        $form->switch('show_apply_contact', '收到简历的联系方式免费查看');        $form->switch('apply', '允许会员申请此服务');        $form->switch('display', '是否显示');        $form->image('setmeal_img', '修改套餐图标(png格式)')->removable()->rules('required', ['required'=>'请上传图标'])->setMustMark();        $form->text('added', '其他说明)');        return $form;    }    protected function editform($id)    {        Permission::check('setmeal_manager_category_edit');        $form = new Form(new Setmeal);        $form->display('id');        $form->text('setmeal_name', '套餐名称')->rules(['required',Rule::unique('setmeals')->ignore($id)], ['required'=>'请填写套餐名称','unique' => '套餐名称已经存在']);        //2019.7.1 杨亚倩  更改免费也有到期时间        $form->number('days', '有效时间')->min(0)->rules('required', ['required' => '请填写有效时间'])->help('0表示无限制');        $form->number('expense', '价格')->min(0)->rules('required', ['required'=>'请填写套餐价格']);        $form->number('jobs_meanwhile', '职位最大发布数')->min(0)->rules('required', ['required'=>'请填写职位最大发布数']);        $form->number('refresh_jobs_free', '每天免费刷新职位次数')->min(0)->rules('required', ['required'=>'请填写每天免费刷新职位数']);        $form->number('download_resume', '下载简历')->min(0)->rules('required', ['required'=>'请填写下载简历数']);        $form->number('jobfair_num', '招聘会场次')->min(0)->rules('required', ['required'=>'请填写招聘会场次']);        $form->number('download_resume_max', '每天下载简历数上限')->min(0)->rules('required', ['required'=>'请填写每天下载简历数上限']);        $form->number('discount_download_resume', '下载简历增值包折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写下载简历增值包折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_sms', '短信增值包折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写短信增值包折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_stick', '职位置顶折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写职位置顶折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_emergency', '职位紧急折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写职位紧急折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_tpl', '企业模板折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写企业模板折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('discount_auto_refresh_jobs', '职位预约刷新折扣')->min(0)->max(9)->rules('required', ['required'=>'请填写职位预约刷新折扣'])->help('请填写0~9之间的数字,0表示无折扣');        $form->number('show_order', '显示顺序');        $form->number('set_sms', '赠送短信条数')->rules('required', ['required'=>'请填写赠送短信条数']);        $form->number('set_points', '赠送积分')->rules('required', ['required'=>'请填写赠送积分']);        $form->switch('show_apply_contact', '收到简历的联系方式免费查看');        $form->switch('apply', '允许会员申请此服务');        $form->switch('display', '是否显示');        $form->image('setmeal_img', '修改套餐图标(png格式)')->removable()->rules('required', ['required'=>'请上传图标'])->setMustMark();        $form->text('added', '其他说明)');               $form->saved(function (){            $redis = Cache::getRedis();            $keys = $redis->keys("*aix_cache:setmeals*");            foreach ($keys as $key) {                $redis->del($key);            }        });        return $form;    }    public function update($id)    {        if (request()->has(Form\Field::FILE_DELETE_FLAG)) {            return $this->editForm($id)->update($id);        }        return $this->editform($id)->update($id);    }}
 |