소스 검색

初步完成招聘功能1.0

15313670163 1 개월 전
부모
커밋
809aca5274
4개의 변경된 파일302개의 추가작업 그리고 81개의 파일을 삭제
  1. 161 73
      app/Controller/NewsController.php
  2. 81 0
      app/JsonRpc/NewsService.php
  3. 50 0
      app/JsonRpc/NewsServiceInterface.php
  4. 10 8
      config/api/news.php

+ 161 - 73
app/Controller/NewsController.php

@@ -28,6 +28,11 @@ class NewsController extends AbstractController
      */
     #[Inject]
     private $newsServiceClient;
+    /**
+     * @var WebsiteServiceInterface
+     */
+    #[Inject]
+    private $websiteServiceClient;
 
     /**
      * @var UserServiceInterface
@@ -636,7 +641,7 @@ class NewsController extends AbstractController
         }
         $requireData['website_id'] = Context::get("SiteId");
         $requireData['user_id'] = Context::get("UserId");
-        return Result::success($requireData);
+        // return Result::success($requireData);
         if (empty($requireData['website_id']) || empty($requireData['user_id'])){
             return Result::error('参数错误');
         }
@@ -652,15 +657,18 @@ class NewsController extends AbstractController
         $validator = $this->validationFactory->make(
             $requireData,
             [
-                'id'=>'required',
+                'id'=>'required|integer',
             ],
             [
                 'id.required' => 'id不能为空',
+                'id.integer' => 'id必须是整数',
             ]
         );
         if ($validator->fails()) {
             $errorMessage = $validator->errors()->first();   
+            return Result::error($errorMessage);
         }
+        // return Result::success($requireData);
         $result = $this->newsServiceClient->getJobRecruitingInfo($requireData);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
     }
@@ -704,73 +712,94 @@ class NewsController extends AbstractController
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
         }
-
-        $requireData['website_id'] = Context::get("SiteId") ?? 0;
+        if(isset($requireData['website_id']) && $requireData['website_id'] != null){
+            $requireData['website_id'] = $requireData['website_id'];
+        }else{
+            $requireData['website_id'] = Context::get("SiteId");
+        }
+        // $requireData['website_id'] = Context::get("SiteId") ?? 0;
         $requireData['user_id'] = Context::get("UserId") ?? 0;
         $result = $this->newsServiceClient->addJobRecruiting($requireData);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
     }
-    // /*
-    // *后端-招聘 修改职位
-    // * @return array
-    // */
-    // public function upJobRecruiting(){
-    //     $requireData = $this->request->all();
-    //     $validator = $this->validationFactory->make(
-    //         $requireData,
-    //         [
-    //             'title'=>'required',
-    //             'job_type'=>'required',
-    //             'job_level'=>'required',
-    //             'job_num'=>'required',
-    //             'job_address'=>'required',
-    //             'job_content'=>'required',
-    //             'job_require'=>'required',
-    //             'job_responsibility'=>'required',
-    //             'job_benefits'=>'required',
-
-    //         ],   
-    //         [
-    //             'title.required' => '职位名称不能为空',
-    //             'job_type.required' => '职位类型不能为空',
-    //             'job_level.required' => '职位级别不能为空',
-    //             'job_num.required' => '招聘人数不能为空',
-    //             'job_address.required' => '工作地点不能为空',
-    //             'job_content.required' => '职位内容不能为空',
-    //             'job_require.required' => '职位要求不能为空',
-    //             'job_responsibility.required' => '岗位职责不能为空',
-    //             'job_benefits.required' => '岗位福利不能为空',
-    //         ]
-
-    //     ); 
-    //     $result = $this->newsServiceClient->upJobRecruiting($requireData);
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
-    // }
-    // /*
-    // *后端-招聘 删除职位
-    // * @return array
-    // */
-    // public function delJobRecruiting(){
-    //     $requireData = $this->request->all();
-    //     $validator = $this->validationFactory->make(
-    //         $requireData,
-    //         [
-    //             'id'=>'required',
-    //         ],
-    //         [
-    //             'id.required' => 'id不能为空',
-    //         ]   
-    //     );
-    //     $result = $this->newsServiceClient->delJobRecruiting($requireData);
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
-    // }
+    /*
+    *后端-招聘 修改职位
+    * @return array
+    */
+    public function upJobRecruiting(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id'=>'required|integer',
+                'title'=>'required',
+                'cat_arr_id'=>'required',
+                'city_arr_id'=>'required',
+                'hy_id'=>'required|integer',
+                'zw_id'=>'required|integer',
+                'jtzw_id'=>'required|integer',
+                'nature_id'=>'required|integer',
+                'due_data'=>'required',
+                'description'=>'required',
+            ],   
+            [
+                'id.required' => 'id不能为空',
+                'id.integer' => 'id必须是整数',
+                'title.required' => '职位名称不能为空',
+                'cat_arr_id.required' => '栏目不能为空',
+                'city_arr_id.required' => '工作地区不能为空',
+                'hy_id.required' => '行业分类不能为空',
+                'hy_id.integer' => '行业分类必须是整数',
+                'zw_id.required' => '职位分类不能为空',
+                'zw_id.integer' => '职位分类必须是整数',
+                'jtzw_id.required' => '职位不能为空',
+                'jtzw_id.integer' => '职位分类必须是整数',
+                'nature_id.required' => '职位性质不能为空',
+                'nature_id.integer' => '职位性质必须是整数',
+                'due_data.required' => '截止日期不能为空',
+                'description.required' => '职位描述不能为空'
+            ]
+
+        ); 
+        if ($validator->fails()) {
+            $errorMessage = $validator->errors()->first();
+            return Result::error($errorMessage);
+        }
+        if(isset($requireData['website_id']) && $requireData['website_id'] != null){
+            $requireData['website_id'] = $requireData['website_id'];
+        }else{
+            $requireData['website_id'] = Context::get("SiteId");
+        }
+        // $requireData['website_id'] = Context::get("SiteId") ?? 0;
+        $requireData['user_id'] = Context::get("UserId") ?? 0;
+        $result = $this->newsServiceClient->upJobRecruiting($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
+    }
+    /*
+    *后端-招聘 删除职位
+    * @return array
+    */
+    public function delJobRecruiting(){
+        $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
+            $requireData,
+            [
+                'id'=>'required',
+            ],
+            [
+                'id.required' => 'id不能为空',
+            ]   
+        );
+        $result = $this->newsServiceClient->delJobRecruiting($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
+    }
     /*
     *后端-招聘 获取地区-省-市
     * @return array
     */
     public function getJobRecruitingArea(){
         $requireData = $this->request->all();        
-        $result = $this->newsServiceClient->getJobRecruitingArea($requireData);
+        $result = $this->websiteServiceClient->selectWebsiteArea($requireData);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
     }
     /*
@@ -797,21 +826,80 @@ class NewsController extends AbstractController
     */
     public function getPositionList(){
         $requireData = $this->request->all();
-        $validator = $this->validationFactory->make(
-            $requireData,
-            [
-                'id'=>'required',
-            ],
-            [
-                'id.required' => 'id不能为空',
-            ]    
-        );
-        if ($validator->fails()) {
-            $errorMessage = $validator->errors()->first();
-            return Result::error($errorMessage);
-        }
         $result = $this->newsServiceClient->getPositionList($requireData);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);    
     }
