Просмотр исходного кода

Merge branch '20250306_jobrecuiting_fr' into dev

15313670163 2 месяцев назад
Родитель
Сommit
f08956f906
4 измененных файлов с 391 добавлено и 142 удалено
  1. 206 132
      app/Controller/NewsController.php
  2. 106 0
      app/JsonRpc/NewsService.php
  3. 66 0
      app/JsonRpc/NewsServiceInterface.php
  4. 13 10
      config/api/news.php

+ 206 - 132
app/Controller/NewsController.php

@@ -11,6 +11,8 @@ use Hyperf\Validation\Contract\ValidatorFactoryInterface;
 use Hyperf\Context\Context;
 use Hyperf\Context\Context;
 use App\JsonRpc\UserServiceInterface;
 use App\JsonRpc\UserServiceInterface;
 use App\JsonRpc\WebsiteServiceInterface;
 use App\JsonRpc\WebsiteServiceInterface;
+use Laminas\Mime\Decode;
+
 /**
 /**
  * Class NewsController
  * Class NewsController
  * @package App\Controller
  * @package App\Controller
@@ -26,6 +28,11 @@ class NewsController extends AbstractController
      */
      */
     #[Inject]
     #[Inject]
     private $newsServiceClient;
     private $newsServiceClient;
+    /**
+     * @var WebsiteServiceInterface
+     */
+    #[Inject]
+    private $websiteServiceClient;
 
 
     /**
     /**
      * @var UserServiceInterface
      * @var UserServiceInterface
@@ -680,7 +687,7 @@ class NewsController extends AbstractController
         }
         }
         $requireData['website_id'] = Context::get("SiteId");
         $requireData['website_id'] = Context::get("SiteId");
         $requireData['user_id'] = Context::get("UserId");
         $requireData['user_id'] = Context::get("UserId");
-        return Result::success($requireData);
+        // return Result::success($requireData);
         if (empty($requireData['website_id']) || empty($requireData['user_id'])){
         if (empty($requireData['website_id']) || empty($requireData['user_id'])){
             return Result::error('参数错误');
             return Result::error('参数错误');
         }
         }
@@ -696,15 +703,18 @@ class NewsController extends AbstractController
         $validator = $this->validationFactory->make(
         $validator = $this->validationFactory->make(
             $requireData,
             $requireData,
             [
             [
-                'id'=>'required',
+                'id'=>'required|integer',
             ],
             ],
             [
             [
                 'id.required' => 'id不能为空',
                 'id.required' => 'id不能为空',
+                'id.integer' => 'id必须是整数',
             ]
             ]
         );
         );
         if ($validator->fails()) {
         if ($validator->fails()) {
             $errorMessage = $validator->errors()->first();   
             $errorMessage = $validator->errors()->first();   
+            return Result::error($errorMessage);
         }
         }
+        // return Result::success($requireData);
         $result = $this->newsServiceClient->getJobRecruitingInfo($requireData);
         $result = $this->newsServiceClient->getJobRecruitingInfo($requireData);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
     }
     }
@@ -714,25 +724,24 @@ class NewsController extends AbstractController
     */
     */
     public function addJobRecruiting(){
     public function addJobRecruiting(){
         $requireData = $this->request->all();
         $requireData = $this->request->all();
+        // return Result::success($requireData);
         $validator = $this->validationFactory->make(
         $validator = $this->validationFactory->make(
             $requireData,
             $requireData,
             [
             [
                 'title'=>'required',
                 'title'=>'required',
-                'cat_arr_id'=>'required|array',
+                'cat_arr_id'=>'required',
-                'city_ayy_id'=>'required|array',
+                'city_arr_id'=>'required',
                 'hy_id'=>'required|integer',
                 'hy_id'=>'required|integer',
                 'zw_id'=>'required|integer',
                 'zw_id'=>'required|integer',
                 'jtzw_id'=>'required|integer',
                 'jtzw_id'=>'required|integer',
                 'nature_id'=>'required|integer',
                 'nature_id'=>'required|integer',
-                'due_data'=>'required|date',
+                'due_data'=>'required',
-                'decription'=>'required',
+                'description'=>'required',
             ],   
             ],   
             [
             [
                 'title.required' => '职位名称不能为空',
                 'title.required' => '职位名称不能为空',
                 'cat_arr_id.required' => '栏目不能为空',
                 'cat_arr_id.required' => '栏目不能为空',
-                'cat_arr_id.array' => '栏目必须是数组',
                 'city_arr_id.required' => '工作地区不能为空',
                 'city_arr_id.required' => '工作地区不能为空',
-                'city_arr_id.array' => '工作地区必须是数组',
                 'hy_id.required' => '行业分类不能为空',
                 'hy_id.required' => '行业分类不能为空',
                 'hy_id.integer' => '行业分类必须是整数',
                 'hy_id.integer' => '行业分类必须是整数',
                 'zw_id.required' => '职位分类不能为空',
                 'zw_id.required' => '职位分类不能为空',
@@ -742,136 +751,201 @@ class NewsController extends AbstractController
                 'nature_id.required' => '职位性质不能为空',
                 'nature_id.required' => '职位性质不能为空',
                 'nature_id.integer' => '职位性质必须是整数',
                 'nature_id.integer' => '职位性质必须是整数',
                 'due_data.required' => '截止日期不能为空',
                 'due_data.required' => '截止日期不能为空',
-                'due_data.date' => '截止日期格式不正确',
+                'description.required' => '职位描述不能为空'
-                'decription.required' => '职位描述不能为空'
             ]
             ]
-
         ); 
         ); 
-        $website_id = Context::get("SiteId") ?? 0;
-        $user_id = Context::get("UserId") ?? 0;
         if ($validator->fails()) {
         if ($validator->fails()) {
             $errorMessage = $validator->errors()->first();
             $errorMessage = $validator->errors()->first();
             return Result::error($errorMessage);
             return Result::error($errorMessage);
         }
         }
-        $requireData['website_id'] = $website_id;
+        if(isset($requireData['website_id']) && $requireData['website_id'] != null){
-        $requireData['user_id'] = $user_id;
+            $requireData['website_id'] = $requireData['website_id'];
-        return Result::success($requireData);
+        }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);
         $result = $this->newsServiceClient->addJobRecruiting($requireData);
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
         return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
     }
     }
