CollectionController.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. $user_id = \Auth::guard('admin')->user()->id;
  29. $filter_fields = $request->except('_token');
  30. $isCreated = UserCompanyCollectionModel::where('user_id',$user_id)->first();
  31. if($isCreated){
  32. $isCreated->filter_fields = json_encode($filter_fields);
  33. $isCreated->save();
  34. }else{
  35. $data['user_id'] = $user_id;
  36. $data['filter_fields'] = json_encode($filter_fields);
  37. $data['name'] = '我的公海';
  38. UserCompanyCollectionModel::create($data);
  39. }
  40. return 200;
  41. }
  42. /***
  43. * 公海列表
  44. * @param Request $request
  45. * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\JsonResponse|\Illuminate\View\View
  46. * @throws \Throwable
  47. */
  48. public function index(Request $request)
  49. {
  50. $user_id = \Auth::guard('admin')->user()->id;
  51. $collection = UserCompanyCollectionModel::where('user_id', $user_id)->first();
  52. if (count($collection)) {
  53. $search = (array)json_decode($collection->filter_fields);
  54. $order = array();
  55. if (isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
  56. $order[$request['sort_field']] = $request['sort_field_by'];
  57. } else {
  58. $order['id'] = 'DESC';
  59. }
  60. if ($request->ajax()) {
  61. $keywords = $request->all();
  62. $search = array_merge(array_filter($keywords), array_filter($search));
  63. $list = $this->repository->searchCompany($search, $order, 20);
  64. $view = view('admin.company.collection.data', compact('list'))->render();
  65. return response()->json(['html' => $view]);
  66. }
  67. $list = $this->repository->searchCompany($search, $order, 20);
  68. $fields = (new CompanyInfoModel())->filterFields;
  69. return view('admin.company.collection.index', compact('list', 'fields'));
  70. } else {
  71. return '您暂未创建过公海!';
  72. }
  73. }
  74. }