JobfairoutPutJobService.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: ZhangHao
  5. * Date: 2019/6/17
  6. * Time: 11:11
  7. */
  8. namespace App\Services\Jobfairout;
  9. use App\Exceptions\ResponseException;
  10. use App\Repositories\Jobfairout\JobfairoutRepository;
  11. use App\Repositories\Jobfairout\JobfairoutCompanyRepository;
  12. use App\Repositories\Jobfairout\jobfairoutPutJobRepository;
  13. use App\Repositories\MemberSetmealRepository;
  14. use App\Repositories\MemberPointRepository;
  15. use App\Repositories\Jobfair\JobfairJobRepository;
  16. use Illuminate\Support\Facades\DB;
  17. use App\Repositories\Jobfair\JobfairJobsContactRepository;
  18. use App\Repositories\MemberLogRepository;
  19. class JobfairoutPutJobService
  20. {
  21. protected $jobfairoutRepository;
  22. protected $jobfairoutCompanytRepository;
  23. protected $jobfairoutPutJobRepository;
  24. protected $memberSetmealRepository;
  25. protected $memberPointRepository;
  26. protected $jobfairJobRepository;
  27. protected $jobfairJobsContactRepository;
  28. protected $memberLogRepository;
  29. public function __construct(
  30. JobfairoutRepository $jobfairoutRepository,
  31. JobfairoutCompanyRepository $jobfairoutCompanyRepository,
  32. jobfairoutPutJobRepository $jobfairoutPutJobRepository,
  33. MemberSetmealRepository $memberSetmealRepository,
  34. MemberPointRepository $memberPointRepository,
  35. JobfairJobRepository $jobfairJobRepository,
  36. JobfairJobsContactRepository $jobfairJobsContactRepository,
  37. MemberLogRepository $memberLogRepository
  38. )
  39. {
  40. $this->jobfairoutRepository = $jobfairoutRepository;
  41. $this->jobfairoutCompanyRepository = $jobfairoutCompanyRepository;
  42. $this->jobfairoutPutJobRepository = $jobfairoutPutJobRepository;
  43. $this->memberSetmealRepository = $memberSetmealRepository;
  44. $this->memberPointRepository = $memberPointRepository;
  45. $this->jobfairJobRepository = $jobfairJobRepository;
  46. $this->jobfairJobsContactRepository = $jobfairJobsContactRepository;
  47. $this->memberLogRepository = $memberLogRepository;
  48. }
  49. public function jobfairoutPutJobsList($map,$map1)
  50. {
  51. $page = 10;
  52. $list = $this->jobfairoutPutJobRepository->jobfairCompanyJob($map,$map1, $page);
  53. return [
  54. 'list' => $list
  55. ];
  56. }
  57. public function addData($add_array,$exid,$jobfair_id)
  58. {
  59. $jobsInfo = $this->jobfairJobRepository->findWhereIn('id', $add_array)->toArray();
  60. foreach ($jobsInfo as $val) {
  61. $insert_data = [];
  62. $insert_data['exid'] = $exid;
  63. $insert_data['jobfair_id'] = $jobfair_id;
  64. $insert_data['job_id'] = $val['id'];
  65. $insert_data['jobs_name'] = $val['jobs_name'];
  66. $insert_data['company_id'] = $val['company_id'];
  67. $insert_data['company_name'] = $val['company_name'];
  68. $insert_data['company_audit'] = $val['company_audit'];
  69. $insert_data['stick'] = $val['stick'];
  70. $insert_data['nature'] = $val['nature'];
  71. $insert_data['nature_cn'] = $val['nature_cn'];
  72. $insert_data['sex'] = $val['sex'];
  73. $insert_data['sex_cn'] = $val['sex_cn'];
  74. $insert_data['age'] = $val['age'];
  75. $insert_data['amount'] = $val['amount'];
  76. $insert_data['topclass'] = $val['topclass'];
  77. $insert_data['category'] = $val['category'];
  78. $insert_data['subclass'] = $val['subclass'];
  79. $insert_data['category_cn'] = $val['category_cn'];
  80. $insert_data['trade'] = $val['trade'];
  81. $insert_data['trade_cn'] = $val['trade_cn'];
  82. $insert_data['scale'] = $val['scale'];
  83. $insert_data['scale_cn'] = $val['scale_cn'];
  84. $insert_data['district'] = $val['district'];
  85. $insert_data['district_cn'] = $val['district_cn'];
  86. $insert_data['tag'] = $val['tag'];
  87. $insert_data['tag_cn'] = $val['tag_cn'];
  88. $insert_data['education'] = $val['education'];
  89. $insert_data['education_cn'] = $val['education_cn'];
  90. $insert_data['experience'] = $val['experience'];
  91. $insert_data['experience_cn'] = $val['experience_cn'];
  92. $insert_data['wage'] = $val['wage'];
  93. $insert_data['wage_min'] = $val['wage_min'];
  94. $insert_data['wage_max'] = $val['wage_max'];
  95. $insert_data['wage_cn'] = $val['wage_cn'];
  96. $insert_data['jobs_content'] = $val['jobs_content'];
  97. $insert_data['audit'] = $val['audit'];
  98. $insert_data['display'] = $val['display'];
  99. $insert_data['click'] = $val['click'];
  100. $insert_data['robot'] = $val['robot'];
  101. $insert_data['map_x'] = $val['map_x'];
  102. $insert_data['map_y'] = $val['map_y'];
  103. $insert_data['map_zoom'] = $val['map_zoom'];
  104. $insert_data['add_mode'] = $val['add_mode'];
  105. $insert_data['is_entrust'] = $val['is_entrust'];
  106. $insert_data['department'] = $val['department'];
  107. $insert_data['major'] = $val['major'];
  108. $insert_data['major_cn'] = $val['major_cn'];
  109. $insert_data['zcid'] = $val['zcid'];
  110. $insert_data['zc_cn'] = $val['zc_cn'];
  111. $insert_data['zc_name'] = $val['zc_name'];
  112. if (!$inser_id = $this->jobfairoutPutJobRepository->create($insert_data)) {
  113. throw new \Exception($val['jobs_name'] . '添加失败');
  114. }
  115. }
  116. }
  117. /**招聘会参展职位修改
  118. * @param $data
  119. * @param $user
  120. * @return \Illuminate\Http\JsonResponse
  121. * @throws \ErrorException
  122. * @throws \Prettus\Validator\Exceptions\ValidatorException
  123. */
  124. public function jobfairPutJobsSave($data, $user)
  125. {
  126. $id = $data['id'];
  127. $message = '招聘会职位修改成功!';
  128. $comArr = ['id','companyname','audit','trade','scale','map_x','map_y','map_zoom'];
  129. $contact = ['mobile','email','qq','landline_tel','address','contact','contact_show','email_show','landline_tel_show','telephone_show'];
  130. $data_job = [];
  131. $data_contact = [];
  132. if ($data['basis_contact']) {
  133. foreach ($contact as $key => $val) {
  134. $data_contact[$val] = $user->$val;
  135. }
  136. } else {
  137. $data_contact['contact'] = $data['contact'];
  138. $data_contact['mobile'] = $data['telephone'];
  139. $data_contact['email'] = $data['email'];
  140. $data_contact['landline_tel'] = $data['landline_tel'];
  141. $data_contact['address'] = $data['address'];
  142. $data_contact['landline_tel_show'] = $data['landline_tel_show'];
  143. $data_contact['contact_show'] = $data['contact_show'];
  144. $data_contact['email_show'] = $data['email_show'];
  145. $data_contact['telephone_show'] = $data['telephone_show'];
  146. }
  147. foreach ($comArr as $key => $val) {
  148. if ($val == "id") {
  149. $data_job['company_id'] = $user->id;
  150. } elseif ($val == 'companyname') {
  151. $data_job['company_name'] = $user->companyname;
  152. } elseif ($val == 'audit') {
  153. $data_job['company_audit'] = $user->audit;
  154. } else {
  155. $data_job[$val] = $user->$val;
  156. }
  157. }
  158. $jobArr = ['nature','sex','age','amount','district','tag','education','experience','wage','wage_min','wage_max','jobs_content','major'];
  159. foreach ($jobArr as $key => $val) {
  160. $data_job[$val] = $data[$val];
  161. }
  162. switch ($data_job['sex']) {
  163. case 0:
  164. $data_job['sex_cn']='不限';
  165. break;
  166. case 1:
  167. $data_job['sex_cn']='男';
  168. break;
  169. case 2:
  170. $data_job['sex_cn']='女';
  171. break;
  172. }
  173. if ($data['wage']==-1) {
  174. $data_job['wage'] = -1;
  175. $data_job['wage_min']=0;
  176. $data_job['wage_max']=0;
  177. $data_job['wage_cn'] ='面议';
  178. } else {
  179. if (intval($data_job['wage'])!=0) {
  180. $wage = explode('~', format_wage(get_category($data_job['wage'])));
  181. $data_job['wage_max'] = 0;
  182. if (isset($wage[1])) {
  183. $data_job['wage_max'] =intval($wage[1]);
  184. }
  185. $data_job['wage_min'] =intval($wage[0]);
  186. $data_job['wage_cn'] =get_category($data_job['wage']);
  187. } else {
  188. $data_job['wage_min']=$data['wage_min'];
  189. $data_job['wage_max']=$data['wage_max'];
  190. $data_job['wage_cn'] =$data['wage_min'].'~'.$data['wage_max'].'/月';
  191. }
  192. }
  193. $jobcategory = explode('.', $data['jobcategory']);
  194. $data_job['topclass'] =$jobcategory[0];
  195. $data_job['category'] =$jobcategory[1];
  196. $data_job['subclass'] =$jobcategory[2];
  197. $data_job['category_cn'] =get_job_category_cn($data['jobcategory']);
  198. unset($data['jobcategory']);
  199. $data_job['trade_cn'] =get_category($data_job['trade']);
  200. $data_job['nature_cn'] =get_category($data_job['nature']);
  201. $data_job['scale_cn'] =get_category($data_job['scale']);
  202. $data_job['district'] = getDistrict($data_job['district']);
  203. $data_job['district_cn'] =get_district_cn($data_job['district']);
  204. $data_job['tag_cn'] =get_tag_cn($data_job['tag']);
  205. $data_job['education_cn'] =get_category($data_job['education']);
  206. $data_job['experience_cn'] =get_category($data_job['experience']);
  207. // $data_job['zc_cn'] =get_category($data_job['zcid']);
  208. $data_job['age'] =implode('-', $data['age']);
  209. $data_job['jobs_name'] = $data['jobs_name'];
  210. $data_job['audit'] = 2;
  211. DB::beginTransaction();
  212. try {
  213. if ($id) {
  214. if (!$this->jobfairJobRepository->update($data_job, $id)) {
  215. throw new Exception('修改招聘会职位失败');
  216. }
  217. if (!$this->jobfairJobsContactRepository->update($data_contact, $id)) {
  218. throw new Exception('修改联系方式失败');
  219. }
  220. $this->memberLogRepository->createLog($user, 1037, [$id]);
  221. }
  222. DB::commit();
  223. return response()->json(['status' => 1, 'msg' => $message]);
  224. } catch (Exception $e) {
  225. DB::rollback();
  226. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  227. }
  228. }
  229. public function jobfairPutJobsDel($id)
  230. {
  231. DB::beginTransaction();
  232. try {
  233. if (!$this->jobfairoutPutJobRepository->delJobs($id)) {
  234. throw new Exception('职位删除失败');
  235. }
  236. DB::commit();
  237. } catch ( \Exception $e) {
  238. DB::rollback();
  239. return response()->json(['status' => 0, 'msg' => $e->getMessage()]);
  240. }
  241. return response()->json(['status' => 1, 'msg' => " 参展职位删除成功!"]);
  242. }
  243. public function isOwn($ids,$company_id)
  244. {
  245. $ids = is_array($ids)?$ids:explode(',',$ids);
  246. $putJobs = $this->jobfairoutPutJobRepository->getPluck(['company_id'=>$company_id],'id')->toArray();
  247. if(array_diff($ids,$putJobs))
  248. {
  249. throw new ResponseException('抱歉,您只能操作自己的招聘会职位!');
  250. }
  251. }
  252. }