-    // /*
+    /*
-    // *后端-招聘 修改职位
+    *后端-招聘 修改职位
-    // * @return array
+    * @return array
-    // */
+    */
-    // public function upJobRecruiting(){
+    public function upJobRecruiting(){
-    //     $requireData = $this->request->all();
+        $requireData = $this->request->all();
-    //     $validator = $this->validationFactory->make(
+        $validator = $this->validationFactory->make(
-    //         $requireData,
+            $requireData,
-    //         [
+            [
-    //             'title'=>'required',
+                'id'=>'required|integer',
-    //             'job_type'=>'required',
+                'title'=>'required',
-    //             'job_level'=>'required',
+                'cat_arr_id'=>'required',
-    //             'job_num'=>'required',
+                'city_arr_id'=>'required',
-    //             'job_address'=>'required',
+                'hy_id'=>'required|integer',
-    //             'job_content'=>'required',
+                'zw_id'=>'required|integer',
-    //             'job_require'=>'required',
+                'jtzw_id'=>'required|integer',
-    //             'job_responsibility'=>'required',
+                'nature_id'=>'required|integer',
-    //             'job_benefits'=>'required',
+                'due_data'=>'required',
-
+                'description'=>'required',
-    //         ],   
+            ],   
-    //         [
+            [
-    //             'title.required' => '职位名称不能为空',
+                'id.required' => 'id不能为空',
-    //             'job_type.required' => '职位类型不能为空',
+                'id.integer' => 'id必须是整数',
-    //             'job_level.required' => '职位级别不能为空',
+                'title.required' => '职位名称不能为空',
-    //             'job_num.required' => '招聘人数不能为空',
+                'cat_arr_id.required' => '栏目不能为空',
-    //             'job_address.required' => '工作地点不能为空',
+                'city_arr_id.required' => '工作地区不能为空',
-    //             'job_content.required' => '职位内容不能为空',
+                'hy_id.required' => '行业分类不能为空',
-    //             'job_require.required' => '职位要求不能为空',
+                'hy_id.integer' => '行业分类必须是整数',
-    //             'job_responsibility.required' => '岗位职责不能为空',
+                'zw_id.required' => '职位分类不能为空',
-    //             'job_benefits.required' => '岗位福利不能为空',
+                'zw_id.integer' => '职位分类必须是整数',
-    //         ]
+                'jtzw_id.required' => '职位不能为空',
-
+                'jtzw_id.integer' => '职位分类必须是整数',
-    //     ); 
+                'nature_id.required' => '职位性质不能为空',
-    //     $result = $this->newsServiceClient->upJobRecruiting($requireData);
+                'nature_id.integer' => '职位性质必须是整数',
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
+                'due_data.required' => '截止日期不能为空',
-    // }
+                'description.required' => '职位描述不能为空'
-    // /*
+            ]
-    // *后端-招聘 删除职位
+
-    // * @return array
+        ); 
-    // */
+        if ($validator->fails()) {
-    // public function delJobRecruiting(){
+            $errorMessage = $validator->errors()->first();
-    //     $requireData = $this->request->all();
+            return Result::error($errorMessage);
-    //     $validator = $this->validationFactory->make(
+        }
-    //         $requireData,
+        if(isset($requireData['website_id']) && $requireData['website_id'] != null){
-    //         [
+            $requireData['website_id'] = $requireData['website_id'];
-    //             'id'=>'required',
+        }else{
-    //         ],
+            $requireData['website_id'] = Context::get("SiteId");
-    //         [
+        }
-    //             'id.required' => 'id不能为空',
+        // $requireData['website_id'] = Context::get("SiteId") ?? 0;
-    //         ]   
+        $requireData['user_id'] = Context::get("UserId") ?? 0;
-    //     );
+        $result = $this->newsServiceClient->upJobRecruiting($requireData);
-    //     $result = $this->newsServiceClient->delJobRecruiting($requireData);
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
+    }
-    // }
+    /*
-    // /*
+    *后端-招聘 删除职位
-    // *后端-招聘 职位状态
+    * @return array
-    // * @return array
+    */
-    // */
+    public function delJobRecruiting(){
-    // public function upJobRecruitingStatus(){
+        $requireData = $this->request->all();
-    //     $requireData = $this->request->all();
+        $validator = $this->validationFactory->make(
-    //     $validator = $this->validationFactory->make(
+            $requireData,
-    //         $requireData,
+            [
-    //         [
+                'id'=>'required',
-    //             'id'=>'required',
+            ],
-    //             'status'=>'required',
+            [
-    //         ],
+                'id.required' => 'id不能为空',
-    //         [
+            ]   
-    //             'id.required' => 'id不能为空',
+        );
-    //             'status.required' => 'status不能为空',
+        $result = $this->newsServiceClient->delJobRecruiting($requireData);
-    //         ]
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);  
-    //     );
+    }
-    //     $result = $this->newsServiceClient->upJobRecruitingStatus($requireData);
+    /*
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+    *后端-招聘 获取地区-省-市
-    // }
+    * @return array
-    // /*
+    */
-    // *后端-招聘 职位状态
+    public function getJobRecruitingArea(){
-    // * @return array
+        $requireData = $this->request->all();        
-    // */
+        $result = $this->websiteServiceClient->selectWebsiteArea($requireData);
-    // public function getJobRecruitingStatus(){
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
-    //     $requireData = $this->request->all();
+    }
-    //     $validator = $this->validationFactory->make(
+    /*
-    //         $requireData,
+    *后端-招聘 行业分类
-    //         [
+    * @return array
-    //             'id'=>'required',
+    */
-    //         ],
+    public function getIndustry(){
-    //         [
+        $requireData = $this->request->all();
-    //             'id.required' => 'id不能为空',
+        $validator = $this->validationFactory->make(
-    //         ]
+            $requireData,
-    //     );
+            [
-    //     $result = $this->newsServiceClient->getJobRecruitingStatus($requireData);
+                'id'=>'required',
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
+            ],
-    // }
+            [
-    // /*
+                'id.required' => 'id不能为空',
-    // *后端-招聘 职位状态
+            ]
-    // * @return array
+        );
-    // */
+        $result = $this->newsServiceClient->getIndustry($requireData);
-    // public function getJobRecruitingStatusList(){
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);   
-    //     $requireData = $this->request->all();
+    }
-    //     $validator = $this->validationFactory->make(
+    /*
-    //         $requireData,
+    *后端-招聘 职位分类
-    //         [
+    * @return array
-    //             'id'=>'required',
+    */
-    //         ],
+    public function getPositionList(){
-    //         [
+        $requireData = $this->request->all();
-    //             'id.required' => 'id不能为空',
+        $result = $this->newsServiceClient->getPositionList($requireData);
-    //         ]    
+        return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);    
-    //     );
+    }
-    //     if ($validator->fails()) {
+     /*
-    //         $errorMessage = $validator->errors()->first();
+    *后端-招聘 职位性质
-    //         return Result::error($errorMessage);
+    * @return array
-    //     }
+    */
-    //     $result = $this->newsServiceClient->getJobRecruitingStatusList($requireData);
+    public function getJobNature(){
-    //     return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);    
+        $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']);   
+    }
+}
+

