CollectionController.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wesley
  5. * Date: 2018/12/12
  6. * Time: 上午9:48
  7. */
  8. namespace App\Http\Controllers\Admin\Company;
  9. use App\Http\Controllers\Admin\Controller;
  10. use App\Models\CompanyInfoModel;
  11. use App\Models\UserCompanyCollectionModel;
  12. use App\Repositories\Company\InfoRepository;
  13. use Illuminate\Http\Request;
  14. class CollectionController extends Controller
  15. {
  16. private $repository;
  17. public function __construct(InfoRepository $repository)
  18. {
  19. if (!$this->repository) $this->repository = $repository;
  20. }
  21. /***
  22. * 创建公海
  23. * @param Request $request
  24. * @return int
  25. */
  26. public function create(Request $request)
  27. {
  28. $filter_fields = $request->except('_token');
  29. $data['user_id'] = \Auth::guard('admin')->user()->id;
  30. $data['filter_fields'] = json_encode($filter_fields);
  31. $data['name'] = '我的公海';
  32. UserCompanyCollectionModel::create($data);
  33. return 200;
  34. }
  35. /***
  36. * 公海列表
  37. * @param Request $request
  38. * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
  39. * @throws \Throwable
  40. */
  41. public function index(Request $request)
  42. {
  43. $user_id = \Auth::guard('admin')->user()->id;
  44. $collection = UserCompanyCollectionModel::where('user_id', $user_id)->first();
  45. if (count($collection)) {
  46. $search = (array)json_decode($collection->filter_fields);
  47. $order = array();
  48. if (isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
  49. $order[$request['sort_field']] = $request['sort_field_by'];
  50. } else {
  51. $order['id'] = 'DESC';
  52. }
  53. if ($request->ajax()) {
  54. $keywords = $request->all();
  55. $search = array_merge(array_filter($keywords), array_filter($search));
  56. $list = $this->repository->searchCompany($search, $order, 20);
  57. $view = view('admin.company.collection.data', compact('list'))->render();
  58. return response()->json(['html' => $view]);
  59. }
  60. $list = $this->repository->searchCompany($search, $order, 20);
  61. $fields = (new CompanyInfoModel())->filterFields;
  62. return view('admin.company.collection.index', compact('list', 'fields'));
  63. } else {
  64. return '您暂未创建过公海!';
  65. }
  66. }
  67. }