|
@@ -11,6 +11,8 @@ use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
|
|
use Hyperf\Context\Context;
|
|
|
use App\JsonRpc\UserServiceInterface;
|
|
|
use App\JsonRpc\WebsiteServiceInterface;
|
|
|
+use Laminas\Mime\Decode;
|
|
|
+
|
|
|
/**
|
|
|
* Class NewsController
|
|
|
* @package App\Controller
|
|
@@ -26,6 +28,11 @@ class NewsController extends AbstractController
|
|
|
*/
|
|
|
#[Inject]
|
|
|
private $newsServiceClient;
|
|
|
+ /**
|
|
|
+ * @var WebsiteServiceInterface
|
|
|
+ */
|
|
|
+ #[Inject]
|
|
|
+ private $websiteServiceClient;
|
|
|
|
|
|
/**
|
|
|
* @var UserServiceInterface
|
|
@@ -782,4 +789,464 @@ class NewsController extends AbstractController
|
|
|
}
|
|
|
|
|
|
//20250324 通知,公告,消息
|
|
|
-}
|
|
|
+
|
|
|
+ // 20250306 招聘
|
|
|
+ /*
|
|
|
+ *后端-招聘 搜索及获取职位
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getJobRecruitingList(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'page'=> 'integer|required',
|
|
|
+ 'page_size'=> 'integer|required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'page.integer' => 'page必须是整型',
|
|
|
+ 'page_size.integer' => 'page_size必须是整型',
|
|
|
+ 'page.required' => 'page不能为空',
|
|
|
+ 'page_size.required' => 'page_size不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $requireData['website_id'] = Context::get("SiteId");
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ // return Result::success($requireData);
|
|
|
+ if (empty($requireData['website_id']) || empty($requireData['user_id'])){
|
|
|
+ return Result::error('参数错误');
|
|
|
+ }
|
|
|
+ $result = $this->newsServiceClient->getJobRecruitingList($requireData);
|
|
|
+ return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ *后端-招聘 获取公司信息
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getJobCompany(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ if(!empty($requireData)){
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'job_id'=>'integer|required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'job_id.integer' => '职位id必须是整数',
|
|
|
+ 'job_id.required' => '职位id不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $requireData['website_id'] = Context::get("SiteId");
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ // return Result::success($requireData);
|
|
|
+ if (empty($requireData['user_id'])){
|
|
|
+ return Result::error('参数错误');
|
|
|
+ }
|
|
|
+ $result = $this->newsServiceClient->getJobCompany($requireData);
|
|
|
+ return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ *后端-招聘 修改公司信息
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function upJobCompany(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'user_id'=>'required',
|
|
|
+ 'business_name'=>'required',
|
|
|
+ 'company_hy_id'=>'required|integer',
|
|
|
+ 'company_size'=>'required|integer',
|
|
|
+ 'introduction'=>'required',
|
|
|
+ 'real_name'=>'required',
|
|
|
+ 'mobile'=>'required|integer',
|
|
|
+ 'address_arr_id'=>'required',
|
|
|
+ 'address'=>'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'user_id.required' => '用户id不能为空',
|
|
|
+ 'business_name.required' => '公司名称不能为空',
|
|
|
+ 'company_hy_id.required' => '所属行业不能为空',
|
|
|
+ 'company_hy_id.integer' => '所属行业必须是整数',
|
|
|
+ 'company_size.required' => '公司规模不能为空',
|
|
|
+ 'company_size.integer' => '公司规模必须是整数',
|
|
|
+ 'introduction.required' => '公司简介不能为空',
|
|
|
+ 'real_name.required' => '联系人不能为空',
|
|
|
+ 'mobile.required' => '联系电话不能为空',
|
|
|
+ 'mobile.integer' => '联系电话必须是整数',
|
|
|
+ 'address_arr_id.required' => '公司地址不能为空',
|
|
|
+ 'address.required' => '公司详细地址不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ $requireData['website_id'] = Context::get("SiteId");
|
|
|
+
|
|
|
+ // return Result::success($requireData);
|
|
|
+ if (empty($requireData['user_id'])){
|
|
|
+ return Result::error('参数错误');
|
|
|
+ }
|
|
|
+ $result = $this->newsServiceClient->upJobCompany($requireData);
|
|
|
+ return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ *后端-招聘 获取职位详情
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getJobRecruitingInfo(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id'=>'required|integer',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+ 'id.integer' => 'id必须是整数',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ if ($validator->fails()) {
|
|
|
+ $errorMessage = $validator->errors()->first();
|
|
|
+ return Result::error($errorMessage);
|
|
|
+ }
|
|
|
+ // return Result::success($requireData);
|
|
|
+ $requireData['website_id'] = Context::get("SiteId");
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ // return Result::success($requireData);
|
|
|
+ if (empty($requireData['user_id'])){
|
|
|
+ return Result::error('参数错误');
|
|
|
+ }
|
|
|
+ $result = $this->newsServiceClient->getJobRecruitingInfo($requireData);
|
|
|
+ return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ *后端-招聘 新增职位
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function addJobRecruiting(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ // 定义验证规则数组
|
|
|
+ $jobValidationRules = [
|
|
|
+ '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',
|
|
|
+ ];
|
|
|
+ // 定义验证错误信息数组
|
|
|
+ $jobValidationMessages = [
|
|
|
+ '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' => '职位描述不能为空',
|
|
|
+ ];
|
|
|
+ // 定义公司信息验证规则数组
|
|
|
+ $companyValidationRules = [
|
|
|
+ 'website_id' =>'required|integer',
|
|
|
+ 'business_name' => 'required',
|
|
|
+ 'company_hy_id' => 'required|integer',
|
|
|
+ 'company_size' => 'required|integer',
|
|
|
+ 'company_nature' =>'required|integer',
|
|
|
+ 'introduction' => 'required',
|
|
|
+ 'real_name' => 'required',
|
|
|
+ // 将联系电话的验证规则修改为最少十一位整数
|
|
|
+ 'mobile' => 'required|integer|min:10000000000',
|
|
|
+ 'address_arr_id' => 'required',
|
|
|
+ 'address' => 'required',
|
|
|
+ ];
|
|
|
+ // 定义公司信息验证错误信息数组
|
|
|
+ $companyValidationMessages = [
|
|
|
+ 'website_id.required' => '网站ID不能为空',
|
|
|
+ 'website_id.integer' => '网站ID必须是整数',
|
|
|
+ 'business_name.required' => '公司名称不能为空',
|
|
|
+ 'company_hy_id.required' => '所属行业不能为空',
|
|
|
+ 'company_hy_id.integer' => '所属行业必须是整数',
|
|
|
+ 'company_size.required' => '公司规模不能为空',
|
|
|
+ 'company_size.integer' => '公司规模必须是整数',
|
|
|
+ 'company_nature.required' => '公司性质不能为空',
|
|
|
+ 'company_nature.integer' => '公司性质必须是整数',
|
|
|
+ 'introduction.required' => '公司简介不能为空',
|
|
|
+ 'real_name.required' => '联系人不能为空',
|
|
|
+ 'mobile.required' => '联系电话不能为空',
|
|
|
+ 'mobile.integer' => '联系电话必须是整数',
|
|
|
+ 'mobile.min' => '联系电话必须是11位',
|
|
|
+ 'address_arr_id.required' => '公司地址不能为空',
|
|
|
+ 'address.required' => '公司详细地址不能为空',
|
|
|
+ ];
|
|
|
+ if (!isset($requireData['user_type']) || $requireData['user_type'] === null) {
|
|
|
+ return Result::error('参数错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ switch ($requireData['user_type']) {
|
|
|
+ case 3:
|
|
|
+ $validator = $this->validationFactory->make($requireData, $jobValidationRules, $jobValidationMessages);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return Result::error($validator->errors()->first());
|
|
|
+ }
|
|
|
+ $requireData['website_id'] = Context::get("SiteId") ?? 0;
|
|
|
+ break;
|
|
|
+ case 10000:
|
|
|
+ $validator = $this->validationFactory->make($requireData, $jobValidationRules, $jobValidationMessages);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return Result::error($validator->errors()->first());
|
|
|
+ }
|
|
|
+ $validator = $this->validationFactory->make($requireData, $companyValidationRules, $companyValidationMessages);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return Result::error($validator->errors()->first());
|
|
|
+ }
|
|
|
+ // $requireData['website_id'] = Context::get("SiteId") ?? 0;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return Result::error('不支持的用户类型');
|
|
|
+ }
|
|
|
+ $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();
|
|
|
+ // 定义验证规则数组
|
|
|
+ $jobValidationRules = [
|
|
|
+ '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',
|
|
|
+ ];
|
|
|
+ // 定义验证错误信息数组
|
|
|
+ $jobValidationMessages = [
|
|
|
+ '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' => '职位描述不能为空',
|
|
|
+ ];
|
|
|
+ // 定义公司信息验证规则数组
|
|
|
+ $companyValidationRules = [
|
|
|
+ 'business_name' => 'required',
|
|
|
+ 'company_hy_id' => 'required',
|
|
|
+ 'company_size' => 'required',
|
|
|
+ 'company_nature' =>'required',
|
|
|
+ 'introduction' => 'required',
|
|
|
+ 'real_name' => 'required',
|
|
|
+ // 将联系电话的验证规则修改为最少十一位整数
|
|
|
+ 'mobile' => 'required|integer|min:10000000000',
|
|
|
+ 'address_arr_id' => 'required',
|
|
|
+ 'address' => 'required',
|
|
|
+ ];
|
|
|
+ // 定义公司信息验证错误信息数组
|
|
|
+ $companyValidationMessages = [
|
|
|
+ 'business_name.required' => '公司名称不能为空',
|
|
|
+ 'company_hy_id.required' => '所属行业不能为空',
|
|
|
+ 'company_size.required' => '公司规模不能为空',
|
|
|
+ 'company_nature.required' => '公司性质不能为空',
|
|
|
+ 'introduction.required' => '公司简介不能为空',
|
|
|
+ 'real_name.required' => '联系人不能为空',
|
|
|
+ 'mobile.required' => '联系电话不能为空',
|
|
|
+ 'mobile.integer' => '联系电话必须是整数',
|
|
|
+ 'mobile.min' => '联系电话必须是11位',
|
|
|
+ 'address_arr_id.required' => '公司地址不能为空',
|
|
|
+ 'address.required' => '公司详细地址不能为空',
|
|
|
+ ];
|
|
|
+ if (!isset($requireData['user_type']) || $requireData['user_type'] === null) {
|
|
|
+ return Result::error('参数错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ switch ($requireData['user_type']) {
|
|
|
+ case 3:
|
|
|
+ $validator = $this->validationFactory->make($requireData, $jobValidationRules, $jobValidationMessages);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return Result::error($validator->errors()->first());
|
|
|
+ }
|
|
|
+ $requireData['website_id'] = Context::get("SiteId") ?? 0;
|
|
|
+ break;
|
|
|
+ case 10000:
|
|
|
+ $validator = $this->validationFactory->make($requireData, $jobValidationRules, $jobValidationMessages);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return Result::error($validator->errors()->first());
|
|
|
+ }
|
|
|
+ $validator = $this->validationFactory->make($requireData, $companyValidationRules, $companyValidationMessages);
|
|
|
+ if ($validator->fails()) {
|
|
|
+ return Result::error($validator->errors()->first());
|
|
|
+ }
|
|
|
+ // $requireData['website_id'] = Context::get("SiteId") ?? 0;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ return Result::error('不支持的用户类型');
|
|
|
+ }
|
|
|
+ $requireData['user_id'] = Context::get("UserId") ?? 0;
|
|
|
+ // return Result::success($requireData);
|
|
|
+ $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不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ $requireData['user_id'] = Context::get("UserId");
|
|
|
+ $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->websiteServiceClient->selectWebsiteArea($requireData);
|
|
|
+ return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ *后端-招聘 行业分类
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getIndustry(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $validator = $this->validationFactory->make(
|
|
|
+ $requireData,
|
|
|
+ [
|
|
|
+ 'id'=>'required',
|
|
|
+ ],
|
|
|
+ [
|
|
|
+ 'id.required' => 'id不能为空',
|
|
|
+ ]
|
|
|
+ );
|
|
|
+ $result = $this->newsServiceClient->getIndustry($requireData);
|
|
|
+ return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
|
|
|
+ }
|
|
|
+ /*
|
|
|
+ *后端-招聘 职位分类
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getPositionList(){
|
|
|
+ $requireData = $this->request->all();
|
|
|
+ $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']);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|