+ 106 - 0
app/JsonRpc/NewsService.php

@@ -261,4 +261,110 @@ class NewsService extends AbstractServiceClient implements NewsServiceInterface
     {
     {
         return $this->__request(__FUNCTION__, $data);
         return $this->__request(__FUNCTION__, $data);
     }
     }
+
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getJobRecruitingArea(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getIndustry(array $data)
+    {
+        return $this->__request(__FUNCTION__, $data);
+    }
+    /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getPositionList(array $data)
+    {
+        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);
+    }
 }
 }

+ 66 - 0
app/JsonRpc/NewsServiceInterface.php

@@ -142,4 +142,70 @@ interface NewsServiceInterface
      * @return mixed
      * @return mixed
      */
      */
     public function addJobRecruiting(array $data);
     public function addJobRecruiting(array $data);
+
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getJobRecruitingArea(array $data);
+     /**
+     * @param array $data
+     * @return mixed
+     */
+    public function getIndustry(array $data);
+     /**
+     * @param array $data
+     * @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);
 }
 }

+ 13 - 10
config/api/news.php

@@ -52,19 +52,22 @@ Router::addGroup(
 
 
         // 20250306 招聘
         // 20250306 招聘
         Router::get('/getJobRecruitingList', [NewsController::class, 'getJobRecruitingList']);
         Router::get('/getJobRecruitingList', [NewsController::class, 'getJobRecruitingList']);
-        Router::post('/getJobRecruitingInfo', [NewsController::class, 'getJobRecruitingInfo']);
+        Router::get('/getJobRecruitingInfo', [NewsController::class, 'getJobRecruitingInfo']);
         Router::post('/addJobRecruiting', [NewsController::class, 'addJobRecruiting']);
         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::post('/delJobRecruiting', [NewsController::class, 'delJobRecruiting']);
-        Router::post('/getIndustry', [NewsController::class, 'getIndustry']);
+        // 菜单
+        Router::get('/getJobRecruitingArea', [NewsController::class, 'getJobRecruitingArea']);
+        Router::get('/getIndustry', [NewsController::class, 'getIndustry']);
         Router::get('/getPositionList', [NewsController::class, 'getPositionList']);
         Router::get('/getPositionList', [NewsController::class, 'getPositionList']);
-        Router::post('/getPosition', [NewsController::class, 'getPosition']);
+        Router::get('/getJobNature', [NewsController::class, 'getJobNature']);
-        Router::post('/getNature', [NewsController::class, 'getNature']);
+        Router::get('/getExperience', [NewsController::class, 'getExperience']);
-        Router::post('/getExperience', [NewsController::class, 'getExperience']);
+        Router::get('/getEducation', [NewsController::class, 'getEducation']);
-        Router::post('/getEducation', [NewsController::class, 'getEducation']);
+        Router::get('/getSalary', [NewsController::class, 'getSalary']);
-        Router::post('/getSalary', [NewsController::class, 'getSalary']);
+        Router::get('/getLanguage', [NewsController::class, 'getLanguage']);
-        Router::post('/getLanguage', [NewsController::class, 'getLanguage']);
+        Router::get('/getLevel', [NewsController::class, 'getLevel']);
-        Router::post('/getLevel', [NewsController::class, 'getLevel']);
+        Router::get('/getCompanySize', [NewsController::class, 'getCompanySize']);
+        Router::get('/getCompanyNature', [NewsController::class, 'getCompanyNature']);
         
         
         // 20250306 招聘
         // 20250306 招聘