InfoController.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. /**
  3. * 挖掘线索
  4. * @author system
  5. * @version 1.0
  6. * @date 2018-11-19 08:23:08
  7. *
  8. */
  9. namespace App\Http\Controllers\Admin\Company;
  10. use App\Http\Controllers\Admin\Controller;
  11. use App\Imports\CompanyInfoImport;
  12. use App\Models\CompanyContactsModel;
  13. use App\Models\CompanyInfoModel;
  14. use App\Models\CompanyJobsModel;
  15. use App\Models\CompanySemsModel;
  16. use App\Models\UserCompanyCollectionModel;
  17. use Illuminate\Http\Request;
  18. use App\Repositories\Company\InfoRepository;
  19. use Maatwebsite\Excel\Facades\Excel;
  20. use \PhpOffice\PhpSpreadsheet\IOFactory;
  21. class InfoController extends Controller
  22. {
  23. private $repository;
  24. public function __construct(InfoRepository $repository)
  25. {
  26. if (!$this->repository) $this->repository = $repository;
  27. }
  28. /*
  29. * 搜索页视图
  30. * */
  31. public function search()
  32. {
  33. $fields = (new CompanyInfoModel())->filterFields;
  34. return view('admin.company.info.search', compact('fields'));
  35. }
  36. /**
  37. * 列表页
  38. */
  39. function index(Request $request)
  40. {
  41. $search = $request->all();
  42. $order = array();
  43. if (isset($request['sort_field']) && $request['sort_field'] && isset($request['sort_field_by'])) {
  44. $order[$request['sort_field']] = $request['sort_field_by'];
  45. } else {
  46. $order['id'] = 'DESC';
  47. }
  48. $list = $this->repository->searchCompany($search, $order);
  49. if ($request->ajax()) {
  50. $view = view('admin.company.info.data', compact('list'))->render();
  51. return response()->json(['html' => $view]);
  52. }
  53. $fields = (new CompanyInfoModel())->filterFields;
  54. $user_id = \Auth::guard('admin')->user()->id;
  55. $hasCollection = UserCompanyCollectionModel::where('user_id', $user_id)->count();
  56. return view('admin.company.info.index', compact('list', 'fields', 'hasCollection'));
  57. }
  58. /***
  59. * 导入企业信息
  60. * @param Request $request
  61. */
  62. public function import(Request $request)
  63. {
  64. Excel::import(new CompanyInfoImport, request()->file('company_info'));
  65. $this->showMessage('操作成功');
  66. }
  67. /***
  68. * 企业详情页
  69. * @param Request $request
  70. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  71. */
  72. public function view(Request $request)
  73. {
  74. $data = $this->repository->find(request('id'));
  75. $contacts = $data->contacts()->orderBy('sort', 'desc')->get();
  76. $sems = $data->sems()->paginate(10);
  77. $jobs = $data->jobs()->paginate(10);
  78. if ($request->ajax() && $request->get('sem')) {
  79. $view = view('admin.company.info.semdata', compact('sems'))->render();
  80. return response()->json(['html' => $view]);
  81. }
  82. if ($request->ajax() && $request->get('job')) {
  83. $view = view('admin.company.info.jobdata', compact('jobs'))->render();
  84. return response()->json(['html' => $view]);
  85. }
  86. return view('admin.company.info.view', compact('data', 'contacts','sems','jobs'));
  87. }
  88. /**
  89. * 删除
  90. */
  91. public function destroy(Request $request)
  92. {
  93. $bool = $this->repository->destroy($request->get('id'));
  94. if ($bool) {
  95. return $this->showMessage('操作成功');
  96. } else {
  97. return $this->showWarning("操作失败");
  98. }
  99. }
  100. /***
  101. * 添加联系人备注
  102. * @param Request $request
  103. * @return int
  104. */
  105. public function addremarks(Request $request)
  106. {
  107. $contact = CompanyContactsModel::find($request->get('id'));
  108. $contact->remark = $request->get('remark');
  109. $contact->save();
  110. return 200;
  111. }
  112. }