123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 |
- <?php
- namespace App\Services\Organization;
- use App\Repositories\ServiceRepository;
- use Illuminate\Support\Facades\DB;
- use Exception;
- class ServiceService
- {
- protected $serviceRepository;
- public function __construct(ServiceRepository $serviceRepository)
- {
- $this->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;
- }
- }
- }
|