123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- <?php
- namespace App\Http\Controllers\Api\mini;
- use App\Models\Project;
- use App\Models\ProjectUser;
- use Illuminate\Http\Request;
- use Illuminate\Database\Eloquent\Builder;
- class ProjectController extends BaseController
- {
- protected $model;
- public function __construct()
- {
- $this->model = new Project();
- }
- public function addUser(Request $request)
- {
- $item = ProjectUser::where([
- 'project_id' => $request->input('project_id'),
- 'user_id' => $request->input('user_id'),
- // 'project_role_id' => $request->input('project_role_id')
- ])->first();
- if($item) return $this->error('该成员已添加');
- $res = ProjectUser::create([
- 'project_id' => $request->input('project_id'),
- 'user_id' => $request->input('user_id'),
- 'project_role_id' => $request->input('project_role_id')
- ]);
- if(!$res) return $this->error('添加失败');
- return $this->success('操作成功');
- }
- public function updateUser(Request $request)
- {
- $res = ProjectUser::where('id', '=', $request->input('id'))->update([
- 'project_id' => $request->input('project_id'),
- 'user_id' => $request->input('user_id'),
- 'project_role_id' => $request->input('project_role_id')
- ]);
- if(!$res) return $this->error('操作失败');
- return $this->success('操作成功');
- }
- 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);
- $item->manager = $item->getManager();
- }
- return $this->success(['msg' => '创建成功', 'data' => $items->items()]);
- }
- public function getAll(Request $request)
- {
- $items = $this->model->get();
- return $this->success(['msg' => '创建成功', 'data' => $items]);
- }
- public function detail(Request $request)
- {
- $project = $this->model->find($request->input('id'));
- $project->role = $project->getUserProjectRole();
- return $this->success(['msg' => '操作成功', 'data' => $project]);
- }
- public function getUsers(Request $request)
- {
- // $list = ProjectUser::where('project_id', $request->input('id'))->join('users', 'project_users.user_id', '=', 'users.id')->join('project_roles', 'project_users.project_role_id', '=', 'project_roles.id')->select('project_users.*', 'users.avatar', 'users.name as user', 'project_roles.name as role_name');
- $list = ProjectUser::where('project_id', $request->input('id'))->with(['projectRole', 'user']);
- if($request->has('keyword')) {
- $keyword = '%' . $request->input('keyword') . '%';
- $list = $list->whereHas('user', function (Builder $query) use($keyword) {
- $query->where('phone', 'like', $keyword)->orWhere('name', 'like', $keyword);
- });
- }
- $list = $list->get();
- return $this->success(['msg' => '操作成功', 'data' => $list]);
- }
- public function deleteUser(Request $request)
- {
- $res = ProjectUser::where('id', '=', $request->input('id'))->delete();
- if($res) return $this->success(['msg' => '操作成功']);
- return $this->error();
- }
- }
|