TeachController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Controllers\Mobile\Ic;
  3. use App\Http\Controllers\Mobile\MobileBaseController;
  4. use App\Models\PresentationAppoint;
  5. use App\Repositories\CategoryMajorRepository;
  6. use App\Repositories\CategoryRepository;
  7. use App\Services\Common\CategoryService;
  8. use App\Validators\PresentationAppointValidatorRequest;
  9. use Illuminate\Support\Facades\Storage;
  10. use App\Repositories\CategoryDistrictRepository;
  11. class TeachController extends MobileBaseController
  12. {
  13. protected $categoryService;
  14. protected $CategoryDistrictRepository;
  15. protected $CategoryMajorRepository;
  16. protected $CategoryRepository;
  17. public function __construct(CategoryService $categoryService, CategoryDistrictRepository $categoryDistrictRepository, CategoryMajorRepository $CategoryMajorRepository, CategoryRepository $CategoryRepository)
  18. {
  19. $this->categoryService = $categoryService;
  20. $this->CategoryDistrictRepository = $categoryDistrictRepository;
  21. $this->CategoryMajorRepository = $CategoryMajorRepository;
  22. $this->CategoryRepository = $CategoryRepository;
  23. }
  24. public function uploadHead()
  25. {
  26. $image_data = request()->pic1;
  27. $saveName = 'person/images/' . uniqid() . '.jpg';
  28. $data = base64_decode($image_data);
  29. if (!empty($data)) {
  30. $res = Storage::disk('public')->put($saveName, $data);
  31. return response()->json(['status' => 1, 'info' => 'success', 'data' => $saveName]);
  32. } else {
  33. return response()->json(['status' => 0, 'info' => '请上传图片']);
  34. }
  35. }
  36. public function list()
  37. {
  38. $return_data = [
  39. 'params' => [],
  40. 'mobile_dropload' => true,
  41. 'current_url' => \Illuminate\Support\Facades\Request::getRequestUri(),
  42. ];
  43. return view('mobile.app.ic.teach.list',$return_data);
  44. }
  45. public function detail()
  46. {
  47. return view('mobile.app.ic.teach.detail');
  48. }
  49. public function index()
  50. {
  51. $district = $this->categoryService->getDefaultDistrict();
  52. return view('mobile.app.ic.teach.index', [
  53. 'defaultCity' => $district->defaultCity,
  54. ]);
  55. }
  56. public function save(PresentationAppointValidatorRequest $request)
  57. {
  58. $field = ['pid', 'avatar', 'realname', 'sex', 'mobile', 'birthday', 'native_place', 'fresh', 'education', 'school', 'dep', 'pro_type', 'pro_text', 'attachment'];
  59. $data = $request->only($field);
  60. foreach ($field as $k => $v) {
  61. if (empty($data[$k])) {
  62. return response()->json(['status' => 0, 'msg' => $v . '不能为空']);
  63. }
  64. }
  65. $check = PresentationAppoint::where('pid', $data['pid'])->where('mobile', $data['mobile'])->first();
  66. if (!empty($check)) {
  67. return response()->json(['status' => 0, 'msg' => '您已提交过,请勿重复提交']);
  68. }
  69. //籍贯
  70. $native_place_arr = explode('.', $data['native_place']);
  71. $houseRes = $this->CategoryDistrictRepository->getManydistrict($native_place_arr);
  72. $native_place_cn = '';
  73. foreach ($houseRes as $k => $v) {
  74. $native_place_cn .= $v['name'];
  75. }
  76. $data['native_place'] = $native_place_cn;
  77. //专业类别
  78. $majorArr = $this->CategoryMajorRepository->getCategoryMajor($data['pro_type']);
  79. $data['pro_type'] = $majorArr['name'];
  80. //学历
  81. $educationArr = $this->CategoryRepository->getCategory($data['education']);
  82. $data['education'] = $educationArr['demand'];
  83. //其他处理
  84. $data['avatar'] = $data['avatar'] ?? '';
  85. $data['attachment'] = $data['attachment'] ?? '';
  86. PresentationAppoint::create($data);
  87. return response()->json(['status' => 1]);
  88. }
  89. }