ProjectRoleController.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace App\Http\Controllers\Api\mini;
  3. use App\Models\ProjectRole;
  4. use App\Models\ProjectUser;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\Auth;
  7. class ProjectRoleController extends BaseController
  8. {
  9. protected $model;
  10. public function __construct()
  11. {
  12. $this->model = new ProjectRole();
  13. }
  14. public function create(Request $request)
  15. {
  16. if(empty($request->input('name'))) return $this->error(['msg' => '项目名称不能为空']);
  17. if($item = $this->model->where('name', $request->input('name'))->first()) return $this->error(['msg' => '项目名称已存在']);
  18. $res = $this->model->create([
  19. 'name' => $request->input('name')
  20. ]);
  21. if(!$res) return $this->error(['msg' => '创建失败']);
  22. return $this->success(['msg' => '创建成功']);
  23. }
  24. public function get(Request $request)
  25. {
  26. $items = $this->model;
  27. $tmp_items = collect(['name']);
  28. foreach($tmp_items as $tmp_item) {
  29. if($request->has($tmp_item) && !empty($request->input($tmp_item))) {
  30. $items = $items->where($tmp_item, 'like', '%' . $request->input($tmp_item) . '%');
  31. }
  32. }
  33. $items = $items->paginate();
  34. foreach($items as $item) {
  35. $item->date = substr($item->created_at, 0, 10);
  36. }
  37. return $this->success(['msg' => '创建成功', 'data' => $items->items()]);
  38. }
  39. public function getAll(Request $request)
  40. {
  41. $items = $this->model;
  42. if($request->input('limit')) {
  43. $items = $items->where('level', '<', 5);
  44. }
  45. $items = $items->get();
  46. return $this->success(['msg' => '创建成功', 'data' => $items]);
  47. }
  48. public function getByExclude()
  49. {
  50. $top_role = Auth::guard('mini')->user()->getTopRole();
  51. if($top_role && in_array($top_role->key, ['sub', 'admin'])) {
  52. $items = $this->model->whereIn('key', ['work', 'machine', 'assist', 'manager'])->get();
  53. } else {
  54. $items = $this->model->whereIn('key', ['work', 'machine', 'assist'])->get();
  55. }
  56. return $this->success(['msg' => '创建成功', 'data' => $items]);
  57. }
  58. public function getRoleAndRights(Request $request)
  59. {
  60. $user = Auth::guard('mini')->user();
  61. if (!$user || !$request->input('id')) return $this->success(['data' => null]);
  62. $project_user = ProjectUser::where([
  63. ['user_id', $user->id],
  64. ['project_id', $request->input('id')]
  65. ])->first();
  66. if ($project_user) {
  67. $project_role = ProjectRole::find($project_user->project_role_id);
  68. if ($project_role) {
  69. $project_role->rights = $project_role->getRights();
  70. return $this->success(['msg' => '创建成功', 'data' => $project_role]);
  71. }
  72. }
  73. return $this->success(['data' => null]);
  74. }
  75. }