WebsiteController.php 9.8 KB

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