Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

semour / semour_admin

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
BlameHistoryPermalink
Switch branch/tag
  • semour_admin
  • app
  • Admin
  • Controllers
  • UserController.php
  • 宁成龙's avatar
    优化客户列表 · 6b80ce3e
    宁成龙 committed 2 years ago
    6b80ce3e
UserController.php 4.16 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
<?php

namespace App\Admin\Controllers;

use App\Admin\Metrics\Examples\Tickets;
use App\Admin\Renderable\CreateUser;
use App\Admin\Renderable\UserDetail;
use App\Admin\Repositories\User;
use App\Admin\Repositories\UserAddress;
use App\Admin\Service\UserService;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Http\Controllers\Dashboard;
use Dcat\Admin\Layout\Column;
use Dcat\Admin\Layout\Content;
use Dcat\Admin\Layout\Row;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;
use Illuminate\Support\Facades\Validator;
use Symfony\Component\HttpFoundation\Response;

class UserController extends AdminController
{
    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        return Grid::make(new User(), function (Grid $grid) {
            $grid->showFilter();
            $grid->disableFilterButton();
            $grid->disableRefreshButton();
            $grid->disableBatchDelete();
//            $grid->disableCreateButton();
            $grid->model()->orderBy("id", "desc");
            UserService::userListListField($grid);
            UserService::userListTool($grid);
            UserService::userListActions($grid);
            UserService::userListFilter($grid);
        });
    }

    /**
     * Make a show builder.
     *
     * @param mixed $id
     *
     * @return Show
     */
    protected function detail($id)
    {
        $address_list = (\App\Admin\Renderable\UserAddress::make(["key" => $id])->render());
        return UserDetail::make(["key" => $id])->render() . $address_list;
    }


    /**
     * Make a show builder.
     *
     * @param mixed $id
     *
     * @return Show
     */
    public function create(Content $content)
    {
        return $content->body(CreateUser::make()->render());
    }


    /**
     * Store a newly created resource in storage.
     *
     * @return mixed
     */
    public function store()
    {
        try {
            $data = request()->all();
            $params = [
                'company_name'       => $data['company_name'],
                'user_sn'            => $data['user_sn'],
                'first_name'         => $data['first_name'],
                'last_name'          => $data['last_name'],
                'phone'              => $data['phone'],
                'email'              => $data['email'],
                'account_properties' => $data['account_properties'],
                'remark'             => $data['remark'],
                'user_address_list'  => $data['user_address_list'] ?? [],
            ];

            $validator = Validator::make($params, [
                'company_name'       => 'required',
                'first_name'         => 'required',
                'last_name'          => 'required',
                'phone'              => 'required',
                'email'              => 'required',
                'account_properties' => 'required',
//                'user_address_list' => 'required',
//                'user_address_list.first_name'     => 'required',
//                'user_address_list.last_name'      => 'required',
//                'user_address_list.email'          => 'required',
//                'user_address_list.phone'          => 'required',
//                'user_address_list.country'        => 'required',
//                'user_address_list.city'           => 'required',
//                'user_address_list.post_code'      => 'required',
//                'user_address_list.detail_address' => 'required',
//                'user_address_list.is_default'     => 'required',
            ]);
            if ($validator->fails()) {
                $error = $validator->errors()->first();
                throw new \Exception($error);
            }
            UserService::createUserAndAddress($params);
        } catch (\Throwable $throwable) {
//            var_dump((string)$throwable);
            return Form::make()->response()
                    ->error(trans('admin.save_failed'))
                    ->withExceptionIf($throwable->getMessage(), $throwable);
        }
        $url = admin_url("/users");
        return Form::make()->response()->success(admin_trans("succeeded"))->redirect($url);
    }


}