ProjectController.php 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Controllers\Api\mini;
  3. use App\Models\Project;
  4. use App\Models\ProjectRole;
  5. use App\Models\ProjectUser;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. class ProjectController extends BaseController
  9. {
  10. protected $model;
  11. public function __construct()
  12. {
  13. $this->model = new Project();
  14. }
  15. public function addUser(Request $request)
  16. {
  17. $item = ProjectUser::where([
  18. 'project_id' => $request->input('project_id'),
  19. 'user_id' => $request->input('user_id'),
  20. // 'project_role_id' => $request->input('project_role_id')
  21. ])->first();
  22. if($item) return $this->error('该成员已添加');
  23. $res = ProjectUser::create([
  24. 'project_id' => $request->input('project_id'),
  25. 'user_id' => $request->input('user_id'),
  26. 'project_role_id' => $request->input('project_role_id')
  27. ]);
  28. if(!$res) return $this->error('添加失败');
  29. return $this->success('操作成功');
  30. }
  31. public function create(Request $request)
  32. {
  33. if(empty($request->input('name'))) return $this->error(['msg' => '项目名称不能为空']);
  34. if($item = $this->model->where('name', $request->input('name'))->first()) return $this->error(['msg' => '项目名称已存在']);
  35. $res = $this->model->create([
  36. 'name' => $request->input('name')
  37. ]);
  38. if(!$res) return $this->error(['msg' => '创建失败']);
  39. return $this->success(['msg' => '创建成功']);
  40. }
  41. public function get(Request $request)
  42. {
  43. $items = $this->model;
  44. $tmp_items = collect(['name']);
  45. foreach($tmp_items as $tmp_item) {
  46. if($request->has($tmp_item) && !empty($request->input($tmp_item))) {
  47. $items = $items->where($tmp_item, 'like', '%' . $request->input($tmp_item) . '%');
  48. }
  49. }
  50. $items = $items->paginate();
  51. foreach($items as $item) {
  52. $item->date = substr($item->created_at, 0, 10);
  53. $item->manager = $item->getManager();
  54. }
  55. return $this->success(['msg' => '创建成功', 'data' => $items->items()]);
  56. }
  57. public function getAll(Request $request)
  58. {
  59. $items = $this->model->get();
  60. return $this->success(['msg' => '创建成功', 'data' => $items]);
  61. }
  62. public function detail(Request $request)
  63. {
  64. $project = $this->model->find($request->input('id'));
  65. $project->role = $project->getUserProjectRole();
  66. return $this->success(['msg' => '创建成功', 'data' => $project]);
  67. }
  68. }