App_Controller_WebsiteController.proxy.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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. }