FooterController.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\FooterServiceInterface;
  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 App\Constants\ErrorCode;
  11. /**
  12. * Class FooterController
  13. * @package App\Controller
  14. */
  15. class FooterController extends AbstractController
  16. {
  17. #[Inject]
  18. protected ValidatorFactoryInterface $validationFactory;
  19. /**
  20. * @var FooterServiceInterface
  21. */
  22. #[Inject]
  23. private $footerServiceClient;
  24. /**
  25. * 获取底部导航
  26. * @return array
  27. */
  28. public function getFooterCategory()
  29. {
  30. $requireData = $this->request->all();
  31. if(isset($requireData['website_name'])){
  32. $validator = $this->validationFactory->make(
  33. $requireData,
  34. [
  35. 'website_name' =>'required|string|max:30',
  36. ],
  37. [
  38. 'website_name.required' => '网站名称不能为空',
  39. 'website_name.string' => '网站名称必须是字符串',
  40. 'website_name.max' => '网站名称不能超过30个字符',
  41. ]
  42. );
  43. if ($validator->fails()){
  44. $errorMessage = $validator->errors()->first();
  45. return Result::error($errorMessage);
  46. }
  47. $data['website_name'] = $requireData['website_name'];
  48. }
  49. if(isset($requireData['name'])){
  50. $validator = $this->validationFactory->make(
  51. $requireData,
  52. [
  53. 'name' =>'required|string|max:50'
  54. ],
  55. [
  56. 'name.required' => '底部导航名称不能为空',
  57. 'name.string' => '底部导航名称必须是字符串',
  58. 'name.max' => '底部导航名称不能超过50个字符',
  59. ]
  60. );
  61. if ($validator->fails()){
  62. $errorMessage = $validator->errors()->first();
  63. return Result::error($errorMessage);
  64. }
  65. $data['name'] = $requireData['name'];
  66. }
  67. $validator = $this->validationFactory->make(
  68. $requireData,
  69. [
  70. 'page' =>'required|integer',
  71. 'pageSize' =>'required|integer'
  72. ],
  73. [
  74. 'page.required' => '第几页不能为空',
  75. 'page.integer' => '第几页必须是整数',
  76. 'pageSize.required' => '每页显示数量不能为空',
  77. 'pageSize.integer' => '每页显示数量必须是整数'
  78. ]
  79. );
  80. if ($validator->fails()){
  81. $errorMessage = $validator->errors()->first();
  82. return Result::error($errorMessage);
  83. }
  84. $data['page'] = $requireData['page'];
  85. $data['pageSize'] = $requireData['pageSize'];
  86. // var_dump($data);
  87. $result = $this->footerServiceClient->getFooterCategory($data);
  88. if ($result['code'] != ErrorCode::SUCCESS) {
  89. return Result::error($result['message'],0,[]);
  90. }else{
  91. return Result::success($result['data']);
  92. }
  93. }
  94. /**
  95. * 添加底部导航
  96. * @return array
  97. */
  98. public function addFooterCategory()
  99. {
  100. $requireData = $this->request->all();
  101. if(!empty($requireData)){
  102. $validator = $this->validationFactory->make(
  103. $requireData,
  104. [
  105. 'website_id' =>'required|integer',
  106. 'name' =>'required|string|max:50',
  107. 'type' =>'required|integer|in:0,1'
  108. ],
  109. [
  110. 'website_id.required' => '网站id不能为空',
  111. 'website_id.integer' => '网站id必须是整数',
  112. 'name.required' => '底部导航名称不能为空',
  113. 'name.string' => '底部导航名称必须是字符串',
  114. 'name.max' => '底部导航名称不能超过50个字符',
  115. 'type.required' => '底部导航类型不能为空',
  116. 'type.integer' => '底部导航类型必须是整数',
  117. 'type.in' => '底部导航类型必须是0或1'
  118. ]
  119. );
  120. if ($validator->fails()){
  121. $errorMessage = $validator->errors()->first();
  122. return Result::error($errorMessage);
  123. }
  124. $data = $requireData;
  125. }else{
  126. $data = [];
  127. }
  128. $result = $this->footerServiceClient->addFooterCategory($data);
  129. if ($result['code'] != ErrorCode::SUCCESS) {
  130. return Result::error($result['message'],0,[]);
  131. }else{
  132. return Result::success($result['data']);
  133. }
  134. }
  135. /**
  136. * 修改底部导航
  137. * @return array
  138. */
  139. public function upFooterCategory()
  140. {
  141. $requireData = $this->request->all();
  142. $validator = $this->validationFactory->make(
  143. $requireData,
  144. [
  145. 'id' =>'required|integer'
  146. ],
  147. [
  148. 'id.required' => '底部导航id不能为空',
  149. 'id.integer' => '底部导航id必须是整数'
  150. ]
  151. );
  152. if ($validator->fails()){
  153. $errorMessage = $validator->errors()->first();
  154. return Result::error($errorMessage);
  155. }
  156. if(isset($requireData['name'])){
  157. $validator = $this->validationFactory->make(
  158. $requireData,
  159. [
  160. 'name' =>'required|string|max:50'
  161. ],
  162. [
  163. 'name.required' => '底部导航名称不能为空',
  164. 'name.string' => '底部导航名称必须是字符串',
  165. 'name.max' => '底部导航名称不能超过50个字符'
  166. ]
  167. );
  168. if ($validator->fails()){
  169. $errorMessage = $validator->errors()->first();
  170. return Result::error($errorMessage);
  171. }
  172. $data['name'] = $requireData['name'];
  173. }
  174. if(isset($requireData['website_id'])){
  175. $validator = $this->validationFactory->make(
  176. $requireData,
  177. [
  178. 'website_id' =>'required|integer'
  179. ],
  180. [
  181. 'website_id.required' => '网站id不能为空',
  182. 'website_id.integer' => '网站id必须是整数'
  183. ]
  184. );
  185. if ($validator->fails()){
  186. $errorMessage = $validator->errors()->first();
  187. return Result::error($errorMessage);
  188. }
  189. $data['website_id'] = $requireData['website_id'];
  190. }
  191. $data['id'] = $requireData['id'];
  192. // var_dump($data);
  193. $result = $this->footerServiceClient->upFooterCategory($data);
  194. if ($result['code'] != ErrorCode::SUCCESS) {
  195. return Result::error($result['message'],0,[]);
  196. }else{
  197. return Result::success($result['data']);
  198. }
  199. }
  200. /**
  201. * 删除底部导航
  202. * @return array
  203. */
  204. public function delFooterCategory()
  205. {
  206. $requireData = $this->request->all();
  207. $validator = $this->validationFactory->make(
  208. $requireData,
  209. [
  210. 'id' =>'required|integer'
  211. ],
  212. [
  213. 'id.required' => '底部导航id不能为空',
  214. 'id.integer' => '底部导航id必须是整数'
  215. ]
  216. );
  217. $data['id'] = $requireData['id'];
  218. if($validator->fails()){
  219. $errorMessage = $validator->errors()->first();
  220. return Result::error($errorMessage);
  221. }
  222. $result = $this->footerServiceClient->delFooterCategory($data);
  223. if ($result['code']!= ErrorCode::SUCCESS) {
  224. return Result::error($result['message'],0,[]);
  225. }else{
  226. return Result::success($result['data']);
  227. }
  228. }
  229. /**
  230. * 添加底部导航(列表)内容
  231. * @return array
  232. */
  233. public function addFooterContent()
  234. {
  235. $requireData = $this->request->all();
  236. $validator = $this->validationFactory->make(
  237. $requireData,
  238. [
  239. 'type' =>'required|integer|in:0,1',
  240. 'fcat_id' =>'required|integer',
  241. 'con_title' =>'required|string',
  242. 'content' =>'required|string'
  243. ],
  244. [
  245. 'type.required' => '底部导航类型不能为空',
  246. 'type.integer' => '底部导航类型必须是整数',
  247. 'type.in' => '底部导航类型必须是0或1',
  248. 'fcat_id.required' => '底部导航id不能为空',
  249. 'fcat_id.integer' => '底部导航id必须是整数',
  250. 'con_title.required' => '内容标题不能为空',
  251. 'con_title.string' => '内容标题必须是字符串',
  252. 'content.required' => '内容不能为空',
  253. 'content.string' => '内容必须是字符串'
  254. ]
  255. );
  256. if($validator->fails()){
  257. $errorMessage = $validator->errors()->first();
  258. return Result::error($errorMessage);
  259. }
  260. $data['type'] = $requireData['type'];
  261. $data['fcat_id'] = $requireData['fcat_id'];
  262. $data['con_title'] = $requireData['con_title'];
  263. $data['content'] = $requireData['content'];
  264. if(isset($requireData['list_title'])){
  265. $validator = $this->validationFactory->make(
  266. $requireData,
  267. [
  268. 'list_title' =>'required|string'
  269. ],
  270. [
  271. 'list_title.required' => '列表标题不能为空',
  272. 'list_title.string' => '列表标题必须是字符串'
  273. ]
  274. );
  275. if($validator->fails()){
  276. $errorMessage = $validator->errors()->first();
  277. return Result::error($errorMessage);
  278. }
  279. $data['list_title'] = $requireData['list_title'];
  280. }
  281. // return Result::success($data);
  282. $result = $this->footerServiceClient->addFooterContent($data);
  283. if ($result['code']!= ErrorCode::SUCCESS) {
  284. return Result::error($result['message'],0,[]);
  285. }else{
  286. return Result::success($result['data']);
  287. }
  288. }
  289. /**
  290. * 获取并搜索底部导航(列表)内容
  291. * @return array
  292. */
  293. public function getFooterContent()
  294. {
  295. $requireData = $this->request->all();
  296. $validator = $this->validationFactory->make(
  297. $requireData,
  298. [
  299. 'fcat_id' =>'required|integer',
  300. 'page' =>'required|integer',
  301. 'pageSize' =>'required|integer'
  302. ],
  303. [
  304. 'fcat_id.required' => '底部导航id不能为空',
  305. 'fcat_id.integer' => '底部导航id必须是整数',
  306. 'page.required' => '第几页不能为空',
  307. 'page.integer' => '第几页必须是整数',
  308. 'pageSize.required' => '每页显示数量不能为空',
  309. 'pageSize.integer' => '每页显示数量必须是整数'
  310. ]
  311. );
  312. if($validator->fails()){
  313. $errorMessage = $validator->errors()->first();
  314. return Result::error($errorMessage);
  315. }
  316. if(isset($requireData['list_title'])){
  317. $validator = $this->validationFactory->make(
  318. $requireData,
  319. [
  320. 'list_title' =>'required|string'
  321. ],
  322. [
  323. 'list_title.required' => '列表标题不能为空',
  324. 'list_title.string' => '列表标题必须是字符串'
  325. ]
  326. );
  327. if($validator->fails()){
  328. $errorMessage = $validator->errors()->first();
  329. return Result::error($errorMessage);
  330. }
  331. $data['list_title'] = $requireData['list_title'];
  332. }
  333. if(isset($requireData['con_title'])){
  334. $validator = $this->validationFactory->make(
  335. $requireData,
  336. [
  337. 'con_title' =>'required|string'
  338. ],
  339. [
  340. 'con_title.required' => '内容标题不能为空',
  341. 'con_title.string' => '内容标题必须是字符串'
  342. ]
  343. );
  344. if($validator->fails()){
  345. $errorMessage = $validator->errors()->first();
  346. return Result::error($errorMessage);
  347. }
  348. $data['con_title'] = $requireData['con_title'];
  349. }
  350. $data['fcat_id'] = $requireData['fcat_id'];
  351. $data['page'] = $requireData['page'];
  352. $data['pageSize'] = $requireData['pageSize'];
  353. $result = $this->footerServiceClient->getFooterContent($data);
  354. if ($result['code']!= ErrorCode::SUCCESS) {
  355. return Result::error($result['message'],0,[]);
  356. }else{
  357. return Result::success($result['data']);
  358. }
  359. }
  360. /**
  361. * 获取某个底部导航(列表)内容
  362. * @return array
  363. */
  364. public function getOneFooterContent()
  365. {
  366. $requireData = $this->request->all();
  367. $validator = $this->validationFactory->make(
  368. $requireData,
  369. [
  370. 'id' =>'required|integer'
  371. ],
  372. [
  373. 'id.required' => '底部导航内容id不能为空',
  374. 'id.integer' => '底部导航内容id必须是整数'
  375. ]
  376. );
  377. if($validator->fails()){
  378. $errorMessage = $validator->errors()->first();
  379. return Result::error($errorMessage);
  380. }
  381. $data['id'] = $requireData['id'];
  382. if($validator->fails()){
  383. $errorMessage = $validator->errors()->first();
  384. return Result::error($errorMessage);
  385. }
  386. // var_dump($data);
  387. $result = $this->footerServiceClient->getOneFooterContent($data);
  388. if ($result['code']!= ErrorCode::SUCCESS) {
  389. return Result::error($result['message'],0,[]);
  390. }else{
  391. return Result::success($result['data']);
  392. }
  393. }
  394. /**
  395. * 修改底部导航(列表)内容
  396. * @return array
  397. */
  398. public function upFooterContent()
  399. {
  400. $requireData = $this->request->all();
  401. $validator = $this->validationFactory->make(
  402. $requireData,
  403. [
  404. 'id' =>'required|integer',
  405. 'type' =>'required|integer|in:0,1',
  406. 'con_title' =>'required|string',
  407. 'content' =>'required|string'
  408. ],
  409. [
  410. 'id.required' => '底部导航内容id不能为空',
  411. 'id.integer' => '底部导航内容id必须是整数',
  412. 'type.required' => '底部导航类型不能为空',
  413. 'type.integer' => '底部导航类型必须是整数',
  414. 'type.in' => '底部导航类型必须是0或1',
  415. 'con_title.required' => '内容标题不能为空',
  416. 'con_title.string' => '内容标题必须是字符串',
  417. 'content.required' => '内容不能为空',
  418. 'content.string' => '内容必须是字符串'
  419. ]
  420. );
  421. if($validator->fails()){
  422. $errorMessage = $validator->errors()->first();
  423. return Result::error($errorMessage);
  424. }
  425. $data['id'] = $requireData['id'];
  426. $data['type'] = $requireData['type'];
  427. $data['con_title'] = $requireData['con_title'];
  428. $data['content'] = $requireData['content'];
  429. if(isset($requireData['list_title'])){
  430. $validator = $this->validationFactory->make(
  431. $requireData,
  432. [
  433. 'list_title' =>'required|string'
  434. ],
  435. [
  436. 'list_title.required' => '列表标题不能为空',
  437. 'list_title.string' => '列表标题必须是字符串'
  438. ]
  439. );
  440. if ($validator->fails()){
  441. $errorMessage = $validator->errors()->first();
  442. return Result::error($errorMessage);
  443. }
  444. $data['list_title'] = $requireData['list_title'];
  445. }
  446. // var_dump($data);
  447. $result = $this->footerServiceClient->upFooterContent($data);
  448. if ($result['code']!= ErrorCode::SUCCESS) {
  449. return Result::error($result['message'],0,[]);
  450. }else{
  451. return Result::success($result['data']);
  452. }
  453. }
  454. /**
  455. * 删除底部导航(列表)内容
  456. * @return array
  457. */
  458. public function delFooterContent()
  459. {
  460. $requireData = $this->request->all();
  461. $validator = $this->validationFactory->make(
  462. $requireData,
  463. [
  464. 'id' =>'required|integer'
  465. ],
  466. [
  467. 'id.required' => '底部导航id不能为空',
  468. 'id.integer' => '底部导航id必须是整数'
  469. ]
  470. );
  471. if($validator->fails()){
  472. $errorMessage = $validator->errors()->first();
  473. return Result::error($errorMessage);
  474. }
  475. $data['id'] = $requireData['id'];
  476. // var_dump($data);
  477. $result = $this->footerServiceClient->delFooterContent($data);
  478. if ($result['code']!= ErrorCode::SUCCESS) {
  479. return Result::error($result['message'],0,[]);
  480. }else{
  481. return Result::success($result['data']);
  482. }
  483. }
  484. }