UserController.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 App\Models\User;
  7. use Illuminate\Http\Request;
  8. use Illuminate\Support\Facades\Auth;
  9. use Illuminate\Support\Facades\Hash;
  10. use Illuminate\Support\Facades\Log;
  11. class UserController extends BaseController
  12. {
  13. protected $model;
  14. public function __construct()
  15. {
  16. $this->model = new User();
  17. }
  18. public function search(Request $request)
  19. {
  20. $items = $this->model->with('project_users');
  21. $tmp_items = collect(['keyword']);
  22. foreach($tmp_items as $tmp_item) {
  23. if($request->has($tmp_item) && !empty($request->input($tmp_item))) {
  24. // $items = $items->where('name', 'like', '%' . $request->input($tmp_item) . '%')->orWhere('phone', 'like', '%' . $request->input($tmp_item) . '%');
  25. $items = $items->where('name', '=', $request->input($tmp_item))->orWhere('phone', '=', $request->input($tmp_item));
  26. }
  27. }
  28. $select_items = collect(['id']);
  29. foreach($select_items as $tmp_item) {
  30. if($request->has($tmp_item) && !empty($request->input($tmp_item))) {
  31. $items = $items->where($tmp_item, '=', $request->input($tmp_item));
  32. }
  33. }
  34. $items = $items->limit(1)->get();
  35. foreach($items as $item) {
  36. $item->project = $item->projects->implode('name', ',');
  37. $item->project = $item->project ? $item->project : '暂未添加项目';
  38. foreach ($item->project_users as $project_user) {
  39. $project = Project::find($project_user->project_id);
  40. $project_user->project_name = $project ? $project->name : '';
  41. $role = ProjectRole::find($project_user->project_role_id);
  42. $project_user->role_name = $role ? $role->name : '';
  43. }
  44. }
  45. return $this->success(['msg' => '操作成功', 'data' => $items]);
  46. }
  47. public function update(Request $request)
  48. {
  49. $user = Auth::guard('mini')->user();
  50. $user->update($request->only('avatar', 'name', 'phone'));
  51. return $this->success(['data' => $user]);
  52. }
  53. public function changePassword(Request $request)
  54. {
  55. $user = Auth::guard('mini')->user();
  56. if(!$user) return $this->error(['msg' => '找不到用户']);
  57. if(Hash::check($request->input('new'), $user->password)) {
  58. $res = $user->update(['password' => bcrypt($user->password)]);
  59. if($res) return $this->success();
  60. }
  61. return $this->error(['msg' => '原密码错误']);
  62. }
  63. public function getTopRole()
  64. {
  65. $user = Auth::guard('mini')->user();
  66. $project_role = $user->getTopRole();
  67. return $this->success(['data' => $project_role]);
  68. }
  69. }