JobfairPutJobService.php 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wuzhenke
  5. * Date: 2019/1/24
  6. * Time: 17:26
  7. */
  8. namespace App\Services\Jobfair;
  9. use App\Exceptions\ResponseException;
  10. use App\Repositories\Jobfair\JobfairPutJobRepository;
  11. use App\Repositories\CategoryDistrictRepository;
  12. use App\Repositories\CategoryRepository;
  13. use Exception;
  14. use Illuminate\Support\Facades\Cache;
  15. use Illuminate\Support\Facades\DB;
  16. use App\Repositories\Jobfair\JobfairJobRepository;
  17. use App\Repositories\Jobfair\JobfairJobsContactRepository;
  18. use App\Repositories\MemberLogRepository;
  19. use App\Repositories\Jobfair\JobfairCompanyRepository;
  20. use App\Models\Jobfair\JobfairPutJob;
  21. use App\Repositories\CompanyContactsRepository;
  22. class JobfairPutJobService
  23. {
  24. protected $jobfairPutJobRepository;
  25. protected $categoryDistrictRepository;
  26. protected $categoryRepository;
  27. protected $jobfairJobRepository;
  28. protected $jobfairJobsContactRepository;
  29. protected $memberLogRepository;
  30. protected $jobfairCompanyRepository;
  31. protected $companyContactsRepository;
  32. /**
  33. * @param $jobfairPutJobRepository
  34. */
  35. public function __construct(JobfairPutJobRepository $jobfairPutJobRepository,JobfairCompanyRepository $jobfairCompanyRepository,CategoryDistrictRepository $categoryDistrictRepository,CategoryRepository $categoryRepository,JobfairJobRepository $jobfairJobRepository,JobfairJobsContactRepository $jobfairJobsContactRepository, MemberLogRepository $memberLogRepository,CompanyContactsRepository $companyContactsRepository)
  36. {
  37. $this->jobfairPutJobRepository = $jobfairPutJobRepository;
  38. $this->categoryDistrictRepository = $categoryDistrictRepository;
  39. $this->categoryRepository = $categoryRepository;
  40. $this->jobfairJobRepository = $jobfairJobRepository;
  41. $this->jobfairJobsContactRepository = $jobfairJobsContactRepository;
  42. $this->memberLogRepository = $memberLogRepository;
  43. $this->jobfairCompanyRepository = $jobfairCompanyRepository;
  44. $this->companyContactsRepository = $companyContactsRepository;
  45. }
  46. /**招聘会公司职位
  47. * @return array
  48. */
  49. public function jobfairCompany($where,$user,$where1 = [],$limit = '')
  50. {
  51. $where[] = array('company_id','=',$user->id);
  52. $lists = $this->jobfairPutJobRepository->getJobfairCompanyJob($where1,$where,$limit);
  53. if ($lists->isEmpty()) {
  54. return $lists;
  55. } else {
  56. foreach ($lists as $k => $v) {
  57. $lists[$k]->jobs->education_cn = $v->jobs->education_cn ? $v->jobs->education_cn : '不限';
  58. $lists[$k]->jobs->experience_cn = $v->jobs->experience_cn ? $v->jobs->experience_cn : '不限';
  59. //年龄限制
  60. if (is_array($v->jobs->age)) {
  61. if (implode('', $v->jobs->age)=='') {
  62. $lists[$k]->jobs->age_cn = '年龄不限';
  63. } else {
  64. $lists[$k]->jobs->age_cn = implode('-', $v->jobs->age).'岁';
  65. }
  66. } else {
  67. if ($v->jobs->age == '-' || $v->jobs->age == '0' || $v->jobs->age == null) {
  68. $lists[$k]->jobs->age_cn = '年龄不限';
  69. } else {
  70. $lists[$k]->jobs->age_cn = $v->jobs->age.'岁';
  71. }
  72. }
  73. }
  74. }
  75. return $lists;
  76. }
  77. /**切换职位状态
  78. * @param $job_id
  79. * @param $display
  80. * @return \Illuminate\Http\JsonResponse
  81. */
  82. public function displayswitch($job_id,$display)
  83. {
  84. if($display == 1){
  85. $msg = '关闭';
  86. }else {
  87. $msg = '开启';
  88. }
  89. $display = $display == 1 ? 2 : 1;
  90. $id = $job_id;
  91. $info = $this->jobfairPutJobRepository->getAudit($id);
  92. if($info->jobs->audit != 1){
  93. return response()->json(['status' => 0, 'msg' => '操作失败!如未审核请联系管理员审核职位', 'data' => '']);
  94. }
  95. if (!$this->jobfairJobRepository->displayswitch($info->job_id,$display)) {
  96. return response()->json(['status' => 0, 'msg' => '职位'.$msg.'失败', 'data' => '']);
  97. }
  98. Cache::put(session('floorplan_stands.jobfair_id').'-'.session('floorplan_stands.company_id'), time(),120);
  99. return response()->json(['status' => 1, 'msg' => '职位'.$msg.'成功', 'data' => '']);
  100. }
  101. /**切换职位状态
  102. * @param $job_id
  103. * @param $display
  104. * @return \Illuminate\Http\JsonResponse
  105. */
  106. public function displayAllSwitch($ids,$display)
  107. {
  108. $jobs_id = $this->jobfairPutJobRepository->getFairJobInIds($ids);
  109. if($this->jobfairJobRepository->displayAllSwitch($jobs_id,$display))
  110. {
  111. Cache::put(session('floorplan_stands.jobfair_id').'-'.session('floorplan_stands.company_id'), time(),120);
  112. return response()->json(['status' => 1, 'msg' => '操作成功', 'data' => '']);
  113. }
  114. return response()->json(['status' => 0, 'msg' => '操作失败', 'data' => '']);
  115. }
  116. /** 招聘会职位库添加
  117. * @param $data
  118. * @param $user
  119. * @return \Illuminate\Http\JsonResponse|string
  120. * @throws \ErrorException
  121. * @throws \Prettus\Validator\Exceptions\ValidatorException
  122. */
  123. public function jobfairJobsSave($data,$user)
  124. {
  125. $comArr = ['id','companyname','created_at','audit','trade','scale','map_x','map_y','map_zoom'];
  126. $contact = ['mobile','email','qq','landline_tel','address','contact','contact_show','email_show','landline_tel_show','telephone_show'];
  127. $data_job = [];
  128. $data_contact = [];
  129. $data_put_jobs = [];
  130. if ($data['basis_contact'] == 0) {
  131. foreach ($contact as $key => $val) {
  132. $data_contact[$val] = $user[$val] ? $user[$val] : '';
  133. }
  134. } else {
  135. $contacts = $this->companyContactsRepository->getOne($data['basis_contact']);
  136. foreach ($contact as $key => $val) {
  137. $data_contact[$val] = $contacts[$val] ? $contacts[$val] : '';
  138. }
  139. $data_contact['mobile'] = $contacts['telephone'] ? $contacts['telephone'] : '';
  140. }
  141. foreach ($comArr as $key => $val) {
  142. if ($val == "id") {
  143. $data_job['company_id'] = $user['id'];
  144. } elseif ($val == 'companyname') {
  145. $data_job['company_name'] = $user['companyname'];
  146. } elseif ($val == 'created_at') {
  147. $data_job['company_addtime'] = strtotime($user['created_at']);
  148. } elseif ($val == 'audit') {
  149. $data_job['company_audit'] = $user['audit'];
  150. } else {
  151. $data_job[$val] = $user[$val];
  152. }
  153. }
  154. $jobArr = ['nature','sex','age','amount','district','tag','education','experience','wage','wage_min','wage_max','jobs_content','major','department',];
  155. foreach ($jobArr as $key => $val) {
  156. if(isset($data[$val])){
  157. $data_job[$val] = $data[$val];
  158. }
  159. }
  160. switch ($data_job['sex']) {
  161. case 0:
  162. $data_job['sex_cn']='不限';
  163. break;
  164. case 1:
  165. $data_job['sex_cn']='男';
  166. break;
  167. case 2:
  168. $data_job['sex_cn']='女';
  169. break;
  170. }
  171. if($data_job['wage'] == -1){
  172. $data_job['wage_min'] = 0;
  173. $data_job['wage_max'] = 0;
  174. $data_job['wage_cn'] = '面议';
  175. }else{
  176. if($data_job['wage'] == 0){
  177. $data_job['wage_cn'] = $data_job['wage_min'].'~'.$data_job['wage_max'].'/月';
  178. }else{
  179. $data_job['wage_cn'] = get_category($data_job['wage']);
  180. $wage = explode('~', format_wage(get_category($data_job['wage'])));
  181. if (isset($wage[1])) {
  182. $data_job['wage_max'] =intval($wage[1]);
  183. }
  184. $data_job['wage_min'] =intval($wage[0]);
  185. }
  186. }
  187. $jobcategory = explode('.', $data['jobcategory']);
  188. $data_job['topclass'] =$jobcategory[0];
  189. $data_job['category'] =$jobcategory[1];
  190. $data_job['subclass'] =$jobcategory[2];
  191. $data_job['category_cn'] =get_job_category_cn($data['jobcategory']);
  192. unset($data['jobcategory']);
  193. $data_job['trade_cn'] =get_category($data_job['trade']);
  194. $data_job['nature_cn'] =get_category($data_job['nature']);
  195. $data_job['scale_cn'] =get_category($data_job['scale']);
  196. $data_job['district_cn'] =get_district_cn($data_job['district']);
  197. if(isset($data_job['tag'])){
  198. $data_job['tag_cn'] =get_tag_cn($data_job['tag']);
  199. }
  200. $data_job['education_cn'] =get_category($data_job['education']);
  201. $data_job['experience_cn'] =get_category($data_job['experience']);
  202. if ($data['ygxs']){
  203. $data_job['ygxs'] = $data['ygxs'];
  204. if ($data_job['ygxs'] == 363){
  205. $data_job['wage_cn'] = $data_job['wage_min'].'/小时';
  206. }
  207. }
  208. if ($data['techlevel']){
  209. $data_job['techlevel'] = $data['techlevel'];
  210. }
  211. if ($data['syq']){
  212. $data_job['syq'] = $data['syq'];
  213. $data_job['syqxz_min'] = $data['syq_min'];
  214. }
  215. // $data_job['zc_cn'] =get_category($data_job['zcid']);
  216. if(is_numeric($data['minage'])&& is_numeric( $data['maxage'])){
  217. $data_job['age'] = $data['minage'].'-'.$data['maxage'];
  218. }else{
  219. $data_job['age']= '-';
  220. }
  221. $data_job['jobs_name'] = $data['jobs_name'];
  222. $data_put_jobs['exid'] = session('floorplan_stands.exid');
  223. $data_put_jobs['jobfair_id'] = session('floorplan_stands.jobfair_id');
  224. $data_put_jobs['position_id'] = session('floorplan_stands.id');
  225. DB::beginTransaction();//检查数据库事务(有错)
  226. try {
  227. if (!$this->jobfairJobRepository->store($data_job)) {
  228. throw new Exception('添加招聘会职位库失败');
  229. }
  230. $data_put_jobs['job_id'] = $data_contact['pid'] = DB::getPdo()->lastInsertId();
  231. if (!$this->jobfairJobsContactRepository->store($data_contact)) {
  232. throw new Exception('添加联系方式失败');
  233. }
  234. $jobfairJob = $this->jobfairJobRepository->find($data_put_jobs['job_id']);
  235. $data_put_jobs['company_id'] = $jobfairJob['company_id'];
  236. $data_put_jobs['jobs_name'] = $jobfairJob['jobs_name'];
  237. $data_put_jobs['company_name'] = $jobfairJob['company_name'];
  238. $data_put_jobs['company_audit'] = $jobfairJob['company_audit'];
  239. $data_put_jobs['stick'] = $jobfairJob['stick'];
  240. $data_put_jobs['nature'] = $jobfairJob['nature'];
  241. $data_put_jobs['nature_cn'] = $jobfairJob['nature_cn'];
  242. $data_put_jobs['sex'] = $jobfairJob['sex'];
  243. $data_put_jobs['sex_cn'] = $jobfairJob['sex_cn'];
  244. $data_put_jobs['age'] = $jobfairJob['age'];
  245. $data_put_jobs['amount'] = $jobfairJob['amount'];
  246. $data_put_jobs['topclass'] = $jobfairJob['topclass'];
  247. $data_put_jobs['category'] = $jobfairJob['category'];
  248. $data_put_jobs['subclass'] = $jobfairJob['subclass'];
  249. $data_put_jobs['category_cn'] = $jobfairJob['category_cn'];
  250. $data_put_jobs['trade'] = $jobfairJob['trade'];
  251. $data_put_jobs['trade_cn'] = $jobfairJob['trade_cn'];
  252. $data_put_jobs['scale'] = $jobfairJob['scale'];
  253. $data_put_jobs['scale_cn'] = $jobfairJob['scale_cn'];
  254. $data_put_jobs['district'] = $jobfairJob['district'];
  255. $data_put_jobs['district_cn'] = $jobfairJob['district_cn'];
  256. $data_put_jobs['tag'] = $jobfairJob['tag'];
  257. $data_put_jobs['tag_cn'] = $jobfairJob['tag_cn'];
  258. $data_put_jobs['education'] = $jobfairJob['education'];
  259. $data_put_jobs['education_cn'] = $jobfairJob['education_cn'];
  260. $data_put_jobs['experience'] = $jobfairJob['experience'];
  261. $data_put_jobs['experience_cn'] = $jobfairJob['experience_cn'];
  262. $data_put_jobs['wage'] = $jobfairJob['wage'];
  263. $data_put_jobs['wage_min'] = $jobfairJob['wage_min'];
  264. $data_put_jobs['wage_max'] = $jobfairJob['wage_max'];
  265. $data_put_jobs['wage_cn'] = $jobfairJob['wage_cn'];
  266. $data_put_jobs['negotiable'] = $jobfairJob['negotiable'];
  267. $data_put_jobs['jobs_content'] = $jobfairJob['jobs_content'];
  268. $data_put_jobs['audit'] = $jobfairJob['audit'];
  269. $data_put_jobs['display'] = $jobfairJob['display'];
  270. $data_put_jobs['click'] = $jobfairJob['click'];
  271. $data_put_jobs['robot'] = $jobfairJob['robot'];
  272. $data_put_jobs['map_x'] = $jobfairJob['map_x'];
  273. $data_put_jobs['map_y'] = $jobfairJob['map_y'];
  274. $data_put_jobs['map_zoom'] = $jobfairJob['map_zoom'];
  275. $data_put_jobs['add_mode'] = $jobfairJob['add_mode'];
  276. $data_put_jobs['is_entrust'] = $jobfairJob['is_entrust'];
  277. $data_put_jobs['department'] = $jobfairJob['department'];
  278. $data_put_jobs['major'] = $jobfairJob['major'];
  279. $data_put_jobs['major_cn'] = $jobfairJob['major_cn'];
  280. $data_put_jobs['zcid'] = $jobfairJob['zcid'];
  281. $data_put_jobs['zc_cn'] = $jobfairJob['zc_cn'];
  282. $data_put_jobs['zc_name'] = $jobfairJob['zc_name'];
  283. $data_put_jobs['syq'] = $jobfairJob['syq'];
  284. $data_put_jobs['syqxz_min'] = $jobfairJob['syqxz_min'];
  285. $data_put_jobs['ygxs'] = $jobfairJob['ygxs'];
  286. $data_put_jobs['techlevel'] = $jobfairJob['techlevel'];
  287. if (!$this->jobfairPutJobRepository->createData($data_put_jobs)) {
  288. throw new Exception('添加招聘职位失败');
  289. }
  290. $this->memberLogRepository->createLog(auth('web-company')->user(), 1034, [$data_put_jobs['jobs_name'],$data_contact['pid']]);
  291. Cache::put(session('floorplan_stands.jobfair_id').'-'.$user['id'], time(),120);
  292. DB::commit();
  293. return response()->json(['status' => 1, 'msg' =>'添加成功']);
  294. } catch (Exception $e) {
  295. DB::rollback();
  296. return response()->json(['status' => 0, 'msg' =>$e->getMessage()]);
  297. }
  298. }
  299. public function jobfairJobsEdit($id){
  300. $jobfair_job = $this->jobfairPutJobRepository->editJob($id);
  301. if (!$jobfair_job) {
  302. return false;
  303. }
  304. return $jobfair_job;
  305. }
  306. public function jobfairPutJobsEdit($data,$user){
  307. $id = $data['id'];
  308. $comArr = ['id','companyname','created_at','audit','trade','scale','map_x','map_y','map_zoom'];
  309. $contact = ['mobile','email','qq','landline_tel','address','contact','contact_show','email_show','landline_tel_show','telephone_show'];
  310. $data_job = [];
  311. $data_contact = [];
  312. if ($data['basis_contact'] == 0) {
  313. foreach ($contact as $key => $val) {
  314. $data_contact[$val] = $user[$val] ? $user[$val] : '';
  315. }
  316. } else {
  317. $contacts = $this->companyContactsRepository->getOne($data['basis_contact']);
  318. foreach ($contact as $key => $val) {
  319. $data_contact[$val] = $contacts[$val] ? $contacts[$val] : '';
  320. }
  321. $data_contact['mobile'] = $contacts['telephone'] ? $contacts['telephone'] : '';
  322. }
  323. foreach ($comArr as $key => $val) {
  324. if ($val == "id") {
  325. $data_job['company_id'] = $user['id'];
  326. } elseif ($val == 'companyname') {
  327. $data_job['company_name'] = $user['companyname'];
  328. } elseif ($val == 'audit') {
  329. $data_job['company_audit'] = $user['audit'];
  330. } else {
  331. $data_job[$val] = $user[$val];
  332. }
  333. }
  334. $jobArr = ['nature','sex','age','amount','district','tag','education','experience','wage','wage_min','wage_max','jobs_content','major','department',];
  335. foreach ($jobArr as $key => $val) {
  336. if(isset($data[$val])){
  337. $data_job[$val] = $data[$val];
  338. }
  339. }
  340. switch ($data_job['sex']) {
  341. case 0:
  342. $data_job['sex_cn']='不限';
  343. break;
  344. case 1:
  345. $data_job['sex_cn']='男';
  346. break;
  347. case 2:
  348. $data_job['sex_cn']='女';
  349. break;
  350. }
  351. if($data_job['wage'] == -1){
  352. $data_job['wage_min'] = 0;
  353. $data_job['wage_max'] = 0;
  354. $data_job['wage_cn'] = '面议';
  355. }else{
  356. if($data_job['wage'] == 0){
  357. $data_job['wage_cn'] = $data_job['wage_min'].'~'.$data_job['wage_max'].'/月';
  358. }else{
  359. $data_job['wage_cn'] = get_category($data_job['wage']);
  360. $wage = explode('~', format_wage(get_category($data_job['wage'])));
  361. if (isset($wage[1])) {
  362. $data_job['wage_max'] =intval($wage[1]);
  363. }
  364. $data_job['wage_min'] =intval($wage[0]);
  365. }
  366. }
  367. $jobcategory = explode('.', $data['jobcategory']);
  368. $data_job['topclass'] =$jobcategory[0];
  369. $data_job['category'] =$jobcategory[1];
  370. $data_job['subclass'] =$jobcategory[2];
  371. $data_job['category_cn'] =get_job_category_cn($data['jobcategory']);
  372. unset($data['jobcategory']);
  373. $data_job['trade_cn'] =get_category($data_job['trade']);
  374. if (isset($data_job['nature'])){
  375. $data_job['nature_cn'] =get_category($data_job['nature']);
  376. }else{
  377. $data_job['nature_cn'] = '';
  378. }
  379. if ($data['ygxs']){
  380. $data_job['ygxs'] = $data['ygxs'];
  381. if ($data['ygxs'] == 363){
  382. $data_job['wage_cn'] = $data_job['wage_min'].'/小时';
  383. }
  384. }else{
  385. $data_job['ygxs'] = 0;
  386. }
  387. if ($data['techlevel']){
  388. $data_job['techlevel'] = $data['techlevel'];
  389. }
  390. if ($data['syq']){
  391. $data_job['syq'] = $data['syq'];
  392. $data_job['syqxz_min'] = $data['syq_min'];
  393. }
  394. $data_job['scale_cn'] =get_category($data_job['scale']);
  395. $data_job['district_cn'] =get_district_cn($data_job['district']);
  396. if(isset($data_job['tag'])){
  397. $data_job['tag_cn'] =get_tag_cn($data_job['tag']);
  398. }
  399. $data_job['education_cn'] =get_category($data_job['education']);
  400. $data_job['experience_cn'] =get_category($data_job['experience']);
  401. // $data_job['zc_cn'] =get_category($data_job['zcid']);
  402. if(is_numeric($data['minage'])&& is_numeric( $data['maxage'])){
  403. $data_job['age'] = $data['minage'].'-'.$data['maxage'];
  404. }else{
  405. $data_job['age']= '-';
  406. }
  407. $data_job['jobs_name'] = $data['jobs_name'];
  408. $data_job['audit'] = 2;
  409. DB::beginTransaction();
  410. try {
  411. if (!$this->jobfairJobRepository->update($data_job, $id)) {
  412. throw new Exception('修改招聘会职位失败!');
  413. }
  414. if($this->jobfairJobsContactRepository->getContact(['pid'=>$id])){
  415. if (!$this->jobfairJobsContactRepository->update($data_contact, $id)) {
  416. throw new Exception('修改联系方式失败');
  417. }
  418. }else{
  419. $data_contact['pid'] = $id;
  420. if (!$this->jobfairJobsContactRepository->create($data_contact)) {
  421. throw new Exception('修改联系方式失败');
  422. }
  423. }
  424. $this->memberLogRepository->createLog(auth('web-company')->user(), 1035, [$id]);
  425. DB::commit();
  426. Cache::put(session('floorplan_stands.jobfair_id').'-'.$user['id'], time(),120);
  427. return response()->json(['status' => 1, 'msg' =>'修改成功']);
  428. } catch (Exception $e) {
  429. DB::rollback();
  430. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  431. }
  432. }
  433. public static function countAuditJobsNum($user)
  434. {
  435. $map = [];
  436. if (config('aix.companyset.comset.show_set.jobs_display') == 1) {
  437. $map['audit'] = 1;
  438. }
  439. return JobfairPutJob::whereHas('jobs',function ($query) use ($user){
  440. $query->where('company_id',$user->id);
  441. })->where($map)->count();
  442. }
  443. public function jobfairPutJobsList($map,$map1)
  444. {
  445. $page = 10;
  446. $list = $this->jobfairPutJobRepository->jobfairCompanyJob($map,$map1, $page);
  447. return [
  448. 'list' => $list
  449. ];
  450. }
  451. public function jobfairPutJobsDel($id)
  452. {
  453. DB::beginTransaction();
  454. try {
  455. if (!$this->jobfairPutJobRepository->delJobs($id)) {
  456. throw new Exception('职位删除失败');
  457. }
  458. DB::commit();
  459. } catch ( \Exception $e) {
  460. DB::rollback();
  461. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  462. }
  463. return response()->json(['status' => 1, 'msg' => " 参展职位删除成功!"]);
  464. }
  465. public function jobfairjobModify($id, $user)
  466. {
  467. $companyContact = $this->companyContactsRepository->getContacts(['company_id'=>$user->id]);
  468. $jobfair_job = $this->jobfairPutJobRepository->jobedit($id);
  469. if (!$jobfair_job) {
  470. return false;
  471. }
  472. $jobfair_job->tag = explode(',', $jobfair_job->tag);
  473. $jobfair_job->age = explode('-', $jobfair_job->age);
  474. $jobfair_job->jobsContact->landline_tel =$jobfair_job->jobsContact->landline_tel?explode('-', $jobfair_job->jobsContact->landline_tel):[];
  475. return $result = [
  476. 'company' =>$user,
  477. 'jobsInfo'=>$jobfair_job,
  478. 'companyContact'=>$companyContact,
  479. ];
  480. }
  481. /**招聘会参展职位修改
  482. * @param $data
  483. * @param $user
  484. * @return \Illuminate\Http\JsonResponse
  485. * @throws \ErrorException
  486. * @throws \Prettus\Validator\Exceptions\ValidatorException
  487. */
  488. public function jobfairPutJobsSave($data, $user)
  489. {
  490. $id = $data['id'];
  491. $message = '招聘会职位修改成功!';
  492. $comArr = ['id','companyname','audit','trade','scale','map_x','map_y','map_zoom'];
  493. $contact = ['mobile','email','qq','landline_tel','address','contact','contact_show','email_show','landline_tel_show','telephone_show'];
  494. $data_job = [];
  495. $data_contact = [];
  496. if ($data['basis_contact']) {
  497. foreach ($contact as $key => $val) {
  498. $data_contact[$val] = $user->$val;
  499. }
  500. } else {
  501. $data_contact['contact'] = $data['contact'];
  502. $data_contact['mobile'] = $data['telephone'];
  503. $data_contact['email'] = $data['email'];
  504. $data_contact['landline_tel'] = $data['landline_tel'];
  505. $data_contact['address'] = $data['address'];
  506. $data_contact['landline_tel_show'] = $data['landline_tel_show'];
  507. $data_contact['contact_show'] = $data['contact_show'];
  508. $data_contact['email_show'] = $data['email_show'];
  509. $data_contact['telephone_show'] = $data['telephone_show'];
  510. }
  511. foreach ($comArr as $key => $val) {
  512. if ($val == "id") {
  513. $data_job['company_id'] = $user->id;
  514. } elseif ($val == 'companyname') {
  515. $data_job['company_name'] = $user->companyname;
  516. } elseif ($val == 'audit') {
  517. $data_job['company_audit'] = $user->audit;
  518. } else {
  519. $data_job[$val] = $user->$val;
  520. }
  521. }
  522. $jobArr = ['nature','sex','age','amount','district','tag','education','experience','wage','wage_min','wage_max','jobs_content','major'];
  523. foreach ($jobArr as $key => $val) {
  524. $data_job[$val] = $data[$val];
  525. }
  526. switch ($data_job['sex']) {
  527. case 0:
  528. $data_job['sex_cn']='不限';
  529. break;
  530. case 1:
  531. $data_job['sex_cn']='男';
  532. break;
  533. case 2:
  534. $data_job['sex_cn']='女';
  535. break;
  536. }
  537. if ($data['wage']==-1) {
  538. $data_job['wage'] = -1;
  539. $data_job['wage_min']=0;
  540. $data_job['wage_max']=0;
  541. $data_job['wage_cn'] ='面议';
  542. } else {
  543. if (intval($data_job['wage'])!=0) {
  544. $wage = explode('~', format_wage(get_category($data_job['wage'])));
  545. $data_job['wage_max'] = 0;
  546. if (isset($wage[1])) {
  547. $data_job['wage_max'] =intval($wage[1]);
  548. }
  549. $data_job['wage_min'] =intval($wage[0]);
  550. $data_job['wage_cn'] =get_category($data_job['wage']);
  551. } else {
  552. $data_job['wage_min']=$data['wage_min'];
  553. $data_job['wage_max']=$data['wage_max'];
  554. $data_job['wage_cn'] =$data['wage_min'].'~'.$data['wage_max'].'/月';
  555. }
  556. }
  557. $jobcategory = explode('.', $data['jobcategory']);
  558. $data_job['topclass'] =$jobcategory[0];
  559. $data_job['category'] =$jobcategory[1];
  560. $data_job['subclass'] =$jobcategory[2];
  561. $data_job['category_cn'] =get_job_category_cn($data['jobcategory']);
  562. unset($data['jobcategory']);
  563. $data_job['trade_cn'] =get_category($data_job['trade']);
  564. $data_job['nature_cn'] =get_category($data_job['nature']);
  565. $data_job['scale_cn'] =get_category($data_job['scale']);
  566. $data_job['district'] = getDistrict($data_job['district']);
  567. $data_job['district_cn'] =get_district_cn($data_job['district']);
  568. $data_job['tag_cn'] =get_tag_cn($data_job['tag']);
  569. $data_job['education_cn'] =get_category($data_job['education']);
  570. $data_job['experience_cn'] =get_category($data_job['experience']);
  571. // $data_job['zc_cn'] =get_category($data_job['zcid']);
  572. $data_job['age'] =implode('-', $data['age']);
  573. $data_job['jobs_name'] = $data['jobs_name'];
  574. $data_job['audit'] = 2;
  575. DB::beginTransaction();
  576. try {
  577. if ($id) {
  578. if (!$this->jobfairJobRepository->update($data_job, $id)) {
  579. throw new Exception('修改招聘会职位失败');
  580. }
  581. if (!$this->jobfairJobsContactRepository->update($data_contact, $id)) {
  582. throw new Exception('修改联系方式失败');
  583. }
  584. $this->memberLogRepository->createLog($user, 1037, [$id]);
  585. }
  586. DB::commit();
  587. return response()->json(['status' => 1, 'msg' => $message]);
  588. } catch (Exception $e) {
  589. DB::rollback();
  590. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  591. }
  592. }
  593. public function addData($add_array,$exid,$jobfair_id,$position_id)
  594. {
  595. $jobsInfo = $this->jobfairJobRepository->findWhereIn('id', $add_array)->toArray();
  596. foreach ($jobsInfo as $val) {
  597. $insert_data = [];
  598. $insert_data['exid'] = $exid;
  599. $insert_data['jobfair_id'] = $jobfair_id;
  600. $insert_data['position_id'] = $position_id;
  601. $insert_data['job_id'] = $val['id'];
  602. $insert_data['jobs_name'] = $val['jobs_name'];
  603. $insert_data['company_id'] = $val['company_id'];
  604. $insert_data['company_name'] = $val['company_name'];
  605. $insert_data['company_audit'] = $val['company_audit'];
  606. $insert_data['stick'] = $val['stick'];
  607. $insert_data['nature'] = $val['nature'];
  608. $insert_data['nature_cn'] = $val['nature_cn'];
  609. $insert_data['sex'] = $val['sex'];
  610. $insert_data['sex_cn'] = $val['sex_cn'];
  611. $insert_data['age'] = $val['age'];
  612. $insert_data['amount'] = $val['amount'];
  613. $insert_data['topclass'] = $val['topclass'];
  614. $insert_data['category'] = $val['category'];
  615. $insert_data['subclass'] = $val['subclass'];
  616. $insert_data['category_cn'] = $val['category_cn'];
  617. $insert_data['trade'] = $val['trade'];
  618. $insert_data['trade_cn'] = $val['trade_cn'];
  619. $insert_data['scale'] = $val['scale'];
  620. $insert_data['scale_cn'] = $val['scale_cn'];
  621. $insert_data['district'] = $val['district'];
  622. $insert_data['district_cn'] = $val['district_cn'];
  623. $insert_data['tag'] = $val['tag'];
  624. $insert_data['tag_cn'] = $val['tag_cn'];
  625. $insert_data['education'] = $val['education'];
  626. $insert_data['education_cn'] = $val['education_cn'];
  627. $insert_data['experience'] = $val['experience'];
  628. $insert_data['experience_cn'] = $val['experience_cn'];
  629. $insert_data['wage'] = $val['wage'];
  630. $insert_data['wage_min'] = $val['wage_min'];
  631. $insert_data['wage_max'] = $val['wage_max'];
  632. $insert_data['wage_cn'] = $val['wage_cn'];
  633. $insert_data['jobs_content'] = $val['jobs_content'];
  634. $insert_data['audit'] = $val['audit'];
  635. $insert_data['display'] = $val['display'];
  636. $insert_data['click'] = $val['click'];
  637. $insert_data['robot'] = $val['robot'];
  638. $insert_data['map_x'] = $val['map_x'];
  639. $insert_data['map_y'] = $val['map_y'];
  640. $insert_data['map_zoom'] = $val['map_zoom'];
  641. $insert_data['add_mode'] = $val['add_mode'];
  642. $insert_data['is_entrust'] = $val['is_entrust'];
  643. $insert_data['department'] = $val['department'];
  644. $insert_data['major'] = $val['major'];
  645. $insert_data['major_cn'] = $val['major_cn'];
  646. $insert_data['zcid'] = $val['zcid'];
  647. $insert_data['zc_cn'] = $val['zc_cn'];
  648. $insert_data['zc_name'] = $val['zc_name'];
  649. if (!$inser_id = $this->jobfairPutJobRepository->create($insert_data)) {
  650. throw new \Exception($val['jobs_name'] . '添加失败');
  651. }
  652. }
  653. }
  654. public function isOwn($ids,$company_id)
  655. {
  656. $ids = is_array($ids)?$ids:explode(',',$ids);
  657. $putJobs = $this->jobfairPutJobRepository->getPluck(['company_id'=>$company_id],'id')->toArray();
  658. if(array_diff($ids,$putJobs))
  659. {
  660. throw new ResponseException('抱歉,您只能操作自己的招聘会职位!');
  661. }
  662. }
  663. }