App_Controller_WebsiteController.proxy.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450
  1. <?php
  2. declare (strict_types=1);
  3. namespace App\Controller;
  4. use App\JsonRpc\WebsiteServiceInterface;
  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. /**
  12. * Class WebsiteController
  13. * @package App\Controller
  14. */
  15. //#[AutoController]
  16. class WebsiteController extends AbstractController
  17. {
  18. use \Hyperf\Di\Aop\ProxyTrait;
  19. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  20. function __construct()
  21. {
  22. if (method_exists(parent::class, '__construct')) {
  23. parent::__construct(...func_get_args());
  24. }
  25. $this->__handlePropertyHandler(__CLASS__);
  26. }
  27. #[Inject]
  28. protected ValidatorFactoryInterface $validationFactory;
  29. /**
  30. * @var WebsiteServiceInterface
  31. */
  32. #[Inject]
  33. private $websiteServiceClient;
  34. /**
  35. * 创建站点
  36. * @return array
  37. */
  38. public function addWebsite()
  39. {
  40. $requireData = $this->request->all();
  41. $validator = $this->validationFactory->make($requireData, ['website_column_arr_id' => 'required', 'website_name' => 'required', 'website_url' => 'required'], ['website_column_id.required' => '上级网系id不能为空', 'website_name.required' => '站点名称不能为空', 'website_url.required' => '网站地址不能为空']);
  42. if ($validator->fails()) {
  43. $errorMessage = $validator->errors()->first();
  44. return Result::error($errorMessage);
  45. }
  46. $requireData['website_url'] = json_encode($requireData['website_url']);
  47. $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
  48. $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
  49. $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
  50. $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
  51. var_dump($requireData);
  52. $result = $this->websiteServiceClient->createWebsite($requireData);
  53. return $result ? Result::success($result['data']) : Result::error($result['message']);
  54. }
  55. /**
  56. * 获取站点列表
  57. * @return void
  58. */
  59. public function getWebsiteList()
  60. {
  61. $requireData = $this->request->all();
  62. $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '页码不能为空', 'pageSize.required' => '每页显示条数不能为空']);
  63. if ($validator->fails()) {
  64. $errorMessage = $validator->errors()->first();
  65. return Result::error($errorMessage);
  66. }
  67. $result = $this->websiteServiceClient->getWebsitetList($requireData);
  68. if ($result['data']) {
  69. foreach ($result['data']['rows'] as $k => $v) {
  70. $result['data']['rows'][$k]['city_arr_id'] = $v['city_arr_id'] ? json_decode($v['city_arr_id']) : '';
  71. }
  72. }
  73. return $result ? Result::success($result['data']) : Result::error($result['message']);
  74. }
  75. /**
  76. * 更新站点
  77. * @return array
  78. */
  79. public function updateWebsite()
  80. {
  81. $requireData = $this->request->all();
  82. $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'website_column_arr_id' => 'required', 'website_name' => 'required', 'website_url' => 'required'], ['id.required' => 'id不能为空', 'website_column_id.required' => '网系id不能为空', 'website_name.required' => '站点名称不能为空', 'website_url.required' => '网站地址不能为空']);
  83. if ($validator->fails()) {
  84. $errorMessage = $validator->errors()->first();
  85. return Result::error($errorMessage);
  86. }
  87. $requireData['website_url'] = json_encode($requireData['website_url']);
  88. $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
  89. $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
  90. $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
  91. $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
  92. $result = $this->websiteServiceClient->updateWebsite((int) $requireData['id'], $requireData);
  93. return $result ? Result::success($result['data']) : Result::error($result['message']);
  94. }
  95. /**
  96. * 删除站点
  97. * @return array
  98. */
  99. public function delWebsite()
  100. {
  101. $requireData = $this->request->all();
  102. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  103. if ($validator->fails()) {
  104. $errorMessage = $validator->errors()->first();
  105. return Result::error($errorMessage);
  106. }
  107. $id = (int) $requireData['id'];
  108. $result = $this->websiteServiceClient->delWebsite($id);
  109. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  110. }
  111. /**
  112. * 获取站点信息
  113. * @return array
  114. */
  115. public function getWebsiteInfo()
  116. {
  117. $requireData = $this->request->all();
  118. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  119. if ($validator->fails()) {
  120. $errorMessage = $validator->errors()->first();
  121. return Result::error($errorMessage);
  122. }
  123. $id = (int) $requireData['id'];
  124. $result = $this->websiteServiceClient->getWebsiteInfo($id);
  125. if ($result['code'] == 200) {
  126. $result['data']['website_url'] = isset($result['data']['website_url']) && $result['data']['website_url'] ? json_decode($result['data']['website_url']) : '';
  127. $result['data']['website_column_arr_id'] = isset($result['data']['website_column_arr_id']) && $result['data']['website_column_arr_id'] ? json_decode($result['data']['website_column_arr_id']) : '';
  128. $result['data']['city_arr_id'] = isset($result['data']['city_arr_id']) && $result['data']['city_arr_id'] ? json_decode($result['data']['city_arr_id']) : '';
  129. return Result::success($result['data']);
  130. } else {
  131. return Result::error($result['message']);
  132. }
  133. }
  134. public function getWebsiteColumn()
  135. {
  136. $pid = (int) $this->request->input("pid", 0);
  137. $result = $this->websiteServiceClient->getWebsiteColumn([]);
  138. $rep = PublicData::buildMenuTree($result['data']);
  139. return $rep ? Result::success($rep) : Result::error("查询失败");
  140. }
  141. /**
  142. * 获取站点列表
  143. * @return void
  144. */
  145. public function getWebsiteColumnList()
  146. {
  147. $keyword = $this->request->input("keyWord", '');
  148. $page = (int) $this->request->input("page", 1);
  149. $pageSize = (int) $this->request->input("pageSize", 10);
  150. $result = $this->websiteServiceClient->getWebsiteColumnList($keyword, $page, $pageSize);
  151. if ($result['data']) {
  152. foreach ($result['data']['rows'] as $k => $v) {
  153. $result['data']['rows'][$k]['column_arr_id'] = $v['column_arr_id'] ? json_decode($v['column_arr_id']) : [0];
  154. }
  155. }
  156. return $result ? Result::success($result['data']) : Result::error($result['message']);
  157. }
  158. /**
  159. * 创建栏目
  160. * @return array
  161. */
  162. public function addWebsiteColumn()
  163. {
  164. $requireData = $this->request->all();
  165. $validator = $this->validationFactory->make($requireData, ['column_name' => 'required', 'column_arr_id' => 'required'], ['column_name.required' => '栏目名称不能为空', 'column_arr_id.required' => '栏目ID不能为空']);
  166. if ($validator->fails()) {
  167. $errorMessage = $validator->errors()->first();
  168. return Result::error($errorMessage);
  169. }
  170. if (isset($requireData['column_arr_id']) && is_array($requireData['column_arr_id'])) {
  171. $requireData['pid'] = end($requireData['column_arr_id']);
  172. $requireData['column_arr_id'] = json_encode($requireData['column_arr_id']);
  173. } else {
  174. $column_arr_id = [0];
  175. $requireData['column_arr_id'] = json_encode($column_arr_id);
  176. $requireData['pid'] = end($column_arr_id);
  177. }
  178. $result = $this->websiteServiceClient->createWebsiteColumn($requireData);
  179. return $result ? Result::success($result['data']) : Result::error($result['message']);
  180. }
  181. /**
  182. * 创建栏目
  183. * @return array
  184. */
  185. public function updateWebsiteColumn()
  186. {
  187. $requireData = $this->request->all();
  188. $validator = $this->validationFactory->make($requireData, ['column_name' => 'required', 'column_arr_id' => 'required'], ['column_name.required' => '栏目名称不能为空', 'column_arr_id.required' => '栏目ID不能为空']);
  189. if ($validator->fails()) {
  190. $errorMessage = $validator->errors()->first();
  191. return Result::error($errorMessage);
  192. }
  193. if (isset($requireData['column_arr_id']) && is_array($requireData['column_arr_id'])) {
  194. $requireData['pid'] = end($requireData['column_arr_id']);
  195. $requireData['column_arr_id'] = json_encode($requireData['column_arr_id']);
  196. } else {
  197. $column_arr_id = [0];
  198. $requireData['column_arr_id'] = json_encode($column_arr_id);
  199. $requireData['pid'] = end($column_arr_id);
  200. }
  201. $result = $this->websiteServiceClient->updateWebsiteColumn($requireData['id'], $requireData);
  202. return $result ? Result::success($result['data']) : Result::error($result['message']);
  203. }
  204. /**
  205. * 删除栏目
  206. * @return array
  207. */
  208. public function delWebsiteColumn()
  209. {
  210. $id = (int) $this->request->input("id", '');
  211. $result = $this->websiteServiceClient->delWebsiteColumn($id);
  212. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  213. }
  214. /**
  215. * 获取站点角色列表
  216. * @return void
  217. */
  218. public function getWebsiteRoleList()
  219. {
  220. $requireData = $this->request->all();
  221. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '站点ID不能为空']);
  222. if ($validator->fails()) {
  223. $errorMessage = $validator->errors()->first();
  224. return Result::error($errorMessage);
  225. }
  226. $keyword = $this->request->input("keyword", '');
  227. $page = (int) $this->request->input("page", 1);
  228. $pageSize = (int) $this->request->input("pageSize", 10);
  229. $websiteId = (int) $this->request->input("id", '');
  230. $result = $this->websiteServiceClient->getWebsiteRoleList($keyword, $page, $pageSize, $websiteId);
  231. return $result ? Result::success($result['data']) : Result::error($result['message']);
  232. }
  233. /**
  234. * 创建站点角色
  235. * @return array
  236. */
  237. public function createWebsiteRole()
  238. {
  239. $requireData = $this->request->all();
  240. $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'role_id' => 'required', 'website_id' => 'required'], ['type.required' => '类型不能为空', 'type_id.required' => 'ID不能为空', 'website_id.required' => '站点ID不能为空']);
  241. if ($validator->fails()) {
  242. $errorMessage = $validator->errors()->first();
  243. return Result::error($errorMessage);
  244. }
  245. $requireData['admin_user_id'] = Context::get("UserId");
  246. $result = $this->websiteServiceClient->createWebsiteRole($requireData);
  247. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  248. }
  249. /**
  250. * 删除站点角色
  251. * @return array
  252. */
  253. public function delWebsiteRole()
  254. {
  255. $id = (int) $this->request->input("id", '');
  256. $result = $this->websiteServiceClient->delWebsiteRole($id);
  257. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  258. }
  259. /**
  260. * 获取站点角色用户列表
  261. * @return void
  262. */
  263. public function getWebsiteRoleUserList()
  264. {
  265. $requireData = $this->request->all();
  266. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'role_id' => 'required'], ['website_id.required' => '站点ID不能为空', 'role_id.required' => '角色ID不能为空']);
  267. if ($validator->fails()) {
  268. $errorMessage = $validator->errors()->first();
  269. return Result::error($errorMessage);
  270. }
  271. $keyword = $this->request->input("keyword", '');
  272. $page = (int) $this->request->input("page", 1);
  273. $pageSize = (int) $this->request->input("pageSize", 10);
  274. $roleId = (int) $this->request->input("role_id", '');
  275. $websiteId = (int) $this->request->input("website_id", '');
  276. $result = $this->websiteServiceClient->getWebsiteRoleUserList($keyword, $page, $pageSize, $websiteId, $roleId);
  277. return $result ? Result::success($result['data']) : Result::error($result['message']);
  278. }
  279. /**
  280. * 创建站点角色用户
  281. * @return array
  282. */
  283. public function createWebsiteRoleUser()
  284. {
  285. $requireData = $this->request->all();
  286. $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'role_id' => 'required', 'website_id' => 'required', 'user_id' => 'required'], ['type.required' => '类型不能为空', 'website_id.required' => '站点ID不能为空', 'role_id.required' => '角色ID不能为空', 'user_id.required' => '用户ID不能为空']);
  287. if ($validator->fails()) {
  288. $errorMessage = $validator->errors()->first();
  289. return Result::error($errorMessage);
  290. }
  291. $requireData['admin_user_id'] = Context::get("UserId");
  292. $requireData['role_id'] = (int) $requireData['role_id'];
  293. $requireData['type'] = (int) $requireData['type'];
  294. $requireData['website_id'] = (int) $requireData['website_id'];
  295. $requireData['user_id'] = (int) $requireData['user_id'];
  296. $result = $this->websiteServiceClient->createWebsiteRoleUser($requireData);
  297. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  298. }
  299. /**
  300. * 删除站点角色用户
  301. * @return array
  302. */
  303. public function delWebsiteRoleUser()
  304. {
  305. $id = (int) $this->request->input("id", '');
  306. $result = $this->websiteServiceClient->delWebsiteRoleUser($id);
  307. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  308. }
  309. /**
  310. * 网站栏目映射
  311. * @return void
  312. */
  313. public function addWebsiteCategory()
  314. {
  315. return [];
  316. }
  317. /**
  318. * 管理后台首页统计
  319. * @return array
  320. */
  321. public function getAdminIndex()
  322. {
  323. return [];
  324. }
  325. /**
  326. * 获取模板皮肤分类
  327. * @return void
  328. */
  329. public function getTemplateClass()
  330. {
  331. $result = $this->websiteServiceClient->getTemplateClass([]);
  332. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  333. }
  334. /**
  335. * 添加模板分类
  336. * @return void
  337. */
  338. public function addTemplateClass()
  339. {
  340. $requireData = $this->request->all();
  341. $validator = $this->validationFactory->make($requireData, ['name' => 'required'], ['name.required' => '模板类型不能为空']);
  342. if ($validator->fails()) {
  343. $errorMessage = $validator->errors()->first();
  344. return Result::error($errorMessage);
  345. }
  346. $data = ['name' => $requireData['name'], 'sort' => $requireData['sort'] ?? 0];
  347. $result = $this->websiteServiceClient->addTemplateClass($data);
  348. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  349. }
  350. /**
  351. * 更新模板分类
  352. * @return array
  353. */
  354. public function upTemplateClass()
  355. {
  356. $requireData = $this->request->all();
  357. $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'id' => 'required'], ['name.required' => '模板类型不能为空', 'name.id' => '模板类型ID不能为空']);
  358. if ($validator->fails()) {
  359. $errorMessage = $validator->errors()->first();
  360. return Result::error($errorMessage);
  361. }
  362. $data = ['id' => $requireData['id'], 'name' => $requireData['name'], 'sort' => $requireData['sort'] ?? 0];
  363. $result = $this->websiteServiceClient->upTemplateClass($data);
  364. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  365. }
  366. /**
  367. * 删除模板分类
  368. * @return array
  369. */
  370. public function delTemplateClass()
  371. {
  372. $requireData = $this->request->all();
  373. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['name.required' => '类型id不能为空']);
  374. if ($validator->fails()) {
  375. $errorMessage = $validator->errors()->first();
  376. return Result::error($errorMessage);
  377. }
  378. $data = ['id' => $requireData['id']];
  379. $result = $this->websiteServiceClient->delTemplateClass($data);
  380. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  381. }
  382. /**
  383. * 获取分类下的模板
  384. * @return array
  385. */
  386. public function getTemplate()
  387. {
  388. $requireData = $this->request->all();
  389. $validator = $this->validationFactory->make($requireData, ['template_class_id' => 'required', 'page' => 'required', 'pageSize' => 'required'], ['template_class_id.required' => '类型template_class_id不能为空', 'page.required' => 'page不能为空', 'pageSize.required' => '每页显示条数不能为空']);
  390. if ($validator->fails()) {
  391. $errorMessage = $validator->errors()->first();
  392. return Result::error($errorMessage);
  393. }
  394. $data = ['template_class_id' => $requireData['template_class_id'], 'page' => $requireData['page'], 'pageSize' => $requireData['pageSize']];
  395. $result = $this->websiteServiceClient->getTemplate($data);
  396. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  397. }
  398. /**
  399. * 创建皮肤模板
  400. * @return array
  401. */
  402. public function addTemplate()
  403. {
  404. $requireData = $this->request->all();
  405. // var_dump("FCK:",$requireData);
  406. $validator = $this->validationFactory->make($requireData, ['template_name' => 'required', 'template_class_id' => 'required', 'template_img' => 'required'], ['template_name.required' => '模板名称不能为空', 'template_class_id.required' => '模板类型id不能为空', 'template_img.required' => '模板图片不能为空']);
  407. if ($validator->fails()) {
  408. $errorMessage = $validator->errors()->first();
  409. return Result::error($errorMessage);
  410. }
  411. // var_dump($requireData);
  412. $data = ['template_name' => $requireData['template_name'], 'template_class_id' => $requireData['template_class_id'], 'template_img' => $requireData['template_img']];
  413. $result = $this->websiteServiceClient->addTemplate($data);
  414. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  415. }
  416. /**
  417. * 更新模板
  418. * @return array
  419. */
  420. public function upTemplate()
  421. {
  422. $requireData = $this->request->all();
  423. $validator = $this->validationFactory->make($requireData, ['template_name' => 'required', 'template_class_id' => 'required', 'template_img' => 'required', 'id' => 'required'], ['template_name.required' => '模板名称不能为空', 'template_class_id.required' => '模板类型id不能为空', 'template_img.required' => '模板图片不能为空', 'id.required' => '模板id不能为空']);
  424. if ($validator->fails()) {
  425. $errorMessage = $validator->errors()->first();
  426. return Result::error($errorMessage);
  427. }
  428. $data = ['id' => $requireData['id'], 'template_name' => $requireData['template_name'], 'template_img' => $requireData['template_img'], 'template_class_id' => $requireData['template_class_id']];
  429. $result = $this->websiteServiceClient->upTemplate($data);
  430. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  431. }
  432. /**
  433. * 删除模板
  434. * @return array
  435. */
  436. public function delTemplate()
  437. {
  438. $requireData = $this->request->all();
  439. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['name.required' => '模板id不能为空']);
  440. if ($validator->fails()) {
  441. $errorMessage = $validator->errors()->first();
  442. return Result::error($errorMessage);
  443. }
  444. $data = ['id' => $requireData['id']];
  445. $result = $this->websiteServiceClient->delTemplate($data);
  446. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  447. }
  448. }