| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377 | <?phpnamespace 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;        }    }}
 |