WebsiteController.php 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  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. #[Inject]
  18. protected ValidatorFactoryInterface $validationFactory;
  19. /**
  20. * @var WebsiteServiceInterface
  21. */
  22. #[Inject]
  23. private $websiteServiceClient;
  24. /**
  25. * 创建站点
  26. * @return array
  27. */
  28. public function addWebsite()
  29. {
  30. $requireData = $this->request->all();
  31. $validator = $this->validationFactory->make(
  32. $requireData,
  33. [
  34. 'website_column_id' => 'required',
  35. 'website_name' => 'required',
  36. 'website_url' => 'required',
  37. ],
  38. [
  39. 'website_column_id.required' => '栏目id不能为空',
  40. 'website_name.required' => '站点名称不能为空',
  41. 'website_url.required' => '网站地址不能为空',
  42. ]
  43. );
  44. if ($validator->fails()){
  45. $errorMessage = $validator->errors()->first();
  46. return Result::error($errorMessage);
  47. }
  48. if(isset($requireData['website_column_id']) && is_array($requireData['website_column_id'])){
  49. $requireData['website_column_arr_id'] = json_encode($requireData['website_column_id']);
  50. $requireData['website_column_id'] = end($requireData['website_column_id']);
  51. }else if($requireData['website_column_id']=="0"){
  52. $requireData['website_column_id'] = [0];
  53. }else{
  54. $id = [$requireData['website_column_id']];
  55. $requireData['website_column_arr_id'] = json_encode($id);
  56. $requireData['website_column_id'] = end($id);
  57. }
  58. if(isset($requireData['city_id']) && is_array($requireData['city_id'])){
  59. $requireData['city_arr_id'] = json_encode($requireData['city_id']);
  60. $requireData['city_id'] = end($requireData['city_id']);
  61. }else{
  62. $city_id = [0];
  63. $requireData['city_arr_id'] = json_encode($city_id);
  64. $requireData['city_id'] = end($city_id);
  65. }
  66. $result = $this->websiteServiceClient->createWebsite($requireData);
  67. return $result?Result::success($result['data']):Result::error($result['message']);
  68. }
  69. /**
  70. * 获取站点列表
  71. * @return void
  72. */
  73. public function getWebsiteList()
  74. {
  75. $keyword = $this->request->input("keyWord",'');
  76. $page = (int)$this->request->input("page",1);
  77. $pageSize = (int)$this->request->input("pageSize",10);
  78. $result = $this->websiteServiceClient->getWebsitetList($keyword,$page,$pageSize);
  79. if($result['data']){
  80. foreach ($result['data']['rows'] as $k=>$v) {
  81. $result['data']['rows'][$k]['city_arr_id'] = $v['city_arr_id']?json_decode($v['city_arr_id']):'';
  82. }
  83. }
  84. return $result?Result::success($result['data']):Result::error($result['message']);
  85. }
  86. /**
  87. * 更新站点
  88. * @return array
  89. */
  90. public function updateWebsite()
  91. {
  92. $requireData = $this->request->all();
  93. $validator = $this->validationFactory->make(
  94. $requireData,
  95. [
  96. 'id' => 'required',
  97. 'website_column_id' => 'required',
  98. 'website_name' => 'required',
  99. 'website_url' => 'required',
  100. ],
  101. [
  102. 'id.required' => 'id不能为空',
  103. 'website_column_id.required' => '栏目id不能为空',
  104. 'website_name.required' => '站点名称不能为空',
  105. 'website_url.required' => '网站地址不能为空',
  106. ]
  107. );
  108. if ($validator->fails()){
  109. $errorMessage = $validator->errors()->first();
  110. return Result::error($errorMessage);
  111. }
  112. if(isset($requireData['website_column_id']) && is_array($requireData['website_column_id'])){
  113. $requireData['website_column_arr_id'] = json_encode($requireData['website_column_id']);
  114. $requireData['website_column_id'] = end($requireData['website_column_id']);
  115. }else if($requireData['website_column_id']=="0"){
  116. $requireData['website_column_id'] = [0];
  117. }else{
  118. $id = [$requireData['website_column_id']];
  119. $requireData['website_column_arr_id'] = json_encode($id);
  120. $requireData['website_column_id'] = end($id);
  121. }
  122. if(isset($requireData['city_id']) && is_array($requireData['city_id'])){
  123. $requireData['city_arr_id'] = json_encode($requireData['city_id']);
  124. $requireData['city_id'] = end($requireData['city_id']);
  125. }else{
  126. $city_id = [0];
  127. $requireData['city_arr_id'] = json_encode($city_id);
  128. $requireData['city_id'] = end($city_id);
  129. }
  130. $result = $this->websiteServiceClient->updateWebsite($requireData['id'],$requireData);
  131. return $result?Result::success($result['data']):Result::error($result['message']);
  132. }
  133. /**
  134. * 删除站点
  135. * @return array
  136. */
  137. public function delWebsite()
  138. {
  139. $id = (int)$this->request->input("id",'');
  140. $result = $this->websiteServiceClient->delWebsite($id);
  141. return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
  142. }
  143. /**
  144. * 获取站点信息
  145. * @return array
  146. */
  147. public function getWebsiteInfo()
  148. {
  149. $id = (int)$this->request->input("id",'');
  150. $result = $this->websiteServiceClient->getWebsiteInfo($id);
  151. $this->logger->info('hello world',[1=>"ceshi"],["a"=>"11"]);
  152. return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
  153. }
  154. public function getWebsiteColumn()
  155. {
  156. $pid = (int)$this->request->input("pid",0);
  157. $result = $this->websiteServiceClient->getWebsiteColumn([]);
  158. $rep = PublicData::buildMenuTree($result['data']);
  159. return $rep?Result::success($rep):Result::error("查询失败");
  160. }
  161. /**
  162. * 获取站点列表
  163. * @return void
  164. */
  165. public function getWebsiteColumnList()
  166. {
  167. $keyword = $this->request->input("keyWord",'');
  168. $page = (int)$this->request->input("page",1);
  169. $pageSize = (int)$this->request->input("pageSize",10);
  170. $result = $this->websiteServiceClient->getWebsiteColumnList($keyword,$page,$pageSize);
  171. if($result['data']){
  172. foreach ($result['data']['rows'] as $k=>$v) {
  173. $result['data']['rows'][$k]['column_arr_id'] = $v['column_arr_id']?json_decode($v['column_arr_id']):[0];
  174. }
  175. }
  176. return $result?Result::success($result['data']):Result::error($result['message']);
  177. }
  178. /**
  179. * 创建栏目
  180. * @return array
  181. */
  182. public function addWebsiteColumn()
  183. {
  184. $requireData = $this->request->all();
  185. $validator = $this->validationFactory->make(
  186. $requireData,
  187. [
  188. 'column_name' => 'required',
  189. 'column_arr_id' => 'required'
  190. ],
  191. [
  192. 'column_name.required' => '栏目名称不能为空',
  193. 'column_arr_id.required' => '栏目ID不能为空'
  194. ]
  195. );
  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->createWebsiteColumn($requireData);
  209. return $result?Result::success($result['data']):Result::error($result['message']);
  210. }
  211. /**
  212. * 创建栏目
  213. * @return array
  214. */
  215. public function updateWebsiteColumn()
  216. {
  217. $requireData = $this->request->all();
  218. $validator = $this->validationFactory->make(
  219. $requireData,
  220. [
  221. 'column_name' => 'required',
  222. 'column_arr_id' => 'required'
  223. ],
  224. [
  225. 'column_name.required' => '栏目名称不能为空',
  226. 'column_arr_id.required' => '栏目ID不能为空'
  227. ]
  228. );
  229. if ($validator->fails()){
  230. $errorMessage = $validator->errors()->first();
  231. return Result::error($errorMessage);
  232. }
  233. if(isset($requireData['column_arr_id']) && is_array($requireData['column_arr_id'])){
  234. $requireData['pid'] = end($requireData['column_arr_id']);
  235. $requireData['column_arr_id'] = json_encode($requireData['column_arr_id']);
  236. }else{
  237. $column_arr_id= [0];
  238. $requireData['column_arr_id'] = json_encode($column_arr_id);
  239. $requireData['pid'] = end($column_arr_id);
  240. }
  241. $result = $this->websiteServiceClient->updateWebsiteColumn($requireData['id'],$requireData);
  242. return $result?Result::success($result['data']):Result::error($result['message']);
  243. }
  244. /**
  245. * 删除栏目
  246. * @return array
  247. */
  248. public function delWebsiteColumn()
  249. {
  250. $id = (int)$this->request->input("id",'');
  251. $result = $this->websiteServiceClient->delWebsiteColumn($id);
  252. return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
  253. }
  254. /**
  255. * 获取站点角色列表
  256. * @return void
  257. */
  258. public function getWebsiteRoleList()
  259. {
  260. $requireData = $this->request->all();
  261. $validator = $this->validationFactory->make(
  262. $requireData,
  263. [
  264. 'id' => 'required'
  265. ],
  266. [
  267. 'id.required' => '站点ID不能为空'
  268. ]
  269. );
  270. if ($validator->fails()){
  271. $errorMessage = $validator->errors()->first();
  272. return Result::error($errorMessage);
  273. }
  274. $keyword = $this->request->input("keyword",'');
  275. $page = (int)$this->request->input("page",1);
  276. $pageSize = (int)$this->request->input("pageSize",10);
  277. $websiteId = (int)$this->request->input("id",'');
  278. $result = $this->websiteServiceClient->getWebsiteRoleList($keyword,$page,$pageSize,$websiteId);
  279. return $result?Result::success($result['data']):Result::error($result['message']);
  280. }
  281. /**
  282. * 创建站点角色
  283. * @return array
  284. */
  285. public function createWebsiteRole()
  286. {
  287. $requireData = $this->request->all();
  288. $validator = $this->validationFactory->make(
  289. $requireData,
  290. [
  291. 'type' => 'required',
  292. 'role_id' => 'required',
  293. 'website_id' => 'required'
  294. ],
  295. [
  296. 'type.required' => '类型不能为空',
  297. 'type_id.required' => 'ID不能为空',
  298. 'website_id.required' => '站点ID不能为空',
  299. ]
  300. );
  301. if ($validator->fails()){
  302. $errorMessage = $validator->errors()->first();
  303. return Result::error($errorMessage);
  304. }
  305. $requireData['admin_user_id'] = $this->UserId;
  306. $result = $this->websiteServiceClient->createWebsiteRole($requireData);
  307. return $result['code']!=0?Result::success($result['data']):Result::error($result['message']);
  308. }
  309. /**
  310. * 删除站点角色
  311. * @return array
  312. */
  313. public function delWebsiteRole()
  314. {
  315. $id = (int)$this->request->input("id",'');
  316. $result = $this->websiteServiceClient->delWebsiteRole($id);
  317. return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
  318. }
  319. /**
  320. * 获取站点角色用户列表
  321. * @return void
  322. */
  323. public function getWebsiteRoleUserList()
  324. {
  325. $requireData = $this->request->all();
  326. $validator = $this->validationFactory->make(
  327. $requireData,
  328. [
  329. 'website_id' => 'required',
  330. 'role_id' => 'required',
  331. ],
  332. [
  333. 'website_id.required' => '站点ID不能为空',
  334. 'role_id.required' => '角色ID不能为空',
  335. ]
  336. );
  337. if ($validator->fails()){
  338. $errorMessage = $validator->errors()->first();
  339. return Result::error($errorMessage);
  340. }
  341. $keyword = $this->request->input("keyword",'');
  342. $page = (int)$this->request->input("page",1);
  343. $pageSize = (int)$this->request->input("pageSize",10);
  344. $roleId = (int)$this->request->input("role_id",'');
  345. $websiteId = (int)$this->request->input("website_id",'');
  346. $result = $this->websiteServiceClient->getWebsiteRoleUserList($keyword,$page,$pageSize,$websiteId,$roleId);
  347. return $result?Result::success($result['data']):Result::error($result['message']);
  348. }
  349. /**
  350. * 创建站点角色用户
  351. * @return array
  352. */
  353. public function createWebsiteRoleUser()
  354. {
  355. $requireData = $this->request->all();
  356. $validator = $this->validationFactory->make(
  357. $requireData,
  358. [
  359. 'type' => 'required',
  360. 'role_id' => 'required',
  361. 'website_id' => 'required',
  362. 'user_id' => 'required',
  363. ],
  364. [
  365. 'type.required' => '类型不能为空',
  366. 'website_id.required' => '站点ID不能为空',
  367. 'role_id.required' => '角色ID不能为空',
  368. 'user_id.required' => '用户ID不能为空',
  369. ]
  370. );
  371. if ($validator->fails()){
  372. $errorMessage = $validator->errors()->first();
  373. return Result::error($errorMessage);
  374. }
  375. $requireData['admin_user_id'] = $this->UserId;
  376. $requireData['role_id'] = (int)$requireData['role_id'];
  377. $requireData['type'] = (int)$requireData['type'];
  378. $requireData['website_id'] =(int)$requireData['website_id'];
  379. $requireData['user_id'] = (int)$requireData['user_id'];
  380. $result = $this->websiteServiceClient->createWebsiteRoleUser($requireData);
  381. return $result['code']!=0?Result::success($result['data']):Result::error($result['message']);
  382. }
  383. /**
  384. * 删除站点角色用户
  385. * @return array
  386. */
  387. public function delWebsiteRoleUser()
  388. {
  389. $id = (int)$this->request->input("id",'');
  390. $result = $this->websiteServiceClient->delWebsiteRoleUser($id);
  391. return $result['code']==200?Result::success($result['data']):Result::error($result['message']);
  392. }
  393. /**
  394. * 网站栏目映射
  395. * @return void
  396. */
  397. public function addWebsiteCategory()
  398. {
  399. return [];
  400. }
  401. public function getAdminIndex()
  402. {
  403. return [];
  404. }
  405. }