App_Controller_WebsiteController.proxy.php 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701
  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. use Phper666\JWTAuth\JWT;
  12. use DateTime;
  13. /**
  14. * Class WebsiteController
  15. * @package App\Controller
  16. */
  17. //#[AutoController]
  18. class WebsiteController extends AbstractController
  19. {
  20. use \Hyperf\Di\Aop\ProxyTrait;
  21. use \Hyperf\Di\Aop\PropertyHandlerTrait;
  22. #[Inject]
  23. protected ValidatorFactoryInterface $validationFactory;
  24. /**
  25. * @var WebsiteServiceInterface
  26. */
  27. #[Inject]
  28. private $websiteServiceClient;
  29. protected JWT $JWT;
  30. public function __construct(Jwt $JWT)
  31. {
  32. $this->__handlePropertyHandler(__CLASS__);
  33. $this->JWT = $JWT;
  34. }
  35. /**
  36. * 创建站点
  37. * @return array
  38. */
  39. public function addWebsite()
  40. {
  41. $requireData = $this->request->all();
  42. $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' => '网站地址不能为空']);
  43. if ($validator->fails()) {
  44. $errorMessage = $validator->errors()->first();
  45. return Result::error($errorMessage);
  46. }
  47. $requireData['website_url'] = json_encode($requireData['website_url']);
  48. $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
  49. $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
  50. $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
  51. $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
  52. var_dump($requireData);
  53. $result = $this->websiteServiceClient->createWebsite($requireData);
  54. return $result ? Result::success($result['data']) : Result::error($result['message']);
  55. }
  56. /**
  57. * 获取站点列表
  58. * @return void
  59. */
  60. public function getWebsiteList()
  61. {
  62. $requireData = $this->request->all();
  63. $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '页码不能为空', 'pageSize.required' => '每页显示条数不能为空']);
  64. if ($validator->fails()) {
  65. $errorMessage = $validator->errors()->first();
  66. return Result::error($errorMessage);
  67. }
  68. $result = $this->websiteServiceClient->getWebsitetList($requireData);
  69. if ($result['data']) {
  70. foreach ($result['data']['rows'] as $k => $v) {
  71. $result['data']['rows'][$k]['city_arr_id'] = $v['city_arr_id'] ? json_decode($v['city_arr_id']) : '';
  72. $result['data']['rows'][$k]['website_url'] = $v['website_url'] ? json_decode($v['website_url']) : [];
  73. }
  74. }
  75. return $result ? Result::success($result['data']) : Result::error($result['message']);
  76. }
  77. /**
  78. * 更新站点
  79. * @return array
  80. */
  81. public function updateWebsite()
  82. {
  83. $requireData = $this->request->all();
  84. $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' => '网站地址不能为空']);
  85. if ($validator->fails()) {
  86. $errorMessage = $validator->errors()->first();
  87. return Result::error($errorMessage);
  88. }
  89. $requireData['website_url'] = json_encode($requireData['website_url']);
  90. $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : '';
  91. $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : '';
  92. $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
  93. $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
  94. $result = $this->websiteServiceClient->updateWebsite((int) $requireData['id'], $requireData);
  95. return $result ? Result::success($result['data']) : Result::error($result['message']);
  96. }
  97. /**
  98. * 删除站点
  99. * @return array
  100. */
  101. public function delWebsite()
  102. {
  103. $requireData = $this->request->all();
  104. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  105. if ($validator->fails()) {
  106. $errorMessage = $validator->errors()->first();
  107. return Result::error($errorMessage);
  108. }
  109. $id = (int) $requireData['id'];
  110. $result = $this->websiteServiceClient->delWebsite($id);
  111. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  112. }
  113. /**
  114. * 获取站点信息
  115. * @return array
  116. */
  117. public function getWebsiteInfo()
  118. {
  119. $requireData = $this->request->all();
  120. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => 'id不能为空']);
  121. if ($validator->fails()) {
  122. $errorMessage = $validator->errors()->first();
  123. return Result::error($errorMessage);
  124. }
  125. $id = (int) $requireData['id'];
  126. $result = $this->websiteServiceClient->getWebsiteInfo($id);
  127. if ($result['code'] == 200) {
  128. $result['data']['website_url'] = isset($result['data']['website_url']) && $result['data']['website_url'] ? json_decode($result['data']['website_url']) : '';
  129. $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']) : '';
  130. $result['data']['city_arr_id'] = isset($result['data']['city_arr_id']) && $result['data']['city_arr_id'] ? json_decode($result['data']['city_arr_id']) : '';
  131. return Result::success($result['data']);
  132. } else {
  133. return Result::error($result['message']);
  134. }
  135. }
  136. /**
  137. * 添加的时候 选择上级网系
  138. * @return array
  139. */
  140. public function getWebsiteColumn()
  141. {
  142. $result = $this->websiteServiceClient->getWebsiteColumn([]);
  143. $rep = PublicData::buildMenuTree($result['data']);
  144. return $rep ? Result::success($rep) : Result::error("查询失败");
  145. }
  146. /**
  147. * 获取网系列表
  148. * @return void
  149. */
  150. public function getWebsiteColumnList()
  151. {
  152. $requireData = $this->request->all();
  153. $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '页码不能为空', 'pageSize.required' => '每页显示条数不能为空']);
  154. if ($validator->fails()) {
  155. $errorMessage = $validator->errors()->first();
  156. return Result::error($errorMessage);
  157. }
  158. $result = $this->websiteServiceClient->getWebsiteColumnList($requireData);
  159. if ($result['data']) {
  160. foreach ($result['data']['rows'] as $k => $v) {
  161. $result['data']['rows'][$k]['column_arr_id'] = $v['column_arr_id'] ? json_decode($v['column_arr_id']) : [0];
  162. }
  163. }
  164. return $result ? Result::success($result['data']) : Result::error($result['message']);
  165. }
  166. /**
  167. * 创建网系
  168. * @return array
  169. */
  170. public function addWebsiteColumn()
  171. {
  172. $requireData = $this->request->all();
  173. $validator = $this->validationFactory->make($requireData, ['column_name' => 'required'], ['column_name.required' => '网系名称不能为空']);
  174. if ($validator->fails()) {
  175. $errorMessage = $validator->errors()->first();
  176. return Result::error($errorMessage);
  177. }
  178. $requireData['pid'] = isset($requireData['column_arr_id']) ? end($requireData['column_arr_id']) : '';
  179. $requireData['column_arr_id'] = isset($requireData['column_arr_id']) ? json_encode($requireData['column_arr_id']) : '';
  180. $result = $this->websiteServiceClient->createWebsiteColumn($requireData);
  181. return $result ? Result::success($result['data']) : Result::error($result['message']);
  182. }
  183. /**
  184. * 更新网系
  185. * @return array
  186. */
  187. public function updateWebsiteColumn()
  188. {
  189. $requireData = $this->request->all();
  190. $validator = $this->validationFactory->make($requireData, ['column_name' => 'required'], ['column_name.required' => '栏目名称不能为空']);
  191. if ($validator->fails()) {
  192. $errorMessage = $validator->errors()->first();
  193. return Result::error($errorMessage);
  194. }
  195. $requireData['pid'] = isset($requireData['column_arr_id']) ? end($requireData['column_arr_id']) : '';
  196. $requireData['column_arr_id'] = isset($requireData['column_arr_id']) ? json_encode($requireData['column_arr_id']) : '';
  197. $result = $this->websiteServiceClient->updateWebsiteColumn($requireData['id'], $requireData);
  198. return $result ? Result::success($result['data']) : Result::error($result['message']);
  199. }
  200. /**
  201. * 删除网系
  202. * @return array
  203. */
  204. public function delWebsiteColumn()
  205. {
  206. $requireData = $this->request->all();
  207. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '网系ID不能为空']);
  208. if ($validator->fails()) {
  209. $errorMessage = $validator->errors()->first();
  210. return Result::error($errorMessage);
  211. }
  212. $result = $this->websiteServiceClient->delWebsiteColumn(intval($requireData['id']));
  213. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  214. }
  215. /**
  216. * 获取站点角色列表
  217. * @return void
  218. */
  219. public function getWebsiteRoleList()
  220. {
  221. $requireData = $this->request->all();
  222. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['id.required' => '站点ID不能为空']);
  223. if ($validator->fails()) {
  224. $errorMessage = $validator->errors()->first();
  225. return Result::error($errorMessage);
  226. }
  227. $keyword = $this->request->input("keyword", '');
  228. $page = (int) $this->request->input("page", 1);
  229. $pageSize = (int) $this->request->input("pageSize", 10);
  230. $websiteId = (int) $this->request->input("id", '');
  231. $result = $this->websiteServiceClient->getWebsiteRoleList($keyword, $page, $pageSize, $websiteId);
  232. return $result ? Result::success($result['data']) : Result::error($result['message']);
  233. }
  234. /**
  235. * 创建站点角色
  236. * @return array
  237. */
  238. public function createWebsiteRole()
  239. {
  240. $requireData = $this->request->all();
  241. $validator = $this->validationFactory->make($requireData, ['type' => 'required', 'role_id' => 'required', 'website_id' => 'required'], ['type.required' => '类型不能为空', 'type_id.required' => 'ID不能为空', 'website_id.required' => '站点ID不能为空']);
  242. if ($validator->fails()) {
  243. $errorMessage = $validator->errors()->first();
  244. return Result::error($errorMessage);
  245. }
  246. $requireData['admin_user_id'] = Context::get("UserId");
  247. $result = $this->websiteServiceClient->createWebsiteRole($requireData);
  248. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  249. }
  250. /**
  251. * 删除站点角色
  252. * @return array
  253. */
  254. public function delWebsiteRole()
  255. {
  256. $id = (int) $this->request->input("id", '');
  257. $result = $this->websiteServiceClient->delWebsiteRole($id);
  258. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  259. }
  260. /**
  261. * 获取站点角色用户列表
  262. * @return void
  263. */
  264. public function getWebsiteRoleUserList()
  265. {
  266. $requireData = $this->request->all();
  267. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'role_id' => 'required'], ['website_id.required' => '站点ID不能为空', 'role_id.required' => '角色ID不能为空']);
  268. if ($validator->fails()) {
  269. $errorMessage = $validator->errors()->first();
  270. return Result::error($errorMessage);
  271. }
  272. $keyword = $this->request->input("keyword", '');
  273. $page = (int) $this->request->input("page", 1);
  274. $pageSize = (int) $this->request->input("pageSize", 10);
  275. $roleId = (int) $this->request->input("role_id", '');
  276. $websiteId = (int) $this->request->input("website_id", '');
  277. $result = $this->websiteServiceClient->getWebsiteRoleUserList($keyword, $page, $pageSize, $websiteId, $roleId);
  278. return $result ? Result::success($result['data']) : Result::error($result['message']);
  279. }
  280. /**
  281. * 创建站点角色用户
  282. * @return array
  283. */
  284. public function createWebsiteRoleUser()
  285. {
  286. $requireData = $this->request->all();
  287. $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不能为空']);
  288. if ($validator->fails()) {
  289. $errorMessage = $validator->errors()->first();
  290. return Result::error($errorMessage);
  291. }
  292. $requireData['admin_user_id'] = Context::get("UserId");
  293. $requireData['role_id'] = (int) $requireData['role_id'];
  294. $requireData['type'] = (int) $requireData['type'];
  295. $requireData['website_id'] = (int) $requireData['website_id'];
  296. $requireData['user_id'] = (int) $requireData['user_id'];
  297. $result = $this->websiteServiceClient->createWebsiteRoleUser($requireData);
  298. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  299. }
  300. /**
  301. * 删除站点角色用户
  302. * @return array
  303. */
  304. public function delWebsiteRoleUser()
  305. {
  306. $id = (int) $this->request->input("id", '');
  307. $result = $this->websiteServiceClient->delWebsiteRoleUser($id);
  308. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  309. }
  310. /**
  311. * 网站栏目映射
  312. * @return void
  313. */
  314. public function addWebsiteCategory()
  315. {
  316. $requireData = $this->request->all();
  317. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_arr_id' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_arr_id.required' => '网站导航ID不能为空']);
  318. if ($validator->fails()) {
  319. $errorMessage = $validator->errors()->first();
  320. return Result::error($errorMessage);
  321. }
  322. $result = $this->websiteServiceClient->addWebsiteCategory($requireData);
  323. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  324. }
  325. /**
  326. * 删除网站导航
  327. * @return void
  328. */
  329. public function delWebsiteCategory()
  330. {
  331. $requireData = $this->request->all();
  332. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_id' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_id.required' => '网站导航ID不能为空']);
  333. if ($validator->fails()) {
  334. $errorMessage = $validator->errors()->first();
  335. return Result::error($errorMessage);
  336. }
  337. $result = $this->websiteServiceClient->delWebsiteCategory($requireData);
  338. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  339. }
  340. /**
  341. * 获取网站导航
  342. * @return void
  343. */
  344. public function getAdminWebsiteCategory()
  345. {
  346. $requireData = $this->request->all();
  347. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
  348. if ($validator->fails()) {
  349. $errorMessage = $validator->errors()->first();
  350. return Result::error($errorMessage);
  351. }
  352. $result = $this->websiteServiceClient->getAdminWebsiteCategory($requireData);
  353. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  354. }
  355. /**
  356. * 更新网站导航
  357. * @return void
  358. */
  359. public function upWebsiteCategory()
  360. {
  361. $requireData = $this->request->all();
  362. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
  363. if ($validator->fails()) {
  364. $errorMessage = $validator->errors()->first();
  365. return Result::error($errorMessage);
  366. }
  367. $result = $this->websiteServiceClient->upWebsiteCategory($requireData);
  368. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  369. }
  370. /**
  371. * 获取网站与导航
  372. * @return array
  373. */
  374. public function getWebsiteCategoryList()
  375. {
  376. $requireData = $this->request->all();
  377. $validator = $this->validationFactory->make($requireData, ['page' => 'required', 'pageSize' => 'required'], ['page.required' => '当前页码数不能为空', 'pageSize.required' => '每页显示条数不能为空']);
  378. if ($validator->fails()) {
  379. $errorMessage = $validator->errors()->first();
  380. return Result::error($errorMessage);
  381. }
  382. $result = $this->websiteServiceClient->getWebsiteCategoryList($requireData);
  383. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  384. }
  385. /**
  386. * 删除网站下面的所有导航
  387. * @return void
  388. */
  389. public function delWebsiteAllCategory()
  390. {
  391. $requireData = $this->request->all();
  392. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
  393. if ($validator->fails()) {
  394. $errorMessage = $validator->errors()->first();
  395. return Result::error($errorMessage);
  396. }
  397. $result = $this->websiteServiceClient->delWebsiteAllCategory($requireData);
  398. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  399. }
  400. /**
  401. * 查看指定的导航
  402. * @return array
  403. */
  404. public function getWebsiteCategoryOnes()
  405. {
  406. $requireData = $this->request->all();
  407. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_id' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_id.required' => '网站导航ID不能为空']);
  408. if ($validator->fails()) {
  409. $errorMessage = $validator->errors()->first();
  410. return Result::error($errorMessage);
  411. }
  412. $result = $this->websiteServiceClient->getWebsiteCategoryOnes($requireData);
  413. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  414. }
  415. /**
  416. * 更新指定的某一个导航
  417. * @return array
  418. */
  419. public function upWebsiteCategoryones()
  420. {
  421. $requireData = $this->request->all();
  422. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required', 'category_id' => 'required', 'alias' => 'required', 'seo_title' => 'required', 'seo_keywords' => 'required', 'seo_description' => 'required'], ['website_id.required' => '网站ID不能为空', 'category_id.required' => '导航ID不能为空', 'alias.required' => '名称不能为空', 'seo_title.required' => 'seo标题不能为空', 'seo_keywords.required' => '关键词不能为空', 'seo_description.required' => '网站描述不能为空']);
  423. if ($validator->fails()) {
  424. $errorMessage = $validator->errors()->first();
  425. return Result::error($errorMessage);
  426. }
  427. $result = $this->websiteServiceClient->upWebsiteCategoryones($requireData);
  428. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  429. }
  430. /**
  431. * 站下的所有导航包含子导航
  432. * @return array
  433. */
  434. public function getWebsiteAllCategory()
  435. {
  436. $requireData = $this->request->all();
  437. $validator = $this->validationFactory->make($requireData, ['website_id' => 'required'], ['website_id.required' => '网站ID不能为空']);
  438. if ($validator->fails()) {
  439. $errorMessage = $validator->errors()->first();
  440. return Result::error($errorMessage);
  441. }
  442. $result = $this->websiteServiceClient->getWebsiteAllCategory($requireData);
  443. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  444. }
  445. /**
  446. * 管理后台首页统计
  447. * @return array
  448. */
  449. public function getAdminIndex()
  450. {
  451. // $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjMyLCJ1c2VyX25hbWUiOiIxIiwibW9iaWxlIjoiMTU4MDEyNDU3NTUiLCJlbWFpbCI6IjVAcXEuY29tIiwicm9uZ190b2tlbiI6IiIsImxldmVsX2lkIjoxLCJ0eXBlX2lkIjoxLCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82NzFiNDc3MDcwODI2OC4wOTk4ODA3NyIsImlhdCI6MTcyOTg0MTAwOCwibmJmIjoxNzI5ODQxMDA4LCJleHAiOjE3Mjk4NDQwMDh9.4X-Q-vwPxddX75q6CKtOXqWgtnFAikRwX308T0iDxYE";
  452. // $time = $this->JWT->getTokenDynamicCacheTime($token);
  453. // var_dump("有效时间:",$time);
  454. $typeId = intval(Context::get("TypeId"));
  455. var_dump("用户类型:", $typeId);
  456. switch ($typeId) {
  457. case 4:
  458. $dates = [];
  459. $startDate = (new DateTime())->modify('-29 day');
  460. // 从 29 天前开始(因为我们要 30 天,包括今天的前一天)
  461. for ($i = 0; $i < 30; $i++) {
  462. $dates[] = $startDate->format('Y-m-d');
  463. $startDate->modify('+1 day');
  464. // 每天递增一天
  465. }
  466. $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId]);
  467. $list = [];
  468. if ($result['data']) {
  469. $list = PublicData::arrayColumnAsKey($result['data'], 'date');
  470. var_dump($list);
  471. }
  472. $newResult = [];
  473. if ($dates) {
  474. foreach ($dates as $key => $val) {
  475. $newResult[$key]['date'] = $val;
  476. $newResult[$key]['total_count'] = $list[$val]['total_count'] ?? 0;
  477. }
  478. }
  479. //投诉举报列表
  480. $res['letterOfComplaintList'] = $newResult;
  481. return $result['code'] == 200 ? Result::success($res) : Result::error($result['message']);
  482. break;
  483. case 10000:
  484. $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId]);
  485. if ($result) {
  486. $dates = [];
  487. $startDate = (new DateTime())->modify('-29 day');
  488. // 从 29 天前开始(因为我们要 30 天,包括今天的前一天)
  489. for ($i = 0; $i < 30; $i++) {
  490. $dates[] = $startDate->format('Y-m-d');
  491. $startDate->modify('+1 day');
  492. // 每天递增一天
  493. }
  494. $list = [];
  495. if ($result['data']['monthArticle']) {
  496. $list = PublicData::arrayColumnAsKey($result['data']['monthArticle'], 'date');
  497. }
  498. $newResult = [];
  499. if ($dates) {
  500. foreach ($dates as $key => $val) {
  501. $newResult[$key]['date'] = $val;
  502. $newResult[$key]['total_count'] = $list[$val]['total_count'] ?? 0;
  503. }
  504. }
  505. //1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员
  506. $userType = ['1' => '个人会员', '2' => '政务会员', '3' => '企业会员', '4' => '调研员', '10000' => '管理员', '20000' => '游客'];
  507. if ($result['data']['userType']) {
  508. foreach ($result['data']['userType'] as $k => $v) {
  509. $result['data']['userType'][$k]['typeName'] = $userType[$v['type_id']];
  510. }
  511. }
  512. $result['data']['monthArticle'] = $newResult;
  513. return Result::success($result['data']);
  514. } else {
  515. return Result::error($result['message']);
  516. }
  517. return Result::success($result);
  518. break;
  519. }
  520. }
  521. /**
  522. * 获取模板皮肤分类
  523. * @return void
  524. */
  525. public function getTemplateClass()
  526. {
  527. $requireData = $this->request->all();
  528. $result = $this->websiteServiceClient->getTemplateClass($requireData);
  529. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  530. }
  531. /**
  532. * 添加模板分类
  533. * @return void
  534. */
  535. public function addTemplateClass()
  536. {
  537. $requireData = $this->request->all();
  538. $validator = $this->validationFactory->make($requireData, ['name' => 'required'], ['name.required' => '模板类型不能为空']);
  539. if ($validator->fails()) {
  540. $errorMessage = $validator->errors()->first();
  541. return Result::error($errorMessage);
  542. }
  543. $data = ['name' => $requireData['name'], 'sort' => $requireData['sort'] ?? 0];
  544. $result = $this->websiteServiceClient->addTemplateClass($data);
  545. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  546. }
  547. /**
  548. * 更新模板分类
  549. * @return array
  550. */
  551. public function upTemplateClass()
  552. {
  553. $requireData = $this->request->all();
  554. $validator = $this->validationFactory->make($requireData, ['name' => 'required', 'id' => 'required'], ['name.required' => '模板类型不能为空', 'name.id' => '模板类型ID不能为空']);
  555. if ($validator->fails()) {
  556. $errorMessage = $validator->errors()->first();
  557. return Result::error($errorMessage);
  558. }
  559. $data = ['id' => $requireData['id'], 'name' => $requireData['name'], 'sort' => $requireData['sort'] ?? 0];
  560. $result = $this->websiteServiceClient->upTemplateClass($data);
  561. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  562. }
  563. /**
  564. * 删除模板分类
  565. * @return array
  566. */
  567. public function delTemplateClass()
  568. {
  569. $requireData = $this->request->all();
  570. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['name.required' => '类型id不能为空']);
  571. if ($validator->fails()) {
  572. $errorMessage = $validator->errors()->first();
  573. return Result::error($errorMessage);
  574. }
  575. $data = ['id' => $requireData['id']];
  576. $result = $this->websiteServiceClient->delTemplateClass($data);
  577. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  578. }
  579. /**
  580. * 获取分类下的模板
  581. * @return array
  582. */
  583. public function getTemplate()
  584. {
  585. $requireData = $this->request->all();
  586. $validator = $this->validationFactory->make($requireData, [
  587. // 'template_class_id' => 'required',
  588. 'page' => 'required',
  589. 'pageSize' => 'required',
  590. ], [
  591. // 'template_class_id.required' => '类型template_class_id不能为空',
  592. 'page.required' => 'page不能为空',
  593. 'pageSize.required' => '每页显示条数不能为空',
  594. ]);
  595. if ($validator->fails()) {
  596. $errorMessage = $validator->errors()->first();
  597. return Result::error($errorMessage);
  598. }
  599. $data = ['template_class_id' => $requireData['template_class_id'], 'page' => $requireData['page'], 'pageSize' => $requireData['pageSize']];
  600. $result = $this->websiteServiceClient->getTemplate($data);
  601. var_dump("模板列表:", $result['data']['rows']);
  602. if ($result['data']['rows']) {
  603. foreach ($result['data']['rows'] as $key => $val) {
  604. $result['data']['rows'][$key]['template_img'] = json_decode($val['template_img'], true);
  605. }
  606. }
  607. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  608. }
  609. /**
  610. * 创建皮肤模板
  611. * @return array
  612. */
  613. public function addTemplate()
  614. {
  615. $requireData = $this->request->all();
  616. // var_dump("FCK:",$requireData);
  617. $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' => '模板图片不能为空']);
  618. if ($validator->fails()) {
  619. $errorMessage = $validator->errors()->first();
  620. return Result::error($errorMessage);
  621. }
  622. // var_dump($requireData);
  623. $data = ['template_name' => $requireData['template_name'], 'template_class_id' => $requireData['template_class_id'], 'template_img' => $requireData['template_img']];
  624. $result = $this->websiteServiceClient->addTemplate($data);
  625. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  626. }
  627. /**
  628. * 更新模板
  629. * @return array
  630. */
  631. public function upTemplate()
  632. {
  633. $requireData = $this->request->all();
  634. $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不能为空']);
  635. if ($validator->fails()) {
  636. $errorMessage = $validator->errors()->first();
  637. return Result::error($errorMessage);
  638. }
  639. $data = ['id' => $requireData['id'], 'template_name' => $requireData['template_name'], 'template_img' => $requireData['template_img'], 'template_class_id' => $requireData['template_class_id']];
  640. $result = $this->websiteServiceClient->upTemplate($data);
  641. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  642. }
  643. /**
  644. * 删除模板
  645. * @return array
  646. */
  647. public function delTemplate()
  648. {
  649. $requireData = $this->request->all();
  650. $validator = $this->validationFactory->make($requireData, ['id' => 'required'], ['name.required' => '模板id不能为空']);
  651. if ($validator->fails()) {
  652. $errorMessage = $validator->errors()->first();
  653. return Result::error($errorMessage);
  654. }
  655. $data = ['id' => $requireData['id']];
  656. $result = $this->websiteServiceClient->delTemplate($data);
  657. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  658. }
  659. /**
  660. * 搜索网站
  661. * @return array
  662. */
  663. public function websiteList()
  664. {
  665. $requireData = $this->request->all();
  666. $result = $this->websiteServiceClient->websiteList($requireData);
  667. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  668. }
  669. /**
  670. * 检测网站名称是否存在
  671. * @return array
  672. */
  673. public function checkWebsiteName()
  674. {
  675. $requireData = $this->request->all();
  676. $validator = $this->validationFactory->make($requireData, ['website_name' => 'required'], ['website_name.required' => '网站名称不能为空']);
  677. if ($validator->fails()) {
  678. $errorMessage = $validator->errors()->first();
  679. return Result::error($errorMessage);
  680. }
  681. $result = $this->websiteServiceClient->checkWebsiteName($requireData);
  682. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  683. }
  684. /**
  685. * 检测网站网址是否存在
  686. * @return array
  687. */
  688. public function checkWebsiteUrl()
  689. {
  690. $requireData = $this->request->all();
  691. $validator = $this->validationFactory->make($requireData, ['website_url' => 'required'], ['website_url.required' => '网站网址不能为空']);
  692. if ($validator->fails()) {
  693. $errorMessage = $validator->errors()->first();
  694. return Result::error($errorMessage);
  695. }
  696. $result = $this->websiteServiceClient->checkWebsiteUrl($requireData);
  697. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  698. }
  699. }