InfoController.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  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. $fileName = request()->file('company_info')->getClientOriginalName();
  65. $fileType = fileExt($fileName);
  66. if($fileType == 'xls' || $fileType== 'xlsx'){
  67. Excel::import(new CompanyInfoImport, request()->file('company_info'));
  68. $this->showMessage('操作成功');
  69. }else{
  70. return $this->showWarning("请上传xls或者xlsx格式的Excel文件");
  71. }
  72. }
  73. /***
  74. * 企业详情页
  75. * @param Request $request
  76. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  77. */
  78. public function view(Request $request)
  79. {
  80. $data = $this->repository->find(request('id'));
  81. $contacts = $data->contacts()->orderBy('sort', 'desc')->get();
  82. $sems = $data->sems()->paginate(10);
  83. $jobs = $data->jobs()->paginate(10);
  84. if ($request->ajax() && $request->get('sem')) {
  85. $view = view('admin.company.info.semdata', compact('sems'))->render();
  86. return response()->json(['html' => $view]);
  87. }
  88. if ($request->ajax() && $request->get('job')) {
  89. $view = view('admin.company.info.jobdata', compact('jobs'))->render();
  90. return response()->json(['html' => $view]);
  91. }
  92. return view('admin.company.info.view', compact('data', 'contacts','sems','jobs'));
  93. }
  94. /**
  95. * 删除
  96. */
  97. public function destroy(Request $request)
  98. {
  99. $bool = $this->repository->destroy($request->get('id'));
  100. if ($bool) {
  101. return $this->showMessage('操作成功');
  102. } else {
  103. return $this->showWarning("操作失败");
  104. }
  105. }
  106. /***
  107. * 添加联系人备注
  108. * @param Request $request
  109. * @return int
  110. */
  111. public function addremarks(Request $request)
  112. {
  113. $contact = CompanyContactsModel::find($request->get('id'));
  114. $contact->remark = $request->get('remark');
  115. $contact->save();
  116. return 200;
  117. }
  118. }