+     /*
+    *后端-招聘 职位性质
+    * @return array
+    */
+    public function getJobNature(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getJobNature($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);    
+    }
+    /*
+    *后端-招聘 工作经验
+    * @return array
+    */
+    public function getExperience(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getExperience($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /*
+    *后端-招聘 学历
+    * @return array
+    */
+    public function getEducation(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getEducation($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+    }
+    /*
+    *后端-招聘 薪资
+    * @return array
+    */
+    public function getSalary(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getSalary($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+    }
+    /*
+    *后端-招聘 语言
+    * @return array
+    */
+    public function getLanguage(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getLanguage($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+    }
+    /*
+    *后端-招聘 语言-掌握能力
+    * @return array
+    */
+    public function getLevel(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getLevel($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+    }
+    /*
+    *后端-招聘 公司规模
+    * @return array
+    */
+    public function getCompanySize(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getCompanySize($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
+    }
+    /*
+    *后端-招聘 公司性质
+    * @return array
+    */
+    public function getCompanyNature(){
+        $requireData = $this->request->all();
+        $result = $this->newsServiceClient->getCompanyNature($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+    }
+}
 
-}

+ 81 - 0
app/JsonRpc/NewsService.php

@@ -270,4 +270,85 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
     {
         return $this->__request(__FUNCTION__, $data);
     }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getJobNature(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+        
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getExperience(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getEducation(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getSalary(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);   
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getLanguage(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getLevel(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);   
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getCompanySize(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getCompanyNature(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);   
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function upJobRecruiting(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function delJobRecruiting(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
 }

+ 50 - 0
app/JsonRpc/NewsServiceInterface.php

@@ -148,4 +148,54 @@ interface NewsServiceInterface
      * @return mixed
      */
     public function getPositionList(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getJobNature(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getExperience(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getEducation(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getSalary(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getLanguage(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getLevel(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getCompanySize(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getCompanyNature(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function upJobRecruiting(array $data);
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function delJobRecruiting(array $data);
 }

+ 10 - 8
config/api/news.php

@@ -55,18 +55,20 @@ Router::addGroup(
         Router::get('/getJobRecruitingList', [NewsController::class, 'getJobRecruitingList']);
         Router::get('/getJobRecruitingInfo', [NewsController::class, 'getJobRecruitingInfo']);
         Router::post('/addJobRecruiting', [NewsController::class, 'addJobRecruiting']);
-        Router::post('/updateJobRecruiting', [NewsController::class, 'updateJobRecruiting']);
+        Router::post('/upJobRecruiting', [NewsController::class, 'upJobRecruiting']);
         Router::post('/delJobRecruiting', [NewsController::class, 'delJobRecruiting']);
+        // 菜单
         Router::get('/getJobRecruitingArea', [NewsController::class, 'getJobRecruitingArea']);
         Router::get('/getIndustry', [NewsController::class, 'getIndustry']);
         Router::get('/getPositionList', [NewsController::class, 'getPositionList']);
-        Router::post('/getPositionList', [NewsController::class, 'getPositionList']);
-        Router::post('/getNature', [NewsController::class, 'getNature']);
-        Router::post('/getExperience', [NewsController::class, 'getExperience']);
-        Router::post('/getEducation', [NewsController::class, 'getEducation']);
-        Router::post('/getSalary', [NewsController::class, 'getSalary']);
-        Router::post('/getLanguage', [NewsController::class, 'getLanguage']);
-        Router::post('/getLevel', [NewsController::class, 'getLevel']);
+        Router::get('/getJobNature', [NewsController::class, 'getJobNature']);
+        Router::get('/getExperience', [NewsController::class, 'getExperience']);
+        Router::get('/getEducation', [NewsController::class, 'getEducation']);
+        Router::get('/getSalary', [NewsController::class, 'getSalary']);
+        Router::get('/getLanguage', [NewsController::class, 'getLanguage']);
+        Router::get('/getLevel', [NewsController::class, 'getLevel']);
+        Router::get('/getCompanySize', [NewsController::class, 'getCompanySize']);
+        Router::get('/getCompanyNature', [NewsController::class, 'getCompanyNature']);
         
         // 20250306 招聘
     },