NewsController.php 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\NewsServiceInterface;
  5. use App\Tools\PublicData;
  6. use Hyperf\Di\Annotation\Inject;
  7. use Hyperf\HttpServer\Annotation\AutoController;
  8. use App\Tools\Result;
  9. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  10. use Hyperf\Context\Context;
  11. use App\JsonRpc\UserServiceInterface;
  12. use App\JsonRpc\WebsiteServiceInterface;
  13. use Laminas\Mime\Decode;
  14. /**
  15. * Class NewsController
  16. * @package App\Controller
  17. */
  18. //#[AutoController]
  19. class NewsController extends AbstractController
  20. {
  21. #[Inject]
  22. protected ValidatorFactoryInterface $validationFactory;
  23. /**
  24. * @var NewsServiceInterface
  25. */
  26. #[Inject]
  27. private $newsServiceClient;
  28. /**
  29. * @var WebsiteServiceInterface
  30. */
  31. #[Inject]
  32. private $websiteServiceClient;
  33. /**
  34. * @var UserServiceInterface
  35. */
  36. #[Inject]
  37. private $userServiceClient;
  38. /**
  39. * @var WebsiteServiceInterface
  40. */
  41. #[Inject]
  42. private $WebsiteServiceClient;
  43. /**
  44. * 导航池列表
  45. * @return void
  46. */
  47. public function getCategoryList()
  48. {
  49. $result = $this->newsServiceClient->getCategoryList([]);
  50. if($result['code'] == 200){
  51. return Result::success(PublicData::buildMenuTree($result['data']));
  52. }
  53. return Result::error($result['message']);
  54. }
  55. /**
  56. * 站点下的导航池
  57. * @return void
  58. */
  59. public function categoryList()
  60. {
  61. $requireData = $this->request->all();
  62. $validator = $this->validationFactory->make(
  63. $requireData,
  64. [
  65. 'pid'=> 'required'
  66. ],
  67. [
  68. 'pid.required' => '父级ID不能为空'
  69. ]
  70. );
  71. if ($validator->fails()) {
  72. $errorMessage = $validator->errors()->first();
  73. return Result::error($errorMessage);
  74. }
  75. $requireData['website_id'] = Context::get("SiteId");
  76. //获取用户信息
  77. $user_id = Context::get("UserId");
  78. $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
  79. var_dump("用户信息:",$userInfo);
  80. $sszq = $userInfo['data']['sszq'];
  81. $type_id = $userInfo['data']['type_id']; //'1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员 20000:游客(小程序)'
  82. //管理员看所有
  83. if($type_id == 10000){
  84. $result = $this->newsServiceClient->categoryList($requireData);
  85. } else {
  86. $requireData['sszq'] = $sszq;
  87. $result = $this->newsServiceClient->myCategoryList($requireData);
  88. }
  89. // $rep = PublicData::buildMenuTree($result['data']);
  90. return $result ? Result::success($result['data']) : Result::error($result['message']);
  91. }
  92. /**
  93. * 添加导航
  94. * @return array|void
  95. */
  96. public function addCategory()
  97. {
  98. $requireData = $this->request->all();
  99. $validator = $this->validationFactory->make(
  100. $requireData,
  101. [
  102. 'name'=> 'required',
  103. 'seo_title'=> 'required',
  104. 'seo_keywords'=> 'required',
  105. 'seo_description'=> 'required',
  106. ],
  107. [
  108. 'name.required' => '导航池名称不能为空',
  109. 'seo_title.required' => 'seo标题名称不能为空',
  110. 'seo_keywords.required' => 'seo关键词不能为空',
  111. 'seo_description.required' => 'seo描述不能为空',
  112. ]
  113. );
  114. if ($validator->fails()) {
  115. $errorMessage = $validator->errors()->first();
  116. return Result::error($errorMessage);
  117. }
  118. $requireData['pid'] = isset($requireData['pid_arr'])?end($requireData['pid_arr']):'';
  119. $requireData['pid_arr'] = isset($requireData['pid_arr'])?json_encode($requireData['pid_arr']):'';
  120. // $requireData['city_id'] = isset($requireData['city_arr_id'])?end($requireData['city_arr_id']):'';
  121. // $requireData['city_arr_id'] = isset($requireData['city_arr_id'])?json_encode($requireData['city_arr_id']):'';
  122. // $requireData['department_id'] = isset($requireData['department_arr_id'])?end($requireData['department_arr_id']):'';
  123. // $requireData['department_arr_id'] = isset($requireData['department_arr_id'])?json_encode($requireData['department_arr_id']):'';
  124. $result = $this->newsServiceClient->addCategory($requireData);
  125. return $result ? Result::success($result['data']) : Result::error($result['message']);
  126. }
  127. /**
  128. * 更新导航池
  129. * @return array
  130. */
  131. public function updateCategory()
  132. {
  133. $requireData = $this->request->all();
  134. $validator = $this->validationFactory->make(
  135. $requireData,
  136. [
  137. 'id'=>'required',
  138. 'name'=> 'required',
  139. 'seo_title'=> 'required',
  140. 'seo_keywords'=> 'required',
  141. 'seo_description'=> 'required',
  142. ],
  143. [
  144. 'id.required' =>'ID不能为空',
  145. 'name.required' => '栏目池名称不能为空',
  146. 'seo_title.required' => 'seo标题名称不能为空',
  147. 'seo_keywords.required' => 'seo关键词不能为空',
  148. 'seo_description.required' => 'seo描述不能为空',
  149. ]
  150. );
  151. if ($validator->fails()) {
  152. $errorMessage = $validator->errors()->first();
  153. return Result::error($errorMessage);
  154. }
  155. $requireData['pid'] = isset($requireData['pid_arr'])?end($requireData['pid_arr']):'';
  156. $requireData['pid_arr'] = isset($requireData['pid_arr'])?json_encode($requireData['pid_arr']):'';
  157. // $requireData['city_id'] = isset($requireData['city_arr_id'])?end($requireData['city_arr_id']):'';
  158. // $requireData['city_arr_id'] = isset($requireData['city_arr_id'])?json_encode($requireData['city_arr_id']):'';
  159. // $requireData['department_id'] = isset($requireData['department_arr_id'])?end($requireData['department_arr_id']):'';
  160. // $requireData['department_arr_id'] = isset($requireData['department_arr_id'])?json_encode($requireData['department_arr_id']):'';
  161. $result = $this->newsServiceClient->updateCategory($requireData);
  162. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  163. }
  164. /**
  165. * 删除分类
  166. * @return array
  167. */
  168. public function delCategory()
  169. {
  170. $requireData = $this->request->all();
  171. $validator = $this->validationFactory->make(
  172. $requireData,
  173. [
  174. 'id'=> 'required',
  175. ],
  176. [
  177. 'id.required' => 'id不能为空',
  178. ]
  179. );
  180. if ($validator->fails()) {
  181. $errorMessage = $validator->errors()->first();
  182. return Result::error($errorMessage);
  183. }
  184. $result = $this->newsServiceClient->delCategory($requireData);
  185. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  186. }
  187. /**
  188. * 资讯列表
  189. * @return void
  190. */
  191. public function getArticleList()
  192. {
  193. $requireData = $this->request->all();
  194. $validator = $this->validationFactory->make(
  195. $requireData,
  196. [
  197. 'page'=> 'required',
  198. 'pageSize'=> 'required',
  199. ],
  200. [
  201. 'page.required' => 'id不能为空',
  202. 'pageSize.required' => 'id不能为空',
  203. ]
  204. );
  205. if ($validator->fails()) {
  206. $errorMessage = $validator->errors()->first();
  207. return Result::error($errorMessage);
  208. }
  209. $requireData['website_id'] = Context::get("SiteId");
  210. //获取用户信息
  211. $user_id = Context::get("UserId");
  212. $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
  213. var_dump("用户信息:",$userInfo);
  214. $sszq = $userInfo['data']['sszq'];
  215. //获取websiteid
  216. // $groupInfo = $this->WebsiteServiceClient->getWebsiteGroupInfo(['id' => $sszq]);
  217. // var_dump("groupInfo:",$groupInfo);
  218. // $sszqstr = implode(',',json_decode($groupInfo['data']['web_ids']));
  219. $type_id = $userInfo['data']['type_id']; //'1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员 20000:游客(小程序)'
  220. $requireData['type_id'] = $type_id;
  221. $requireData['user_id'] = $user_id;
  222. var_dump("资讯:",$requireData);
  223. $result = $this->newsServiceClient->getArticleList($requireData);
  224. //1通过,2待审核,3待发 4,拒绝 5删除
  225. $statusList = [
  226. '0'=>'待审核',
  227. '1'=>'已发布',
  228. '2'=>'待审核',
  229. '3'=>'待发',
  230. '4'=>'拒绝',
  231. '5'=>'删除',
  232. ];
  233. if($result['data']){
  234. foreach ($result['data']['rows'] as $k=>$v) {
  235. $result['data']['rows'][$k]['cat_arr_id'] = $v['cat_arr_id']?json_decode($v['cat_arr_id']):[0];
  236. $result['data']['rows'][$k]['tag'] = $v['tag']?json_decode($v['tag']):[];
  237. $result['data']['rows'][$k]['status_name'] = $statusList[$v['status']];
  238. $result['data']['rows'][$k]['level'] = (string)$v['level'];
  239. $result['data']['rows'][$k]['islink'] = isset($v['islink']) && $v['islink']>0?true:false;
  240. }
  241. }
  242. // $result = $this->newsServiceClient->getArticleList($requireData);
  243. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  244. }
  245. /**
  246. * 获取导航池信息
  247. * @return void
  248. */
  249. public function getCategoryInfo()
  250. {
  251. $requireData = $this->request->all();
  252. $validator = $this->validationFactory->make(
  253. $requireData,
  254. [
  255. 'id'=> 'required',
  256. ],
  257. [
  258. 'id.required' => 'id不能为空',
  259. ]
  260. );
  261. if ($validator->fails()) {
  262. $errorMessage = $validator->errors()->first();
  263. return Result::error($errorMessage);
  264. }
  265. $result = $this->newsServiceClient->getCategoryInfo($requireData);
  266. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  267. }
  268. /**
  269. * 添加分类
  270. * @return array|void
  271. */
  272. public function addArticle()
  273. {
  274. // $a = ['asdlk1', '2342345234', [1, '222222222222']];
  275. // var_dump(json_encode($a));
  276. // return '222';
  277. $requireData = $this->request->all();
  278. $validator = $this->validationFactory->make(
  279. $requireData,
  280. [
  281. 'title'=> 'required',
  282. 'cat_arr_id'=> 'required',
  283. 'author'=> 'required',
  284. ],
  285. [
  286. 'title.required' => '标题不能为空',
  287. 'cat_arr_id.required' => '导航池ID不能为空',
  288. 'author.required' => '作者不能为空',
  289. ]
  290. );
  291. if ($validator->fails()){
  292. $errorMessage = $validator->errors()->first();
  293. return Result::error($errorMessage);
  294. }
  295. $requireData['catid'] = isset($requireData['cat_arr_id'])?end($requireData['cat_arr_id']):'';
  296. $requireData['cat_arr_id'] = isset($requireData['cat_arr_id'])?json_encode($requireData['cat_arr_id']):'';
  297. $loginIp = $this->request->getHeader('x-forwarded-for')[0] ?? $this->request->getHeader('x-real-ip')[0] ?? $this->request->getServerParams()['remote_addr'] ?? '0.0.0.0';
  298. $requireData['ip'] = $loginIp;
  299. // $requireData['website_id'] = Context::get("SiteId");
  300. $requireData['admin_user_id'] =Context::get("UserId");
  301. $requireData['level'] = isset($requireData['level']) && $requireData['level']?$requireData['level']:0;
  302. $requireData['hits'] = isset($requireData['hits']) && $requireData['hits']?$requireData['hits']:0;
  303. $requireData['is_original'] = isset($requireData['is_original']) && $requireData['is_original']?$requireData['is_original']:0;
  304. $requireData['status'] = isset($requireData['status']) && $requireData['status']?$requireData['status']:0;
  305. // var_dump("入参:",$requireData);
  306. $result = $this->newsServiceClient->addArticle($requireData);
  307. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  308. }
  309. /**
  310. * 更新资讯
  311. * @return array
  312. */
  313. public function updateArticle()
  314. {
  315. $requireData = $this->request->all();
  316. $validator = $this->validationFactory->make(
  317. $requireData,
  318. [
  319. 'id'=>'required',
  320. 'title'=> 'required',
  321. 'cat_arr_id'=> 'required',
  322. 'author'=> 'required',
  323. ],
  324. [
  325. 'title.required' => '标题不能为空',
  326. 'cat_arr_id.required' => '导航池ID不能为空',
  327. 'author.required' => '作者不能为空',
  328. 'id.required' =>'ID不能为空'
  329. ]
  330. );
  331. if ($validator->fails()) {
  332. $errorMessage = $validator->errors()->first();
  333. return Result::error($errorMessage);
  334. }
  335. $requireData['catid'] = isset($requireData['cat_arr_id'])?end($requireData['cat_arr_id']):'';
  336. $requireData['cat_arr_id'] = isset($requireData['cat_arr_id'])?json_encode($requireData['cat_arr_id']):'';
  337. $result = $this->newsServiceClient->updateArticle($requireData);
  338. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  339. }
  340. /**
  341. * 更新资讯状态
  342. * @return array
  343. */
  344. public function upArticleStatus()
  345. {
  346. $requireData = $this->request->all();
  347. $validator = $this->validationFactory->make(
  348. $requireData,
  349. [
  350. 'id'=>'required',
  351. 'status'=> 'required',
  352. ],
  353. [
  354. 'id.required' => 'id不能为空',
  355. 'status.required' => '状态不能为空',
  356. ]
  357. );
  358. if ($validator->fails()) {
  359. $errorMessage = $validator->errors()->first();
  360. return Result::error($errorMessage);
  361. }
  362. $result = $this->newsServiceClient->upArticleStatus($requireData);
  363. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  364. }
  365. /**
  366. * 删除分类
  367. * @return array
  368. */
  369. public function delArticle()
  370. {
  371. $requireData = $this->request->all();
  372. $validator = $this->validationFactory->make(
  373. $requireData,
  374. [
  375. 'id'=> 'required',
  376. ],
  377. [
  378. 'id.required' => 'id不能为空',
  379. ]
  380. );
  381. if ($validator->fails()) {
  382. $errorMessage = $validator->errors()->first();
  383. return Result::error($errorMessage);
  384. }
  385. // $requireData['website_id'] = Context::get("SiteId");
  386. $result = $this->newsServiceClient->delArticle($requireData);
  387. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  388. }
  389. /**
  390. * 获取资讯信息
  391. * @return array
  392. */
  393. public function getArticleInfo()
  394. {
  395. $requireData = $this->request->all();
  396. $validator = $this->validationFactory->make(
  397. $requireData,
  398. [
  399. 'id'=> 'required',
  400. ],
  401. [
  402. 'id.required' => 'id不能为空',
  403. ]
  404. );
  405. if ($validator->fails()) {
  406. $errorMessage = $validator->errors()->first();
  407. return Result::error($errorMessage);
  408. }
  409. $result = $this->newsServiceClient->getArticleInfo($requireData);
  410. if($result['code']==0){
  411. return Result::error($result['message']);
  412. }
  413. $result['data']['cat_arr_id'] = $result['data']['cat_arr_id']?json_decode($result['data']['cat_arr_id']):[];
  414. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  415. }
  416. /**
  417. * 获取调查问卷列表
  418. * @return array
  419. */
  420. public function getSurveyList()
  421. {
  422. $requireData = $this->request->all();
  423. $validator = $this->validationFactory->make(
  424. $requireData,
  425. [
  426. 'page'=>'required',
  427. 'pageSize'=>'required',
  428. ],
  429. [
  430. 'page.required' => '第几页不能为空',
  431. 'pageSize.required' => '每页显示条数不能为空',
  432. ]
  433. );
  434. if ($validator->fails()) {
  435. $errorMessage = $validator->errors()->first();
  436. return Result::error($errorMessage);
  437. }
  438. $result = $this->newsServiceClient->getSurveyList($requireData);
  439. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  440. }
  441. /**
  442. * 获取调查问卷详情
  443. * @return array
  444. */
  445. public function getSurveyInfo()
  446. {
  447. $requireData = $this->request->all();
  448. $validator = $this->validationFactory->make(
  449. $requireData,
  450. [
  451. 'sur_id'=>'required'
  452. ],
  453. [
  454. 'sur_id.required' => 'sur_id不能为空',
  455. ]
  456. );
  457. if ($validator->fails()) {
  458. $errorMessage = $validator->errors()->first();
  459. return Result::error($errorMessage);
  460. }
  461. $result = $this->newsServiceClient->getSurveyInfo($requireData);
  462. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  463. } /**
  464. * 检测导航池名称是否存在
  465. * @return array
  466. */
  467. public function checkCategoryName()
  468. {
  469. $requireData = $this->request->all();
  470. $validator = $this->validationFactory->make(
  471. $requireData,
  472. [
  473. 'name'=> 'required',
  474. ],
  475. [
  476. 'name.required' => 'name不能为空',
  477. ]
  478. );
  479. if ($validator->fails()) {
  480. $errorMessage = $validator->errors()->first();
  481. return Result::error($errorMessage);
  482. }
  483. $result = $this->newsServiceClient->checkCategoryName($requireData);
  484. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  485. }
  486. //20250226 产品列表
  487. public function getGoodList(){
  488. $requireData = $this->request->all();
  489. $validator = $this->validationFactory->make(
  490. $requireData,
  491. [
  492. 'page'=> 'integer|required',
  493. 'page_size'=> 'integer|required',
  494. ],
  495. [
  496. 'page.integer' => 'page必须是整型',
  497. 'page_size.integer' => 'page_size必须是整型',
  498. 'page.required' => 'page不能为空',
  499. 'page_size.required' => 'page_size不能为空',
  500. ]
  501. );
  502. $user_id = Context::get("UserId");
  503. $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
  504. var_dump("用户信息:",$userInfo);
  505. $type_id = $userInfo['data']['type_id']; //'1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员 20000:游客(小程序)'
  506. $requireData['type_id'] = $type_id;
  507. $requireData['user_id'] = $user_id;
  508. if ($validator->fails()) {
  509. $errorMessage = $validator->errors()->first();
  510. return Result::error($errorMessage);
  511. }
  512. $result = $this->newsServiceClient->getGoodList($requireData);
  513. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  514. }
  515. public function getGoodInfo(){
  516. $requireData = $this->request->all();
  517. $validator = $this->validationFactory->make(
  518. $requireData,
  519. [
  520. 'id'=> 'required',
  521. ],
  522. [
  523. 'id.required' => 'id不能为空',
  524. ]
  525. );
  526. if ($validator->fails()) {
  527. $errorMessage = $validator->errors()->first();
  528. return Result::error($errorMessage);
  529. }
  530. $result = $this->newsServiceClient->getGoodInfo($requireData);
  531. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  532. }
  533. public function updateGood(){
  534. $requireData = $this->request->all();
  535. $validator = $this->validationFactory->make(
  536. $requireData,
  537. [
  538. 'id'=> 'required',
  539. ],
  540. [
  541. 'id.required' => 'id不能为空',
  542. ]
  543. );
  544. if ($validator->fails()) {
  545. $errorMessage = $validator->errors()->first();
  546. return Result::error($errorMessage);
  547. }
  548. $result = $this->newsServiceClient->updateGood($requireData);
  549. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']
  550. );
  551. }
  552. public function addGood(){
  553. $requireData = $this->request->all();
  554. $validator = $this->validationFactory->make(
  555. $requireData,
  556. [
  557. 'name'=> 'required',
  558. // 'price'=> 'numeric',
  559. // 'min'=> 'numeric',
  560. // 'max'=> 'numeric',
  561. // 'hits '=> 'numeric',
  562. ],
  563. [
  564. 'name.required' => '产品名称不能为空',
  565. // 'price.required' => '产品价格不能为空',
  566. // 'price.numeric' => '价格必须是数字',
  567. // 'min.numeric' => 'min必须是数字',
  568. // 'max.numeric' => 'max须是数字',
  569. // 'hits.numeric' => '点击量必须是数字',
  570. ]
  571. );
  572. if ($validator->fails()) {
  573. $errorMessage = $validator->errors()->first();
  574. return Result::error($errorMessage);
  575. }
  576. $requireData['user_id'] = context::get("UserId");
  577. $result = $this->newsServiceClient->addGood($requireData);
  578. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  579. }
  580. public function delGood(){
  581. $requireData = $this->request->all();
  582. $validator = $this->validationFactory->make($requireData,
  583. [
  584. 'id'=> 'required',
  585. ],
  586. [
  587. 'id.required' => 'id不能为空',
  588. ]
  589. ); if ($validator->fails()) {
  590. $errorMessage = $validator->errors()->first();
  591. return Result::error($errorMessage);
  592. }
  593. $result = $this->newsServiceClient->delGood($requireData);
  594. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  595. }
  596. //20250226 产品列表
  597. // 20250306 招聘
  598. /*
  599. *后端-招聘 搜索及获取职位
  600. * @return array
  601. */
  602. public function getJobRecruitingList(){
  603. $requireData = $this->request->all();
  604. $validator = $this->validationFactory->make(
  605. $requireData,
  606. [
  607. 'page'=> 'integer|required',
  608. 'page_size'=> 'integer|required',
  609. ],
  610. [
  611. 'page.integer' => 'page必须是整型',
  612. 'page_size.integer' => 'page_size必须是整型',
  613. 'page.required' => 'page不能为空',
  614. 'page_size.required' => 'page_size不能为空',
  615. ]
  616. );
  617. if ($validator->fails()) {
  618. $errorMessage = $validator->errors()->first();
  619. return Result::error($errorMessage);
  620. }
  621. $requireData['website_id'] = Context::get("SiteId");
  622. $requireData['user_id'] = Context::get("UserId");
  623. // return Result::success($requireData);
  624. if (empty($requireData['website_id']) || empty($requireData['user_id'])){
  625. return Result::error('参数错误');
  626. }
  627. $result = $this->newsServiceClient->getJobRecruitingList($requireData);
  628. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  629. }
  630. /*
  631. *后端-招聘 获取职位详情
  632. * @return array
  633. */
  634. public function getJobRecruitingInfo(){
  635. $requireData = $this->request->all();
  636. $validator = $this->validationFactory->make(
  637. $requireData,
  638. [
  639. 'id'=>'required|integer',
  640. ],
  641. [
  642. 'id.required' => 'id不能为空',
  643. 'id.integer' => 'id必须是整数',
  644. ]
  645. );
  646. if ($validator->fails()) {
  647. $errorMessage = $validator->errors()->first();
  648. return Result::error($errorMessage);
  649. }
  650. // return Result::success($requireData);
  651. $result = $this->newsServiceClient->getJobRecruitingInfo($requireData);
  652. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  653. }
  654. /*
  655. *后端-招聘 新增职位
  656. * @return array
  657. */
  658. public function addJobRecruiting(){
  659. $requireData = $this->request->all();
  660. // return Result::success($requireData);
  661. $validator = $this->validationFactory->make(
  662. $requireData,
  663. [
  664. 'title'=>'required',
  665. 'cat_arr_id'=>'required',
  666. 'city_arr_id'=>'required',
  667. 'hy_id'=>'required|integer',
  668. 'zw_id'=>'required|integer',
  669. 'jtzw_id'=>'required|integer',
  670. 'nature_id'=>'required|integer',
  671. 'due_data'=>'required',
  672. 'description'=>'required',
  673. ],
  674. [
  675. 'title.required' => '职位名称不能为空',
  676. 'cat_arr_id.required' => '栏目不能为空',
  677. 'city_arr_id.required' => '工作地区不能为空',
  678. 'hy_id.required' => '行业分类不能为空',
  679. 'hy_id.integer' => '行业分类必须是整数',
  680. 'zw_id.required' => '职位分类不能为空',
  681. 'zw_id.integer' => '职位分类必须是整数',
  682. 'jtzw_id.required' => '职位不能为空',
  683. 'jtzw_id.integer' => '职位分类必须是整数',
  684. 'nature_id.required' => '职位性质不能为空',
  685. 'nature_id.integer' => '职位性质必须是整数',
  686. 'due_data.required' => '截止日期不能为空',
  687. 'description.required' => '职位描述不能为空'
  688. ]
  689. );
  690. if ($validator->fails()) {
  691. $errorMessage = $validator->errors()->first();
  692. return Result::error($errorMessage);
  693. }
  694. if(isset($requireData['website_id']) && $requireData['website_id'] != null){
  695. $requireData['website_id'] = $requireData['website_id'];
  696. }else{
  697. $requireData['website_id'] = Context::get("SiteId");
  698. }
  699. // $requireData['website_id'] = Context::get("SiteId") ?? 0;
  700. $requireData['user_id'] = Context::get("UserId") ?? 0;
  701. $result = $this->newsServiceClient->addJobRecruiting($requireData);
  702. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  703. }
  704. /*
  705. *后端-招聘 修改职位
  706. * @return array
  707. */
  708. public function upJobRecruiting(){
  709. $requireData = $this->request->all();
  710. $validator = $this->validationFactory->make(
  711. $requireData,
  712. [
  713. 'id'=>'required|integer',
  714. 'title'=>'required',
  715. 'cat_arr_id'=>'required',
  716. 'city_arr_id'=>'required',
  717. 'hy_id'=>'required|integer',
  718. 'zw_id'=>'required|integer',
  719. 'jtzw_id'=>'required|integer',
  720. 'nature_id'=>'required|integer',
  721. 'due_data'=>'required',
  722. 'description'=>'required',
  723. ],
  724. [
  725. 'id.required' => 'id不能为空',
  726. 'id.integer' => 'id必须是整数',
  727. 'title.required' => '职位名称不能为空',
  728. 'cat_arr_id.required' => '栏目不能为空',
  729. 'city_arr_id.required' => '工作地区不能为空',
  730. 'hy_id.required' => '行业分类不能为空',
  731. 'hy_id.integer' => '行业分类必须是整数',
  732. 'zw_id.required' => '职位分类不能为空',
  733. 'zw_id.integer' => '职位分类必须是整数',
  734. 'jtzw_id.required' => '职位不能为空',
  735. 'jtzw_id.integer' => '职位分类必须是整数',
  736. 'nature_id.required' => '职位性质不能为空',
  737. 'nature_id.integer' => '职位性质必须是整数',
  738. 'due_data.required' => '截止日期不能为空',
  739. 'description.required' => '职位描述不能为空'
  740. ]
  741. );
  742. if ($validator->fails()) {
  743. $errorMessage = $validator->errors()->first();
  744. return Result::error($errorMessage);
  745. }
  746. if(isset($requireData['website_id']) && $requireData['website_id'] != null){
  747. $requireData['website_id'] = $requireData['website_id'];
  748. }else{
  749. $requireData['website_id'] = Context::get("SiteId");
  750. }
  751. // $requireData['website_id'] = Context::get("SiteId") ?? 0;
  752. $requireData['user_id'] = Context::get("UserId") ?? 0;
  753. $result = $this->newsServiceClient->upJobRecruiting($requireData);
  754. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  755. }
  756. /*
  757. *后端-招聘 删除职位
  758. * @return array
  759. */
  760. public function delJobRecruiting(){
  761. $requireData = $this->request->all();
  762. $validator = $this->validationFactory->make(
  763. $requireData,
  764. [
  765. 'id'=>'required',
  766. ],
  767. [
  768. 'id.required' => 'id不能为空',
  769. ]
  770. );
  771. $result = $this->newsServiceClient->delJobRecruiting($requireData);
  772. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  773. }
  774. /*
  775. *后端-招聘 获取地区-省-市
  776. * @return array
  777. */
  778. public function getJobRecruitingArea(){
  779. $requireData = $this->request->all();
  780. $result = $this->websiteServiceClient->selectWebsiteArea($requireData);
  781. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  782. }
  783. /*
  784. *后端-招聘 行业分类
  785. * @return array
  786. */
  787. public function getIndustry(){
  788. $requireData = $this->request->all();
  789. $validator = $this->validationFactory->make(
  790. $requireData,
  791. [
  792. 'id'=>'required',
  793. ],
  794. [
  795. 'id.required' => 'id不能为空',
  796. ]
  797. );
  798. $result = $this->newsServiceClient->getIndustry($requireData);
  799. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  800. }
  801. /*
  802. *后端-招聘 职位分类
  803. * @return array
  804. */
  805. public function getPositionList(){
  806. $requireData = $this->request->all();
  807. $result = $this->newsServiceClient->getPositionList($requireData);
  808. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  809. }
  810. /*
  811. *后端-招聘 职位性质
  812. * @return array
  813. */
  814. public function getJobNature(){
  815. $requireData = $this->request->all();
  816. $result = $this->newsServiceClient->getJobNature($requireData);
  817. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  818. }
  819. /*
  820. *后端-招聘 工作经验
  821. * @return array
  822. */
  823. public function getExperience(){
  824. $requireData = $this->request->all();
  825. $result = $this->newsServiceClient->getExperience($requireData);
  826. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  827. }
  828. /*
  829. *后端-招聘 学历
  830. * @return array
  831. */
  832. public function getEducation(){
  833. $requireData = $this->request->all();
  834. $result = $this->newsServiceClient->getEducation($requireData);
  835. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  836. }
  837. /*
  838. *后端-招聘 薪资
  839. * @return array
  840. */
  841. public function getSalary(){
  842. $requireData = $this->request->all();
  843. $result = $this->newsServiceClient->getSalary($requireData);
  844. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  845. }
  846. /*
  847. *后端-招聘 语言
  848. * @return array
  849. */
  850. public function getLanguage(){
  851. $requireData = $this->request->all();
  852. $result = $this->newsServiceClient->getLanguage($requireData);
  853. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  854. }
  855. /*
  856. *后端-招聘 语言-掌握能力
  857. * @return array
  858. */
  859. public function getLevel(){
  860. $requireData = $this->request->all();
  861. $result = $this->newsServiceClient->getLevel($requireData);
  862. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  863. }
  864. /*
  865. *后端-招聘 公司规模
  866. * @return array
  867. */
  868. public function getCompanySize(){
  869. $requireData = $this->request->all();
  870. $result = $this->newsServiceClient->getCompanySize($requireData);
  871. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  872. }
  873. /*
  874. *后端-招聘 公司性质
  875. * @return array
  876. */
  877. public function getCompanyNature(){
  878. $requireData = $this->request->all();
  879. $result = $this->newsServiceClient->getCompanyNature($requireData);
  880. return $result['code']==200? Result::success($result['data']) : Result::error($result['message']);
  881. }
  882. //20250226 产品列表
  883. //20250306 求职
  884. public function getJobHuntingList(){
  885. $requireData = $this->request->all();
  886. $validator = $this->validationFactory->make($requireData,
  887. [
  888. 'page'=> 'required',
  889. 'page_size'=> 'required',
  890. ],
  891. [
  892. 'page.required' => 'page不能为空',
  893. 'page_size.required' => 'page_size不能为空',
  894. ]
  895. ); if ($validator->fails()) {
  896. $errorMessage = $validator->errors()->first();
  897. return Result::error($errorMessage);
  898. }
  899. $user_id = Context::get("UserId");
  900. $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
  901. $type_id = $userInfo['data']['type_id']; //'1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员 20000:游客(小程序)'
  902. $requireData['type_id'] = $type_id;
  903. $requireData['user_id'] = $user_id;
  904. $result = $this->newsServiceClient->getJobHuntingList($requireData);
  905. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  906. }
  907. public function getJobHuntingInfo(){
  908. $requireData = $this->request->all();
  909. $validator = $this->validationFactory->make($requireData,
  910. [
  911. 'id'=> 'required',
  912. ],
  913. [
  914. 'id.required' => 'id不能为空',
  915. ]
  916. ); if ($validator->fails()) {
  917. $errorMessage = $validator->errors()->first();
  918. return Result::error($errorMessage);
  919. }
  920. $result = $this->newsServiceClient->getJobHuntingInfo($requireData);
  921. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  922. }
  923. public function updateJobHunting(){
  924. $requireData = $this->request->all();
  925. $validator = $this->validationFactory->make($requireData,
  926. [
  927. 'name'=> 'required',
  928. 'sexy'=> 'required',
  929. ],
  930. [
  931. 'name.required' => '姓名不能为空',
  932. 'sexy.required' => '性别不能为空',
  933. ]
  934. ); if ($validator->fails()) {
  935. $errorMessage = $validator->errors()->first();
  936. return Result::error($errorMessage);
  937. }
  938. $result = $this->newsServiceClient->updateJobHunting($requireData);
  939. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  940. }
  941. public function addJobHunting(){
  942. $requireData = $this->request->all();
  943. $validator = $this->validationFactory->make($requireData,
  944. [
  945. 'name'=> 'required',
  946. 'sexy'=> 'required',
  947. ],
  948. [
  949. 'name.required' => '姓名不能为空',
  950. 'sexy.required' => '性别不能为空',
  951. ]
  952. );
  953. if ($validator->fails()) {
  954. $errorMessage = $validator->errors()->first();
  955. return Result::error($errorMessage);
  956. }
  957. $requireData['user_id'] = context::get("UserId");
  958. $result = $this->newsServiceClient->addJobHunting($requireData);
  959. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  960. }
  961. public function delJobHunting(){
  962. $requireData = $this->request->all();
  963. $validator = $this->validationFactory->make($requireData,
  964. [
  965. 'id'=> 'required',
  966. ],
  967. [
  968. 'id.required' => 'id不能为空',
  969. ]
  970. ); if ($validator->fails()) {
  971. $errorMessage = $validator->errors()->first();
  972. return Result::error($errorMessage);
  973. }
  974. $result = $this->newsServiceClient->delJobHunting($requireData);
  975. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  976. }
  977. public function getJobHuntingData(){
  978. $requireData = $this->request->all();
  979. $result = $this->newsServiceClient->getJobHuntingData($requireData);
  980. return $result['code']==200 ? Result::success($result['data']) : Result::error($result['message']);
  981. }
  982. //20250306 求职
  983. }