| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | <?phpnamespace App\Http\Controllers\Api\mini;use App\Models\ProjectRole;use App\Models\ProjectUser;use Illuminate\Http\Request;use Illuminate\Support\Facades\Auth;class ProjectRoleController extends BaseController{    protected $model;    public function __construct()    {        $this->model = new ProjectRole();    }    public function create(Request $request)    {        if(empty($request->input('name'))) return $this->error(['msg' => '项目名称不能为空']);        if($item = $this->model->where('name', $request->input('name'))->first()) return $this->error(['msg' => '项目名称已存在']);        $res = $this->model->create([            'name' => $request->input('name')        ]);        if(!$res) return $this->error(['msg' => '创建失败']);        return $this->success(['msg' => '创建成功']);    }    public function get(Request $request)    {        $items = $this->model;        $tmp_items = collect(['name']);        foreach($tmp_items as $tmp_item) {            if($request->has($tmp_item) && !empty($request->input($tmp_item))) {                $items = $items->where($tmp_item, 'like', '%' . $request->input($tmp_item) . '%');            }        }        $items = $items->paginate();        foreach($items as $item) {            $item->date = substr($item->created_at, 0, 10);        }        return $this->success(['msg' => '创建成功', 'data' => $items->items()]);    }    public function getAll(Request $request)    {        $items = $this->model;        if($request->input('limit')) {            $items = $items->where('level', '<', 5);        }        $items = $items->get();        return $this->success(['msg' => '创建成功', 'data' => $items]);    }    public function getByExclude()    {        $top_role = Auth::guard('mini')->user()->getTopRole();        if($top_role && in_array($top_role->key, ['sub', 'admin'])) {            $items = $this->model->whereIn('key', ['work', 'machine', 'assist', 'manager'])->get();        } else {            $items = $this->model->whereIn('key', ['work', 'machine', 'assist'])->get();        }        return $this->success(['msg' => '创建成功', 'data' => $items]);    }    public function getRoleAndRights(Request $request)    {        $user = Auth::guard('mini')->user();        if (!$user || !$request->input('id')) return $this->success(['data' => null]);        $project_user = ProjectUser::where([            ['user_id', $user->id],            ['project_id', $request->input('id')]        ])->first();        if ($project_user) {            $project_role = ProjectRole::find($project_user->project_role_id);            if ($project_role) {                $project_role->rights = $project_role->getRights();                return $this->success(['msg' => '创建成功', 'data' => $project_role]);            }        }        return $this->success(['data' => null]);    }}
 |