WebController.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\NewsServiceInterface;
  5. use App\JsonRpc\WebsiteServiceInterface;
  6. use App\Tools\PublicData;
  7. use Hyperf\Di\Annotation\Inject;
  8. use Hyperf\HttpServer\Annotation\AutoController;
  9. use App\Tools\Result;
  10. use Hyperf\Validation\Contract\ValidatorFactoryInterface;
  11. use App\Constants\ErrorCode;
  12. use Hyperf\Context\Context;
  13. /**
  14. * Class WebController
  15. * @package App\Controller
  16. */
  17. class WebController extends AbstractController
  18. {
  19. #[Inject]
  20. protected ValidatorFactoryInterface $validationFactory;
  21. /**
  22. * @var NewsServiceInterface
  23. */
  24. #[Inject]
  25. private $newsServiceClient;
  26. /**
  27. * @var WebsiteServiceInterface
  28. */
  29. #[Inject]
  30. private $websiteServiceClient;
  31. /**
  32. * 获取栏目导航
  33. * @return array
  34. */
  35. public function getWebsiteCategory()
  36. {
  37. $data = [
  38. 'website_id'=>Context::get("SiteId")
  39. ];
  40. var_dump("网站id:",Context::get("SiteId"));
  41. $result = $this->websiteServiceClient->getWebsiteCategory($data);
  42. if ($result['code'] != ErrorCode::SUCCESS) {
  43. return Result::error($result['message'],0,[]);
  44. }
  45. return Result::success($result['data']);
  46. }
  47. /**
  48. * 获取各省名称
  49. */
  50. public function getWebsiteDistrit()
  51. {
  52. $data= [
  53. 'pid' => 0,
  54. 'website_id'=>Context::get("SiteId")
  55. ];
  56. $result=$this->PublicController->getDistrictList($data);
  57. if ($result['code'] != ErrorCode::SUCCESS) {
  58. return Result::error($result['message'],0,[]);
  59. }
  60. // var_dump($result['data']);
  61. return Result::success($result['data']);
  62. }
  63. /**
  64. * 获取广告1
  65. * @return array
  66. */
  67. public function getWebsiteAdvertisement()
  68. {
  69. $requireData = $this->request->all();
  70. $validator = $this->validationFactory->make(
  71. $requireData,
  72. [
  73. 'adPlace' => 'required'
  74. ],
  75. [
  76. 'adPlace.required' => '广告位置编号不能为空'
  77. ]
  78. );
  79. if ($validator->fails()){
  80. $errorMessage = $validator->errors()->first();
  81. return Result::error($errorMessage);
  82. }
  83. $data = [
  84. 'website_id'=>Context::get("SiteId"),
  85. 'ad_placeid'=>$requireData['adPlace']
  86. ];
  87. $result = $this->websiteServiceClient->getWebsiteAdvertisement($data);
  88. if ($result['code'] != ErrorCode::SUCCESS) {
  89. return Result::error($result['message'],0,[]);
  90. }
  91. return Result::success($result['data']);
  92. }
  93. /**
  94. * 搜索并获取职能部门
  95. */
  96. public function selectWebsiteDepartment(){
  97. $requireData = $this->request->all();
  98. $data = [
  99. 'website_id'=>Context::get("SiteId")
  100. ];
  101. if(!empty($requireData)){
  102. $data = [
  103. 'keyword'=>$requireData['keyword'],
  104. 'website_id'=>Context::get("SiteId")
  105. ];
  106. }
  107. $result = $this->websiteServiceClient->selectWebsiteDepartment($data);
  108. if ($result['code'] != ErrorCode::SUCCESS) {
  109. return Result::error($result['message'],0,[]);
  110. }
  111. return Result::success($result['data']);
  112. }
  113. /**
  114. *各省市查询
  115. */
  116. public function selectWebsiteArea()
  117. {
  118. $requireData = $this->request->all();
  119. $data=[];
  120. if(!empty($requireData)){
  121. $validator = $this->validationFactory->make(
  122. $requireData,
  123. [
  124. 'province' => 'required'
  125. ],
  126. [
  127. 'province.required' => '请先选择省份'
  128. ]
  129. );
  130. if ($validator->fails()){
  131. $errorMessage = $validator->errors()->first();
  132. return Result::error($errorMessage);
  133. }
  134. $data=[
  135. 'province' => $requireData['province']
  136. ];
  137. if(isset($requireData['city'])){
  138. $data=[
  139. 'city' => $requireData['city'],
  140. 'province' => $requireData['province']
  141. ];
  142. if(isset($requireData['region'])){
  143. $data=[
  144. 'province' => $requireData['province'],
  145. 'city' => $requireData['city'],
  146. 'region' => $requireData['region']
  147. ];
  148. }
  149. }
  150. }
  151. $result = $this->websiteServiceClient->selectWebsiteArea($data);
  152. if ($result['code'] != ErrorCode::SUCCESS) {
  153. return Result::error($result['message'],0,[]);
  154. }
  155. return Result::success($result['data']);
  156. }
  157. /**
  158. * 获取新闻
  159. */
  160. public function getWebsiteArticlett()
  161. {
  162. $requireData = $this->request->all();
  163. $validator = $this->validationFactory->make(
  164. $requireData,
  165. [
  166. 'level' => 'required',
  167. 'pageSize' => 'required',
  168. ],
  169. [
  170. 'level.required' => '新闻类型不能为空',
  171. 'pageSize.required' => '显示条数不能为空',
  172. ]
  173. );
  174. if ($validator->fails()){
  175. $errorMessage = $validator->errors()->first();
  176. return Result::error($errorMessage);
  177. }
  178. if(isset($requireData['placeid']) && !empty($requireData['placeid'])){
  179. $data =[
  180. 'website_id'=>Context::get("SiteId"),
  181. 'level'=>$requireData['level'],
  182. 'pageSize'=>$requireData['pageSize'],
  183. 'placeid' => $requireData['placeid']
  184. ];
  185. }else{
  186. $data = [
  187. 'website_id'=>Context::get("SiteId"),
  188. 'level'=>$requireData['level'],
  189. 'pageSize'=>$requireData['pageSize']
  190. ];
  191. }
  192. $result = $this->newsServiceClient->getWebsiteArticlett($data);
  193. // var_dump($result);
  194. if ($result['code'] != ErrorCode::SUCCESS) {
  195. return Result::error($result['message'],0,[]);
  196. }
  197. return Result::success($result['data']);
  198. }
  199. /**
  200. * 获取模块新闻
  201. */
  202. public function getWebsiteModelArticles()
  203. {
  204. $requireData = $this->request->all();
  205. $validator = $this->validationFactory->make(
  206. $requireData,
  207. [
  208. 'catid' => 'required',
  209. 'level' => 'required',
  210. 'pagesize' => 'required'
  211. ],
  212. [
  213. 'catid.required' => '栏目id不能为空',
  214. 'level.required' => '新闻类型不能为空',
  215. 'pagesize.required' => '新闻条数不能为空'
  216. ]
  217. );
  218. if ($validator->fails()){
  219. $errorMessage = $validator->errors()->first();
  220. return Result::error($errorMessage);
  221. }
  222. if(isset($requireData['placeid']) && !empty($requireData['placeid'])){
  223. $data =[
  224. 'website_id'=>Context::get("SiteId"),
  225. 'catid' => $requireData['catid'],
  226. 'level' => $requireData['level'],
  227. 'pagesize' => $requireData['pagesize'],
  228. 'placeid' => $requireData['placeid']
  229. ];
  230. }else{
  231. $data = [
  232. 'website_id'=>Context::get("SiteId"),
  233. 'catid' => $requireData['catid'],
  234. 'level' => $requireData['level'],
  235. 'pagesize' => $requireData['pagesize']
  236. ];
  237. }
  238. $result = $this->newsServiceClient->getWebsiteModelArticles($data);
  239. // var_dump($result);
  240. if ($result['code'] != ErrorCode::SUCCESS) {
  241. return Result::error($result['message'],0,[]);
  242. }
  243. return Result::success($result['data']);
  244. }
  245. /**
  246. * 获取模块栏目
  247. */
  248. public function getWebsiteModelCategory()
  249. {
  250. $requireData = $this->request->all();
  251. $validator = $this->validationFactory->make(
  252. $requireData,
  253. [
  254. 'placeid' => 'required',
  255. 'pid' => 'required',
  256. 'num' => 'required'
  257. ],
  258. [
  259. 'placeid.required' => '栏目位置不能为空',
  260. 'pid' => '栏目类型不能为空',
  261. 'num' => '父级栏目数量'
  262. ]
  263. );
  264. if ($validator->fails()){
  265. $errorMessage = $validator->errors()->first();
  266. return Result::error($errorMessage);
  267. }
  268. $data = [
  269. 'website_id'=>Context::get("SiteId"),
  270. 'placeid' => $requireData['placeid'],
  271. 'pid' => $requireData['pid'],
  272. 'num' => $requireData['num']
  273. ];
  274. $result=$this->websiteServiceClient->getWebsiteModelCategory($data);
  275. if ($result['code'] != ErrorCode::SUCCESS) {
  276. return Result::error($result['message'],0,[]);
  277. }
  278. // var_dump($result['data']);
  279. return Result::success($result['data']);
  280. }
  281. /**
  282. * 获取友情链接
  283. * @return array
  284. */
  285. public function selectWebsiteLinks()
  286. {
  287. $requireData = $this->request->all();
  288. $validator = $this->validationFactory->make(
  289. $requireData,
  290. [
  291. 'type' => 'required',
  292. 'num' => 'required'
  293. ],
  294. [
  295. 'type.required' => '友情链接类型不能为空',
  296. 'num.required' => '友情链接数量不能为空'
  297. ]
  298. );
  299. if ($validator->fails()){
  300. $errorMessage = $validator->errors()->first();
  301. return Result::error($errorMessage);
  302. }
  303. $data = [
  304. 'website_id'=>Context::get("SiteId"),
  305. 'type'=>$requireData['type'],
  306. 'num' =>$requireData['num']
  307. ];
  308. $result = $this->websiteServiceClient->selectWebsiteLinks($data);
  309. if ($result['code'] != ErrorCode::SUCCESS) {
  310. return Result::error($result['message'],0,[]);
  311. }
  312. return Result::success($result['data']);
  313. }
  314. /**
  315. * 获取文章列表
  316. */
  317. public function getWebsiteArticlesList()
  318. {
  319. $requireData = $this->request->all();
  320. if(isset($requireData['catid'])){
  321. $validator = $this->validationFactory->make(
  322. $requireData,
  323. [
  324. 'catid' => 'required'
  325. ],
  326. [
  327. 'catid.required' => '栏目id不能为空'
  328. ]
  329. );
  330. $data['catid'] = $requireData['catid'];
  331. }elseif(isset($requireData['keyword'])){
  332. $validator = $this->validationFactory->make(
  333. $requireData,
  334. [
  335. 'keyword' => 'required'
  336. ],
  337. [
  338. 'keyword.required' => '搜索词不能为空'
  339. ]
  340. );
  341. $data['keyword'] = $requireData['keyword'];
  342. }else{
  343. $validator = $this->validationFactory->make(
  344. $requireData,
  345. [
  346. 'catid' => 'required',
  347. 'keyword' => 'required'
  348. ],
  349. [
  350. 'catid.required' => '栏目id不能为空',
  351. 'keyword.required' => '搜索词不能为空'
  352. ]
  353. );
  354. $data['catid'] = $requireData['catid'];
  355. $data['keyword'] = $requireData['keyword'];
  356. }
  357. $validator = $this->validationFactory->make(
  358. $requireData,
  359. [
  360. 'page' => 'required',
  361. 'pageSize' => 'required'
  362. ],
  363. [
  364. 'page.required' => '分页不能为空',
  365. 'pageSize.required' => '显示条数不能为空'
  366. ]
  367. );
  368. if ($validator->fails()){
  369. $errorMessage = $validator->errors()->first();
  370. return Result::error($errorMessage);
  371. }
  372. $data['website_id'] = Context::get("SiteId");
  373. $data['pageSize'] = $requireData['pageSize'];
  374. $data['page'] = $requireData['page'];
  375. $result = $this->newsServiceClient->getArticleList($data);
  376. // var_dump($result);
  377. if ($result['code'] != ErrorCode::SUCCESS) {
  378. return Result::error($result['message'],0,[]);
  379. }
  380. // $result = $data;
  381. return Result::success($result['data']);
  382. }
  383. /**
  384. * 获取文章详情
  385. */
  386. public function selectWebsiteArticleInfo()
  387. {
  388. $requireData = $this->request->all();
  389. $validator = $this->validationFactory->make(
  390. $requireData,
  391. [
  392. 'articleid' => 'required'
  393. ],
  394. [
  395. 'articleid.required' => '新闻id不能为空'
  396. ]
  397. );
  398. if ($validator->fails()){
  399. $errorMessage = $validator->errors()->first();
  400. return Result::error($errorMessage);
  401. }
  402. $data = [
  403. 'website_id'=>Context::get("SiteId"),
  404. 'id'=>$requireData['articleid'],
  405. ];
  406. $result = $this->newsServiceClient->getArticleInfo($data);
  407. // var_dump($result);
  408. if ($result['code'] != ErrorCode::SUCCESS) {
  409. return Result::error($result['message'],0,[]);
  410. }
  411. return Result::success($result['data']);
  412. }
  413. }