serviceRepository = $serviceRepository; } /** * 保存一个服务 * @param $data * @param $user */ public function save($data,$user) { if(array_key_exists('id',$data)){ $where['id'] = $data['id']; $where['uid'] = $user->id; $info = $this->serviceInfo($where); if(!$info){ return response()->json(['status' => 0, 'msg' => "无权编辑"]); } unset($data['id']); switch ($info['service_type']) { case '1': $detail = [ 'training_ctontents' => $data['training_ctontents'], 'training_duration' => $data['training_duration'], 'training_expenses' => $data['training_expenses'] ]; unset($data['training_expenses']); unset($data['training_duration']); unset($data['training_ctontents']); $data['detail'] = serialize($detail); break; case '2': if(intval($data['iscustomize']) == '1'){ $detail['job'] = $data['other_job']; }else{ switch (intval($data['job'])) { case 1: $detail['job'] = '总经理/副总经理'; break; case 2: $detail['job'] = '人事经理'; break; case 3: $detail['job'] = '财务经理'; break; case 4: $detail['job'] = '市场经理'; break; case 5: $detail['job'] = '营销经理'; break; case 6: $detail['job'] = '产品经理'; break; case 7: $detail['job'] = '技术经理'; break; case 8: $detail['job'] = '厂长'; break; case 9: $detail['job'] = '生产经理'; break; case 10: $detail['job'] = '高级工程师'; break; case 11: $detail['job'] = '博士后/博士'; break; case 12: $detail['job'] = '工商管理高级人才'; break; } } $detail['iscustomize'] = $data['iscustomize']; $detail['check'] = $data['check']; $detail['desc'] = $data['desc']; $detail['job_value'] = $data['job']; unset($data['iscustomize']); unset($data['check']); unset($data['desc']); unset($data['job']); unset($data['other_job']); $data['detail'] = serialize($detail); break; case '3': $detail = []; foreach ($data['trade'] as $k => $v){ $item = [ 'trade' => $v, 'job_type' => $data['job_type'][$k], 'district' => $data['district'][$k], 'time' => $data['time'][$k], 'salary' => $data['salary'][$k], 'number' => $data['number'][$k], 'sharetype' => $data['sharetype'][$k], 'check' => $data['check'][$k], 'remark' => $data['remark'][$k] ]; array_push($detail,$item); } unset($data['job_type']); unset($data['trade']); unset($data['district']); unset($data['time']); unset($data['salary']); unset($data['number']); unset($data['sharetype']); unset($data['check']); unset($data['remark']); $data['detail'] = serialize($detail); break; case '4': $detail['other_service'] = $data['other_service']; unset($data['other_service']); $data['detail'] = serialize($detail); break; } DB::beginTransaction(); try { if (!$this->serviceRepository->update($data, $info['id'])) { throw new Exception('修改服务失败'); } DB::commit(); return response()->json(['status' => 1, 'msg' => "修改服务成功"]); } catch (Exception $e) { DB::rollback(); return response()->json(['status' => 0, 'msg' => $e->getMessage()]); } }else{ switch ($data['service_type']) { case '1': $detail = [ 'training_ctontents' => $data['training_ctontents'], 'training_duration' => $data['training_duration'], 'training_expenses' => $data['training_expenses'] ]; unset($data['training_expenses']); unset($data['training_duration']); unset($data['training_ctontents']); $data['detail'] = serialize($detail); break; case '2': if(intval($data['iscustomize']) == '1'){ $detail['job'] = $data['other_job']; }else{ switch (intval($data['job'])) { case 1: $detail['job'] = '总经理/副总经理'; break; case 2: $detail['job'] = '人事经理'; break; case 3: $detail['job'] = '财务经理'; break; case 4: $detail['job'] = '市场经理'; break; case 5: $detail['job'] = '营销经理'; break; case 6: $detail['job'] = '产品经理'; break; case 7: $detail['job'] = '技术经理'; break; case 8: $detail['job'] = '厂长'; break; case 9: $detail['job'] = '生产经理'; break; case 10: $detail['job'] = '高级工程师'; break; case 11: $detail['job'] = '博士后/博士'; break; case 12: $detail['job'] = '工商管理高级人才'; break; } } $detail['iscustomize'] = $data['iscustomize']; $detail['check'] = $data['check']; $detail['desc'] = $data['desc']; $detail['job_value'] = $data['job']; unset($data['iscustomize']); unset($data['check']); unset($data['desc']); unset($data['job']); unset($data['other_job']); $data['detail'] = serialize($detail); break; case '3': $detail = []; foreach ($data['trade'] as $k => $v){ $item = [ 'trade' => $v, 'job_type' => $data['job_type'][$k], 'district' => $data['district'][$k], 'time' => $data['time'][$k], 'salary' => $data['salary'][$k], 'number' => $data['number'][$k], 'sharetype' => $data['sharetype'][$k], 'check' => $data['check'][$k], 'remark' => $data['remark'][$k] ]; array_push($detail,$item); } unset($data['job_type']); unset($data['trade']); unset($data['district']); unset($data['time']); unset($data['salary']); unset($data['number']); unset($data['sharetype']); unset($data['check']); unset($data['remark']); $data['detail'] = serialize($detail); break; case '4': $detail['other_service'] = $data['other_service']; unset($data['other_service']); $data['detail'] = serialize($detail); break; } $data['utype'] = $user->utype; $data['uid'] = $user->id; $data['status'] = 1; DB::beginTransaction(); try { if(!$this->serviceRepository->create($data)) { throw new Exception('发布服务失败'); } DB::commit(); return response()->json(['status' => 1, 'msg' => "发布服务成功"]); }catch (Exception $e){ DB::rollback(); return response()->json(['status' => 0, 'msg' => $e->getMessage()]); } } } public function list($user = null) { if(!$user){ $where = [ 'status' => 1 ]; }else{ $where = [ 'status' => 1, 'uid' => $user->id ]; } $page = 5; $list = $this->serviceRepository->list($page, $where); $res = []; $org_list = []; foreach ($list as $k => $v){ if(!array_key_exists($v->uid,$org_list)){ $org = DB::table('organization')->whereRaw('id='.$v->uid)->get(); $org_list[$v->uid] = $org[0]; } $list[$k]->orgname = $org_list[$v->uid]->orgname; $list[$k]->email = $org_list[$v->uid]->email; $list[$k]->mobile = $org_list[$v->uid]->mobile; $list[$k]->tel = $org_list[$v->uid]->landline_tel; switch(intval($v->service_type)) { case 1: $list[$k]->type = '管理培训'; break; case 2: $list[$k]->type = '猎头服务'; break; case 3: $list[$k]->type = '人力资源供应'; break; case 4: $list[$k]->type = '其它'; break; } $list[$k]->detail = unserialize($v->detail); } return $list; } public function total($id){ $where['uid'] = $id; $where['status'] = 1; return $this->serviceRepository->total($where); } public function serviceDel($id, $user) { $where['id'] = $id; $where['uid'] = $user->id; DB::beginTransaction(); try { if (!$this->serviceRepository->delService($where)) { throw new Exception('删除服务成功'); } DB::commit(); return response()->json(['status' => 1, 'msg' => '服务删除成功', 'data' => '']); }catch (Exception $e){ DB::rollback(); return response()->json(['status' => 0, 'msg' =>$e->getMessage(), 'data' => '']); } } public function serviceInfo($where){ $info = $this->serviceRepository->getService($where); if($info){ $detail = unserialize($info->detail); foreach($detail as $k => $v){ $types = explode(',',$v['sharetype']); foreach ($types as $kk => $vv){ switch (intval($vv)){ case 1: $types[$kk] = '小时工'; break; case 2: $types[$kk] = '劳务派遣'; break; case 3: $types[$kk] = '委托招聘'; break; case 4: $types[$kk] = '服务外包'; break; case 5: $types[$kk] = '其它'; break; } } $detail[$k]['sharetype'] = implode(',',$types); } $info->detail = $detail; return $info; }else{ return false; } } }