App_Controller_WebsiteController.proxy.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  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. /**
  11. * Class WebsiteController
  12. * @package App\Controller
  13. */
  14. //#[AutoController]
  15. class WebsiteController extends AbstractController
  16. {
  17. use \Hyperf\Di\Aop\ProxyTrait;
  18. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  19. function __construct(\Hyperf\Logger\LoggerFactory $loggerFactory)
  20. {
  21. if (method_exists(parent::class, '__construct')) {
  22. parent::__construct(...func_get_args());
  23. }
  24. $this->__handlePropertyHandler(__CLASS__);
  25. }
  26. #[Inject]
  27. protected ValidatorFactoryInterface $validationFactory;
  28. /**
  29. * @var WebsiteServiceInterface
  30. */
  31. #[Inject]
  32. private $websiteServiceClient;
  33. /**
  34. * 创建站点
  35. * @return array
  36. */
  37. public function addWebsite()
  38. {
  39. $requireData = $this->request->all();
  40. $validator = $this->validationFactory->make($requireData, ['website_column_id' => 'required', 'website_name' => 'required', 'website_url' => 'required'], ['website_column_id.required' => '栏目id不能为空', 'website_name.required' => '站点名称不能为空', 'website_url.required' => '网站地址不能为空']);
  41. if ($validator->fails()) {
  42. $errorMessage = $validator->errors()->first();
  43. return Result::error($errorMessage);
  44. }
  45. if (isset($requireData['website_column_id']) && is_array($requireData['website_column_id'])) {
  46. $requireData['website_column_arr_id'] = json_encode($requireData['website_column_id']);
  47. $requireData['website_column_id'] = end($requireData['website_column_id']);
  48. } else {
  49. if ($requireData['website_column_id'] == "0") {
  50. $requireData['website_column_id'] = [0];
  51. } else {
  52. $id = [$requireData['website_column_id']];
  53. $requireData['website_column_arr_id'] = json_encode($id);
  54. $requireData['website_column_id'] = end($id);
  55. }
  56. }
  57. if (isset($requireData['city_id']) && is_array($requireData['city_id'])) {
  58. $requireData['city_arr_id'] = json_encode($requireData['city_id']);
  59. $requireData['city_id'] = end($requireData['city_id']);
  60. } else {
  61. $city_id = [0];
  62. $requireData['city_arr_id'] = json_encode($city_id);
  63. $requireData['city_id'] = end($city_id);
  64. }
  65. $result = $this->websiteServiceClient->createWebsite($requireData);
  66. return $result ? Result::success($result['data']) : Result::error($result['message']);
  67. }
  68. /**
  69. * 获取站点列表
  70. * @return void
  71. */
  72. public function getWebsiteList()
  73. {
  74. $keyword = $this->request->input("keyWord", '');
  75. $page = (int) $this->request->input("page", 1);
  76. $pageSize = (int) $this->request->input("pageSize", 10);
  77. $result = $this->websiteServiceClient->getWebsitetList($keyword, $page, $pageSize);
  78. if ($result['data']) {
  79. foreach ($result['data']['rows'] as $k => $v) {
  80. $result['data']['rows'][$k]['city_arr_id'] = $v['city_arr_id'] ? json_decode($v['city_arr_id']) : '';
  81. }
  82. }
  83. return $result ? Result::success($result['data']) : Result::error($result['message']);
  84. }
  85. /**
  86. * 更新站点
  87. * @return array
  88. */
  89. public function updateWebsite()
  90. {
  91. $requireData = $this->request->all();
  92. $validator = $this->validationFactory->make($requireData, ['id' => 'required', 'website_column_id' => 'required', 'website_name' => 'required', 'website_url' => 'required'], ['id.required' => 'id不能为空', 'website_column_id.required' => '栏目id不能为空', 'website_name.required' => '站点名称不能为空', 'website_url.required' => '网站地址不能为空']);
  93. if ($validator->fails()) {
  94. $errorMessage = $validator->errors()->first();
  95. return Result::error($errorMessage);
  96. }
  97. if (isset($requireData['website_column_id']) && is_array($requireData['website_column_id'])) {
  98. $requireData['website_column_arr_id'] = json_encode($requireData['website_column_id']);
  99. $requireData['website_column_id'] = end($requireData['website_column_id']);
  100. } else {
  101. if ($requireData['website_column_id'] == "0") {
  102. $requireData['website_column_id'] = [0];
  103. } else {
  104. $id = [$requireData['website_column_id']];
  105. $requireData['website_column_arr_id'] = json_encode($id);
  106. $requireData['website_column_id'] = end($id);
  107. }
  108. }
  109. if (isset($requireData['city_id']) && is_array($requireData['city_id'])) {
  110. $requireData['city_arr_id'] = json_encode($requireData['city_id']);
  111. $requireData['city_id'] = end($requireData['city_id']);
  112. } else {
  113. $city_id = [0];
  114. $requireData['city_arr_id'] = json_encode($city_id);
  115. $requireData['city_id'] = end($city_id);
  116. }
  117. $result = $this->websiteServiceClient->updateWebsite($requireData['id'], $requireData);
  118. return $result ? Result::success($result['data']) : Result::error($result['message']);
  119. }
  120. /**
  121. * 删除站点
  122. * @return array
  123. */
  124. public function delWebsite()
  125. {
  126. $id = (int) $this->request->input("id", '');
  127. $result = $this->websiteServiceClient->delWebsite($id);
  128. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  129. }
  130. /**
  131. * 获取站点信息
  132. * @return array
  133. */
  134. public function getWebsiteInfo()
  135. {
  136. $id = (int) $this->request->input("id", '');
  137. $result = $this->websiteServiceClient->getWebsiteInfo($id);
  138. $this->logger->info('hello world', [1 => "ceshi"], ["a" => "11"]);
  139. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  140. }
  141. public function getWebsiteColumn()
  142. {
  143. $pid = (int) $this->request->input("pid", 0);
  144. $result = $this->websiteServiceClient->getWebsiteColumn([]);
  145. $rep = PublicData::buildMenuTree($result['data']);
  146. return $rep ? Result::success($rep) : Result::error("查询失败");
  147. }
  148. /**
  149. * 获取站点列表
  150. * @return void
  151. */
  152. public function getWebsiteColumnList()
  153. {
  154. $keyword = $this->request->input("keyWord", '');
  155. $page = (int) $this->request->input("page", 1);
  156. $pageSize = (int) $this->request->input("pageSize", 10);
  157. $result = $this->websiteServiceClient->getWebsiteColumnList($keyword, $page, $pageSize);
  158. if ($result['data']) {
  159. foreach ($result['data']['rows'] as $k => $v) {
  160. $result['data']['rows'][$k]['column_arr_id'] = $v['column_arr_id'] ? json_decode($v['column_arr_id']) : [0];
  161. }
  162. }
  163. return $result ? Result::success($result['data']) : Result::error($result['message']);
  164. }
  165. /**
  166. * 创建栏目
  167. * @return array
  168. */
  169. public function addWebsiteColumn()
  170. {
  171. $requireData = $this->request->all();
  172. $validator = $this->validationFactory->make($requireData, ['column_name' => 'required', 'column_arr_id' => 'required'], ['column_name.required' => '栏目名称不能为空', 'column_arr_id.required' => '栏目ID不能为空']);
  173. if ($validator->fails()) {
  174. $errorMessage = $validator->errors()->first();
  175. return Result::error($errorMessage);
  176. }
  177. if (isset($requireData['column_arr_id']) && is_array($requireData['column_arr_id'])) {
  178. $requireData['pid'] = end($requireData['column_arr_id']);
  179. $requireData['column_arr_id'] = json_encode($requireData['column_arr_id']);
  180. } else {
  181. $column_arr_id = [0];
  182. $requireData['column_arr_id'] = json_encode($column_arr_id);
  183. $requireData['pid'] = end($column_arr_id);
  184. }
  185. $result = $this->websiteServiceClient->createWebsiteColumn($requireData);
  186. return $result ? Result::success($result['data']) : Result::error($result['message']);
  187. }
  188. /**
  189. * 创建栏目
  190. * @return array
  191. */
  192. public function updateWebsiteColumn()
  193. {
  194. $requireData = $this->request->all();
  195. $validator = $this->validationFactory->make($requireData, ['column_name' => 'required', 'column_arr_id' => 'required'], ['column_name.required' => '栏目名称不能为空', 'column_arr_id.required' => '栏目ID不能为空']);
  196. if ($validator->fails()) {
  197. $errorMessage = $validator->errors()->first();
  198. return Result::error($errorMessage);
  199. }
  200. if (isset($requireData['column_arr_id']) && is_array($requireData['column_arr_id'])) {
  201. $requireData['pid'] = end($requireData['column_arr_id']);
  202. $requireData['column_arr_id'] = json_encode($requireData['column_arr_id']);
  203. } else {
  204. $column_arr_id = [0];
  205. $requireData['column_arr_id'] = json_encode($column_arr_id);
  206. $requireData['pid'] = end($column_arr_id);
  207. }
  208. $result = $this->websiteServiceClient->updateWebsiteColumn($requireData['id'], $requireData);
  209. return $result ? Result::success($result['data']) : Result::error($result['message']);
  210. }
  211. /**
  212. * 删除栏目
  213. * @return array
  214. */
  215. public function delWebsiteColumn()
  216. {
  217. $id = (int) $this->request->input("id", '');
  218. $result = $this->websiteServiceClient->delWebsiteColumn($id);
  219. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  220. }
  221. /**
  222. * 获取站点角色列表
  223. * @return void
  224. */
  225. public function getWebsiteRoleList()
  226. {
  227. $requireData = $this->request->all();
  228. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '站点ID不能为空']);
  229. if ($validator->fails()) {
  230. $errorMessage = $validator->errors()->first();
  231. return Result::error($errorMessage);
  232. }
  233. $keyword = $this->request->input("keyword", '');
  234. $page = (int) $this->request->input("page", 1);
  235. $pageSize = (int) $this->request->input("pageSize", 10);
  236. $websiteId = (int) $this->request->input("id", '');
  237. $result = $this->websiteServiceClient->getWebsiteRoleList($keyword, $page, $pageSize, $websiteId);
  238. return $result ? Result::success($result['data']) : Result::error($result['message']);
  239. }
  240. /**
  241. * 创建站点角色
  242. * @return array
  243. */
  244. public function createWebsiteRole()
  245. {
  246. $requireData = $this->request->all();
  247. $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'role_id' => 'required', 'website_id' => 'required'], ['type.required' => '类型不能为空', 'type_id.required' => 'ID不能为空', 'website_id.required' => '站点ID不能为空']);
  248. if ($validator->fails()) {
  249. $errorMessage = $validator->errors()->first();
  250. return Result::error($errorMessage);
  251. }
  252. $requireData['admin_user_id'] = $this->UserId;
  253. $result = $this->websiteServiceClient->createWebsiteRole($requireData);
  254. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  255. }
  256. /**
  257. * 删除站点角色
  258. * @return array
  259. */
  260. public function delWebsiteRole()
  261. {
  262. $id = (int) $this->request->input("id", '');
  263. $result = $this->websiteServiceClient->delWebsiteRole($id);
  264. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  265. }
  266. /**
  267. * 获取站点角色用户列表
  268. * @return void
  269. */
  270. public function getWebsiteRoleUserList()
  271. {
  272. $requireData = $this->request->all();
  273. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'role_id' => 'required'], ['website_id.required' => '站点ID不能为空', 'role_id.required' => '角色ID不能为空']);
  274. if ($validator->fails()) {
  275. $errorMessage = $validator->errors()->first();
  276. return Result::error($errorMessage);
  277. }
  278. $keyword = $this->request->input("keyword", '');
  279. $page = (int) $this->request->input("page", 1);
  280. $pageSize = (int) $this->request->input("pageSize", 10);
  281. $roleId = (int) $this->request->input("role_id", '');
  282. $websiteId = (int) $this->request->input("website_id", '');
  283. $result = $this->websiteServiceClient->getWebsiteRoleUserList($keyword, $page, $pageSize, $websiteId, $roleId);
  284. return $result ? Result::success($result['data']) : Result::error($result['message']);
  285. }
  286. /**
  287. * 创建站点角色用户
  288. * @return array
  289. */
  290. public function createWebsiteRoleUser()
  291. {
  292. $requireData = $this->request->all();
  293. $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不能为空']);
  294. if ($validator->fails()) {
  295. $errorMessage = $validator->errors()->first();
  296. return Result::error($errorMessage);
  297. }
  298. $requireData['admin_user_id'] = $this->UserId;
  299. $requireData['role_id'] = (int) $requireData['role_id'];
  300. $requireData['type'] = (int) $requireData['type'];
  301. $requireData['website_id'] = (int) $requireData['website_id'];
  302. $requireData['user_id'] = (int) $requireData['user_id'];
  303. $result = $this->websiteServiceClient->createWebsiteRoleUser($requireData);
  304. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  305. }
  306. /**
  307. * 删除站点角色用户
  308. * @return array
  309. */
  310. public function delWebsiteRoleUser()
  311. {
  312. $id = (int) $this->request->input("id", '');
  313. $result = $this->websiteServiceClient->delWebsiteRoleUser($id);
  314. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  315. }
  316. /**
  317. * 网站栏目映射
  318. * @return void
  319. */
  320. public function addWebsiteCategory()
  321. {
  322. }
  323. public function getAdminIndex()
  324. {
  325. }
  326. }