WebsiteController.php 94 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431
  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. use App\JsonRpc\UserServiceInterface;
  14. use PhpParser\Node\Stmt\Return_;
  15. /**
  16. * Class WebsiteController
  17. * @package App\Controller
  18. */
  19. //#[AutoController]
  20. class WebsiteController extends AbstractController
  21. {
  22. #[Inject]
  23. protected ValidatorFactoryInterface $validationFactory;
  24. /**
  25. * @var WebsiteServiceInterface
  26. */
  27. #[Inject]
  28. private $websiteServiceClient;
  29. /**
  30. * @var UserServiceInterface
  31. */
  32. #[Inject]
  33. private $userServiceClient;
  34. protected JWT $JWT;
  35. public function __construct(Jwt $JWT)
  36. {
  37. $this->JWT = $JWT;
  38. }
  39. /**
  40. * 创建站点
  41. * @return array
  42. */
  43. public function addWebsite()
  44. {
  45. $requireData = $this->request->all();
  46. $validator = $this->validationFactory->make(
  47. $requireData,
  48. [
  49. 'website_column_arr_id' => 'required',
  50. 'website_name' => 'required',
  51. 'website_url' => 'required',
  52. ],
  53. [
  54. 'website_column_id.required' => '上级网系id不能为空',
  55. 'website_name.required' => '站点名称不能为空',
  56. 'website_url.required' => '网站地址不能为空',
  57. ]
  58. );
  59. if ($validator->fails()) {
  60. $errorMessage = $validator->errors()->first();
  61. return Result::error($errorMessage);
  62. }
  63. $requireData['website_url'] = json_encode($requireData['website_url']);
  64. $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : 0;
  65. $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : [0];
  66. $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
  67. $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
  68. var_dump($requireData);
  69. $result = $this->websiteServiceClient->createWebsite($requireData);
  70. return $result ? Result::success($result['data']) : Result::error($result['message']);
  71. }
  72. /**
  73. * 获取站点列表
  74. * @return void
  75. */
  76. public function getWebsiteList()
  77. {
  78. $requireData = $this->request->all();
  79. $validator = $this->validationFactory->make(
  80. $requireData,
  81. [
  82. 'page' => 'required',
  83. 'pageSize' => 'required',
  84. ],
  85. [
  86. 'page.required' => '页码不能为空',
  87. 'pageSize.required' => '每页显示条数不能为空',
  88. ]
  89. );
  90. if ($validator->fails()) {
  91. $errorMessage = $validator->errors()->first();
  92. return Result::error($errorMessage);
  93. }
  94. $result = $this->websiteServiceClient->getWebsitetList($requireData);
  95. if ($result['data']) {
  96. foreach ($result['data']['rows'] as $k => $v) {
  97. $result['data']['rows'][$k]['city_arr_id'] = $v['city_arr_id'] ? json_decode($v['city_arr_id']) : '';
  98. $result['data']['rows'][$k]['website_url'] = $v['website_url'] ? json_decode($v['website_url']) : [];
  99. }
  100. }
  101. return $result ? Result::success($result['data']) : Result::error($result['message']);
  102. }
  103. /**
  104. * 更新站点
  105. * @return array
  106. */
  107. public function updateWebsite()
  108. {
  109. $requireData = $this->request->all();
  110. $validator = $this->validationFactory->make(
  111. $requireData,
  112. [
  113. 'id' => 'required',
  114. 'website_column_arr_id' => 'required',
  115. 'website_name' => 'required',
  116. 'website_url' => 'required',
  117. ],
  118. [
  119. 'id.required' => 'id不能为空',
  120. 'website_column_id.required' => '网系id不能为空',
  121. 'website_name.required' => '站点名称不能为空',
  122. 'website_url.required' => '网站地址不能为空',
  123. ]
  124. );
  125. if ($validator->fails()) {
  126. $errorMessage = $validator->errors()->first();
  127. return Result::error($errorMessage);
  128. }
  129. $requireData['website_url'] = json_encode($requireData['website_url']);
  130. $requireData['city_id'] = isset($requireData['city_arr_id']) ? end($requireData['city_arr_id']) : 0;
  131. $requireData['city_arr_id'] = isset($requireData['city_arr_id']) ? json_encode($requireData['city_arr_id']) : [0];
  132. $requireData['website_column_id'] = isset($requireData['website_column_arr_id']) ? end($requireData['website_column_arr_id']) : '';
  133. $requireData['website_column_arr_id'] = isset($requireData['website_column_arr_id']) ? json_encode($requireData['website_column_arr_id']) : '';
  134. $result = $this->websiteServiceClient->updateWebsite((int)$requireData['id'], $requireData);
  135. return $result ? Result::success($result['data']) : Result::error($result['message']);
  136. }
  137. /**
  138. * 删除站点
  139. * @return array
  140. */
  141. public function delWebsite()
  142. {
  143. $requireData = $this->request->all();
  144. $validator = $this->validationFactory->make(
  145. $requireData,
  146. [
  147. 'id' => 'required',
  148. ],
  149. [
  150. 'id.required' => 'id不能为空',
  151. ]
  152. );
  153. if ($validator->fails()) {
  154. $errorMessage = $validator->errors()->first();
  155. return Result::error($errorMessage);
  156. }
  157. $id = (int)$requireData['id'];
  158. $result = $this->websiteServiceClient->delWebsite($id);
  159. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  160. }
  161. /**
  162. * 获取站点信息
  163. * @return array
  164. */
  165. public function getWebsiteInfo()
  166. {
  167. $requireData = $this->request->all();
  168. $validator = $this->validationFactory->make(
  169. $requireData,
  170. [
  171. 'id' => 'required',
  172. ],
  173. [
  174. 'id.required' => 'id不能为空',
  175. ]
  176. );
  177. if ($validator->fails()) {
  178. $errorMessage = $validator->errors()->first();
  179. return Result::error($errorMessage);
  180. }
  181. $id = (int)$requireData['id'];
  182. $result = $this->websiteServiceClient->getWebsiteInfo($id);
  183. if ($result['code'] == 200) {
  184. $result['data']['website_url'] = isset($result['data']['website_url']) && $result['data']['website_url'] ? json_decode($result['data']['website_url']) : '';
  185. $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']) : '';
  186. $result['data']['city_arr_id'] = isset($result['data']['city_arr_id']) && $result['data']['city_arr_id'] ? json_decode($result['data']['city_arr_id']) : '';
  187. return Result::success($result['data']);
  188. } else {
  189. return Result::error($result['message']);
  190. }
  191. }
  192. /**
  193. * 添加的时候 选择上级网系
  194. * @return array
  195. */
  196. public function getWebsiteColumn()
  197. {
  198. $result = $this->websiteServiceClient->getWebsiteColumn([]);
  199. $rep = PublicData::buildMenuTree($result['data']);
  200. return $rep ? Result::success($rep) : Result::error("查询失败");
  201. }
  202. /**
  203. * 获取网系列表
  204. * @return void
  205. */
  206. public function getWebsiteColumnList()
  207. {
  208. $requireData = $this->request->all();
  209. $validator = $this->validationFactory->make(
  210. $requireData,
  211. [
  212. 'page' => 'required',
  213. 'pageSize' => 'required',
  214. ],
  215. [
  216. 'page.required' => '页码不能为空',
  217. 'pageSize.required' => '每页显示条数不能为空',
  218. ]
  219. );
  220. if ($validator->fails()) {
  221. $errorMessage = $validator->errors()->first();
  222. return Result::error($errorMessage);
  223. }
  224. $result = $this->websiteServiceClient->getWebsiteColumnList($requireData);
  225. if ($result['data']) {
  226. foreach ($result['data']['rows'] as $k => $v) {
  227. $result['data']['rows'][$k]['column_arr_id'] = $v['column_arr_id'] ? json_decode($v['column_arr_id']) : [0];
  228. }
  229. }
  230. return $result ? Result::success($result['data']) : Result::error($result['message']);
  231. }
  232. /**
  233. * 创建网系
  234. * @return array
  235. */
  236. public function addWebsiteColumn()
  237. {
  238. $requireData = $this->request->all();
  239. $validator = $this->validationFactory->make(
  240. $requireData,
  241. [
  242. 'column_name' => 'required',
  243. ],
  244. [
  245. 'column_name.required' => '网系名称不能为空',
  246. ]
  247. );
  248. if ($validator->fails()) {
  249. $errorMessage = $validator->errors()->first();
  250. return Result::error($errorMessage);
  251. }
  252. $requireData['pid'] = isset($requireData['column_arr_id']) ? end($requireData['column_arr_id']) : '';
  253. $requireData['column_arr_id'] = isset($requireData['column_arr_id']) ? json_encode($requireData['column_arr_id']) : '';
  254. $result = $this->websiteServiceClient->createWebsiteColumn($requireData);
  255. return $result ? Result::success($result['data']) : Result::error($result['message']);
  256. }
  257. /**
  258. * 更新网系
  259. * @return array
  260. */
  261. public function updateWebsiteColumn()
  262. {
  263. $requireData = $this->request->all();
  264. $validator = $this->validationFactory->make(
  265. $requireData,
  266. [
  267. 'column_name' => 'required',
  268. ],
  269. [
  270. 'column_name.required' => '栏目名称不能为空',
  271. ]
  272. );
  273. if ($validator->fails()) {
  274. $errorMessage = $validator->errors()->first();
  275. return Result::error($errorMessage);
  276. }
  277. $requireData['pid'] = isset($requireData['column_arr_id']) ? end($requireData['column_arr_id']) : '';
  278. $requireData['column_arr_id'] = isset($requireData['column_arr_id']) ? json_encode($requireData['column_arr_id']) : '';
  279. $result = $this->websiteServiceClient->updateWebsiteColumn($requireData['id'], $requireData);
  280. return $result ? Result::success($result['data']) : Result::error($result['message']);
  281. }
  282. /**
  283. * 删除网系
  284. * @return array
  285. */
  286. public function delWebsiteColumn()
  287. {
  288. $requireData = $this->request->all();
  289. $validator = $this->validationFactory->make(
  290. $requireData,
  291. [
  292. 'id' => 'required'
  293. ],
  294. [
  295. 'id.required' => '网系ID不能为空'
  296. ]
  297. );
  298. if ($validator->fails()) {
  299. $errorMessage = $validator->errors()->first();
  300. return Result::error($errorMessage);
  301. }
  302. $result = $this->websiteServiceClient->delWebsiteColumn(intval($requireData['id']));
  303. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  304. }
  305. /**
  306. * 获取站点角色列表
  307. * @return void
  308. */
  309. public function getWebsiteRoleList()
  310. {
  311. $requireData = $this->request->all();
  312. $validator = $this->validationFactory->make(
  313. $requireData,
  314. [
  315. 'id' => 'required'
  316. ],
  317. [
  318. 'id.required' => '站点ID不能为空'
  319. ]
  320. );
  321. if ($validator->fails()) {
  322. $errorMessage = $validator->errors()->first();
  323. return Result::error($errorMessage);
  324. }
  325. $keyword = $this->request->input("keyword", '');
  326. $page = (int)$this->request->input("page", 1);
  327. $pageSize = (int)$this->request->input("pageSize", 10);
  328. $websiteId = (int)$this->request->input("id", '');
  329. $result = $this->websiteServiceClient->getWebsiteRoleList($keyword, $page, $pageSize, $websiteId);
  330. return $result ? Result::success($result['data']) : Result::error($result['message']);
  331. }
  332. /**
  333. * 创建站点角色
  334. * @return array
  335. */
  336. public function createWebsiteRole()
  337. {
  338. $requireData = $this->request->all();
  339. $validator = $this->validationFactory->make(
  340. $requireData,
  341. [
  342. 'type' => 'required',
  343. 'role_id' => 'required',
  344. 'website_id' => 'required'
  345. ],
  346. [
  347. 'type.required' => '类型不能为空',
  348. 'type_id.required' => 'ID不能为空',
  349. 'website_id.required' => '站点ID不能为空',
  350. ]
  351. );
  352. if ($validator->fails()) {
  353. $errorMessage = $validator->errors()->first();
  354. return Result::error($errorMessage);
  355. }
  356. $requireData['admin_user_id'] = Context::get("UserId");
  357. $result = $this->websiteServiceClient->createWebsiteRole($requireData);
  358. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  359. }
  360. /**
  361. * 删除站点角色
  362. * @return array
  363. */
  364. public function delWebsiteRole()
  365. {
  366. $id = (int)$this->request->input("id", '');
  367. $result = $this->websiteServiceClient->delWebsiteRole($id);
  368. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  369. }
  370. /**
  371. * 获取站点角色用户列表
  372. * @return void
  373. */
  374. public function getWebsiteRoleUserList()
  375. {
  376. $requireData = $this->request->all();
  377. $validator = $this->validationFactory->make(
  378. $requireData,
  379. [
  380. 'website_id' => 'required',
  381. 'role_id' => 'required',
  382. ],
  383. [
  384. 'website_id.required' => '站点ID不能为空',
  385. 'role_id.required' => '角色ID不能为空',
  386. ]
  387. );
  388. if ($validator->fails()) {
  389. $errorMessage = $validator->errors()->first();
  390. return Result::error($errorMessage);
  391. }
  392. $keyword = $this->request->input("keyword", '');
  393. $page = (int)$this->request->input("page", 1);
  394. $pageSize = (int)$this->request->input("pageSize", 10);
  395. $roleId = (int)$this->request->input("role_id", '');
  396. $websiteId = (int)$this->request->input("website_id", '');
  397. $result = $this->websiteServiceClient->getWebsiteRoleUserList($keyword, $page, $pageSize, $websiteId, $roleId);
  398. return $result ? Result::success($result['data']) : Result::error($result['message']);
  399. }
  400. /**
  401. * 创建站点角色用户
  402. * @return array
  403. */
  404. public function createWebsiteRoleUser()
  405. {
  406. $requireData = $this->request->all();
  407. $validator = $this->validationFactory->make(
  408. $requireData,
  409. [
  410. 'type' => 'required',
  411. 'role_id' => 'required',
  412. 'website_id' => 'required',
  413. 'user_id' => 'required',
  414. ],
  415. [
  416. 'type.required' => '类型不能为空',
  417. 'website_id.required' => '站点ID不能为空',
  418. 'role_id.required' => '角色ID不能为空',
  419. 'user_id.required' => '用户ID不能为空',
  420. ]
  421. );
  422. if ($validator->fails()) {
  423. $errorMessage = $validator->errors()->first();
  424. return Result::error($errorMessage);
  425. }
  426. $requireData['admin_user_id'] = Context::get("UserId");
  427. $requireData['role_id'] = (int)$requireData['role_id'];
  428. $requireData['type'] = (int)$requireData['type'];
  429. $requireData['website_id'] = (int)$requireData['website_id'];
  430. $requireData['user_id'] = (int)$requireData['user_id'];
  431. $result = $this->websiteServiceClient->createWebsiteRoleUser($requireData);
  432. return $result['code'] != 0 ? Result::success($result['data']) : Result::error($result['message']);
  433. }
  434. /**
  435. * 删除站点角色用户
  436. * @return array
  437. */
  438. public function delWebsiteRoleUser()
  439. {
  440. $id = (int)$this->request->input("id", '');
  441. $result = $this->websiteServiceClient->delWebsiteRoleUser($id);
  442. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  443. }
  444. /**
  445. * 网站栏目映射
  446. * @return void
  447. */
  448. public function addWebsiteCategory()
  449. {
  450. $requireData = $this->request->all();
  451. $validator = $this->validationFactory->make(
  452. $requireData,
  453. [
  454. 'website_id' => 'required',
  455. 'category_arr_id' => 'required',
  456. ],
  457. [
  458. 'website_id.required' => '网站ID不能为空',
  459. 'category_arr_id.required' => '网站导航ID不能为空',
  460. ]
  461. );
  462. if ($validator->fails()) {
  463. $errorMessage = $validator->errors()->first();
  464. return Result::error($errorMessage);
  465. }
  466. $result = $this->websiteServiceClient->addWebsiteCategory($requireData);
  467. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  468. }
  469. /**
  470. * 删除网站导航
  471. * @return void
  472. */
  473. public function delWebsiteCategory()
  474. {
  475. $requireData = $this->request->all();
  476. $validator = $this->validationFactory->make(
  477. $requireData,
  478. [
  479. 'website_id' => 'required',
  480. 'category_id' => 'required',
  481. ],
  482. [
  483. 'website_id.required' => '网站ID不能为空',
  484. 'category_id.required' => '网站导航ID不能为空',
  485. ]
  486. );
  487. if ($validator->fails()) {
  488. $errorMessage = $validator->errors()->first();
  489. return Result::error($errorMessage);
  490. }
  491. $result = $this->websiteServiceClient->delWebsiteCategory($requireData);
  492. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  493. }
  494. /**
  495. * 获取网站导航
  496. * @return void
  497. */
  498. public function getAdminWebsiteCategory()
  499. {
  500. $requireData = $this->request->all();
  501. $validator = $this->validationFactory->make(
  502. $requireData,
  503. [
  504. 'website_id' => 'required',
  505. ],
  506. [
  507. 'website_id.required' => '网站ID不能为空',
  508. ]
  509. );
  510. if ($validator->fails()) {
  511. $errorMessage = $validator->errors()->first();
  512. return Result::error($errorMessage);
  513. }
  514. $result = $this->websiteServiceClient->getAdminWebsiteCategory($requireData);
  515. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  516. }
  517. /**
  518. * 更新网站导航
  519. * @return void
  520. */
  521. public function upWebsiteCategory()
  522. {
  523. $requireData = $this->request->all();
  524. $validator = $this->validationFactory->make(
  525. $requireData,
  526. [
  527. 'website_id' => 'required',
  528. 'category_arr_id' => 'required',
  529. ],
  530. [
  531. 'website_id.required' => '网站ID不能为空',
  532. 'category_arr_id.required' => '栏目id不能为空',
  533. ]
  534. );
  535. if ($validator->fails()) {
  536. $errorMessage = $validator->errors()->first();
  537. return Result::error($errorMessage);
  538. }
  539. $result = $this->websiteServiceClient->upWebsiteCategory($requireData);
  540. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  541. }
  542. /**
  543. * 获取网站与导航
  544. * @return array
  545. */
  546. public function getWebsiteCategoryList()
  547. {
  548. $requireData = $this->request->all();
  549. $validator = $this->validationFactory->make(
  550. $requireData,
  551. [
  552. 'page' => 'required',
  553. 'pageSize' => 'required',
  554. ],
  555. [
  556. 'page.required' => '当前页码数不能为空',
  557. 'pageSize.required' => '每页显示条数不能为空',
  558. ]
  559. );
  560. if ($validator->fails()) {
  561. $errorMessage = $validator->errors()->first();
  562. return Result::error($errorMessage);
  563. }
  564. $result = $this->websiteServiceClient->getWebsiteCategoryList($requireData);
  565. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  566. }
  567. /**
  568. * 删除网站下面的所有导航
  569. * @return void
  570. */
  571. public function delWebsiteAllCategory()
  572. {
  573. $requireData = $this->request->all();
  574. $validator = $this->validationFactory->make(
  575. $requireData,
  576. [
  577. 'website_id' => 'required'
  578. ],
  579. [
  580. 'website_id.required' => '网站ID不能为空',
  581. ]
  582. );
  583. if ($validator->fails()) {
  584. $errorMessage = $validator->errors()->first();
  585. return Result::error($errorMessage);
  586. }
  587. $result = $this->websiteServiceClient->delWebsiteAllCategory($requireData);
  588. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  589. }
  590. /**
  591. * 查看指定的导航
  592. * @return array
  593. */
  594. public function getWebsiteCategoryOnes()
  595. {
  596. $requireData = $this->request->all();
  597. $validator = $this->validationFactory->make(
  598. $requireData,
  599. [
  600. 'website_id' => 'required',
  601. 'category_id' => 'required',
  602. ],
  603. [
  604. 'website_id.required' => '网站ID不能为空',
  605. 'category_id.required' => '网站导航ID不能为空',
  606. ]
  607. );
  608. if ($validator->fails()) {
  609. $errorMessage = $validator->errors()->first();
  610. return Result::error($errorMessage);
  611. }
  612. $result = $this->websiteServiceClient->getWebsiteCategoryOnes($requireData);
  613. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  614. }
  615. /**
  616. * 更新指定的某一个导航
  617. * @return array
  618. */
  619. public function upWebsiteCategoryones()
  620. {
  621. $requireData = $this->request->all();
  622. $validator = $this->validationFactory->make(
  623. $requireData,
  624. [
  625. 'website_id' => 'required',
  626. 'category_id' => 'required',
  627. 'alias' => 'required',
  628. 'seo_title' => 'required',
  629. 'seo_keywords' => 'required',
  630. 'seo_description' => 'required',
  631. ],
  632. [
  633. 'website_id.required' => '网站ID不能为空',
  634. 'category_id.required' => '导航ID不能为空',
  635. 'alias.required' => '名称不能为空',
  636. 'seo_title.required' => 'seo标题不能为空',
  637. 'seo_keywords.required' => '关键词不能为空',
  638. 'seo_description.required' => '网站描述不能为空',
  639. ]
  640. );
  641. if ($validator->fails()) {
  642. $errorMessage = $validator->errors()->first();
  643. return Result::error($errorMessage);
  644. }
  645. $result = $this->websiteServiceClient->upWebsiteCategoryones($requireData);
  646. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  647. }
  648. /**
  649. * 站下的所有导航包含子导航
  650. * @return array
  651. */
  652. public function getWebsiteAllCategory()
  653. {
  654. $requireData = $this->request->all();
  655. $validator = $this->validationFactory->make(
  656. $requireData,
  657. [
  658. 'website_id' => 'required'
  659. ],
  660. [
  661. 'website_id.required' => '网站ID不能为空',
  662. ]
  663. );
  664. if ($validator->fails()) {
  665. $errorMessage = $validator->errors()->first();
  666. return Result::error($errorMessage);
  667. }
  668. $result = $this->websiteServiceClient->getWebsiteAllCategory($requireData);
  669. if ($result['code'] == 200) {
  670. return Result::success(PublicData::buildCategoryTree($result['data']));
  671. } else {
  672. return Result::error($result['message']);
  673. }
  674. }
  675. private function processMonthlyData(array $data, string $dateKey = 'date', string $typeKey = 'type_id')
  676. {
  677. $dates = [];
  678. $startDate = (new DateTime())->modify('-29 day');
  679. for ($i = 0; $i < 30; $i++) {
  680. $dates[] = $startDate->format('Y-m-d');
  681. $startDate->modify('+1 day');
  682. }
  683. $list = PublicData::arrayColumnAsKey($data, $dateKey);
  684. $result = [];
  685. foreach ([1, 2, 3, 4, 10000] as $type) {
  686. $result[$type] = [];
  687. foreach ($dates as $key => $val) {
  688. $default = ['date' => $val, 'count' => 0];
  689. if (isset($list[$val]) && $list[$val][$typeKey] == $type) {
  690. $result[$type][$key] = ['date' => $val, 'count' => $list[$val]['count'] ?? 0];
  691. } else {
  692. $result[$type][$key] = $default;
  693. }
  694. }
  695. }
  696. return array_map(function ($typeId) use ($result) {
  697. return [
  698. 'usertype' => $typeId,
  699. 'data' => $result[$typeId]
  700. ];
  701. }, [10000, 1, 2, 3, 4]);
  702. }
  703. /**
  704. * 管理后台首页统计
  705. * @return array
  706. */
  707. public function getAdminIndex()
  708. {
  709. // $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJwaHBlcjY2Ni9qd3QiLCJ1aWQiOjMyLCJ1c2VyX25hbWUiOiIxIiwibW9iaWxlIjoiMTU4MDEyNDU3NTUiLCJlbWFpbCI6IjVAcXEuY29tIiwicm9uZ190b2tlbiI6IiIsImxldmVsX2lkIjoxLCJ0eXBlX2lkIjoxLCJqd3Rfc2NlbmUiOiJkZWZhdWx0IiwianRpIjoiZGVmYXVsdF82NzFiNDc3MDcwODI2OC4wOTk4ODA3NyIsImlhdCI6MTcyOTg0MTAwOCwibmJmIjoxNzI5ODQxMDA4LCJleHAiOjE3Mjk4NDQwMDh9.4X-Q-vwPxddX75q6CKtOXqWgtnFAikRwX308T0iDxYE";
  710. // $time = $this->JWT->getTokenDynamicCacheTime($token);
  711. // var_dump("有效时间:",$time);
  712. $typeId = intval(Context::get("TypeId"));
  713. var_dump("用户类型:", $typeId);
  714. switch ($typeId) {
  715. case 1:
  716. case 2:
  717. case 3:
  718. $user_id = Context::get("UserId");
  719. $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId, 'user_id' => $user_id]);
  720. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  721. case 4:
  722. $dates = [];
  723. $user_id = Context::get("UserId");
  724. $startDate = (new DateTime())->modify('-29 day'); // 从 29 天前开始(因为我们要 30 天,包括今天的前一天)
  725. for ($i = 0; $i < 30; $i++) {
  726. $dates[] = $startDate->format('Y-m-d');
  727. $startDate->modify('+1 day'); // 每天递增一天
  728. }
  729. $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId, 'user_id' => $user_id]);
  730. $runturn = $result['data'];
  731. $list = [];
  732. if ($result['data']['letterOfComplaintList']) {
  733. $list = PublicData::arrayColumnAsKey($result['data']['letterOfComplaintList'], 'date');
  734. }
  735. $newResult = [];
  736. if ($dates) {
  737. foreach ($dates as $key => $val) {
  738. $newResult[$key]['date'] = $val;
  739. $newResult[$key]['total_count'] = $list[$val]['total_count'] ?? 0;
  740. }
  741. }
  742. //投诉举报列表
  743. $res['letterOfComplaintList'] = $newResult;
  744. $res = array_merge($runturn, $res);
  745. return $result['code'] == 200 ? Result::success($res) : Result::error($result['message']);
  746. case 10000:
  747. $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId]);
  748. if (!$result || $result['code'] != 200) {
  749. return Result::error($result['message'] ?? '获取数据失败');
  750. }
  751. $data = $result['data'];
  752. $userTypeMapping = [
  753. 1 => '个人会员',
  754. 2 => '政务会员',
  755. 3 => '企业会员',
  756. 4 => '调研员',
  757. 10000 => '管理员',
  758. 20000 => '游客',
  759. ];
  760. // 处理各个统计项
  761. $processed = [
  762. 'monthArticle' => $this->processMonthlyData($data['monthArticle']),
  763. 'monthGood' => $this->processMonthlyData($data['monthGood']),
  764. 'monthBook' => $this->processMonthlyData($data['monthBook']),
  765. 'monthJobHunting' => $this->processMonthlyData($data['monthJobHunting']),
  766. 'monthJobRecruiting' => $this->processMonthlyData($data['monthJobRecruiting']),
  767. ];
  768. // 用户类型映射
  769. if (!empty($data['userType'])) {
  770. foreach ($data['userType'] as &$item) {
  771. $item['typeName'] = $userTypeMapping[$item['type_id']] ?? '未知';
  772. }
  773. }
  774. // 合并结果
  775. $finalData = array_merge($data, $processed);
  776. return Result::success($finalData);
  777. // $result = $this->websiteServiceClient->getAdminIndex(['type_id' => $typeId]);
  778. // if ($result) {
  779. // $dates = [];
  780. // $startDate = (new DateTime())->modify('-29 day'); // 从 29 天前开始(因为我们要 30 天,包括今天的前一天)
  781. // for ($i = 0; $i < 30; $i++) {
  782. // $dates[] = $startDate->format('Y-m-d');
  783. // $startDate->modify('+1 day'); // 每天递增一天
  784. // }
  785. // $list = [];
  786. // if ($result['data']['monthArticle']) {
  787. // $list = PublicData::arrayColumnAsKey($result['data']['monthArticle'], 'date');
  788. // }
  789. // if ($result['data']['monthGood']) {
  790. // $listGood = PublicData::arrayColumnAsKey($result['data']['monthGood'], 'date');
  791. // }
  792. // if ($result['data']['monthBook']) {
  793. // $listBook = PublicData::arrayColumnAsKey($result['data']['monthBook'], 'date');
  794. // }
  795. // if ($result['data']['monthJobHunting']) {
  796. // $listJobHunting = PublicData::arrayColumnAsKey($result['data']['monthJobHunting'], 'date');
  797. // }
  798. // if ($result['data']['monthJobRecruiting']) {
  799. // $listJobRecruiting = PublicData::arrayColumnAsKey($result['data']['monthJobRecruiting'], 'date');
  800. // }
  801. // $newResult[1] = [];
  802. // $newResult[2] = [];
  803. // $newResult[3] = [];
  804. // $newResult[4] = [];
  805. // $newResult[10000] = [];
  806. // $newResultGood[1] = [];
  807. // $newResultGood[2] = [];
  808. // $newResultGood[3] = [];
  809. // $newResultGood[4] = [];
  810. // $newResultGood[10000] = [];
  811. // $newResultBook[1] = [];
  812. // $newResultBook[2] = [];
  813. // $newResultBook[3] = [];
  814. // $newResultBook[4] = [];
  815. // $newResultBook[10000] = [];
  816. // $newResultJobHunting[1] = [];
  817. // $newResultJobHunting[2] = [];
  818. // $newResultJobHunting[3] = [];
  819. // $newResultJobHunting[4] = [];
  820. // $newResultJobHunting[10000] = [];
  821. // $newResultJobRecruiting[1] = [];
  822. // $newResultJobRecruiting[2] = [];
  823. // $newResultJobRecruiting[3] = [];
  824. // $newResultJobRecruiting[4] = [];
  825. // $newResultJobRecruiting[10000] = [];
  826. // if ($dates) {
  827. // foreach ($dates as $key => $val) {
  828. // // 初始化默认值
  829. // $defaultData = [
  830. // 'date' => $val,
  831. // 'count' => 0
  832. // ];
  833. // // 检查 $list[$val] 是否存在且 type_id 为 1
  834. // if (isset($list[$val]) && $list[$val]['type_id'] == 1) {
  835. // $newResult[1][$key] = [
  836. // 'date' => $val,
  837. // 'count' => $list[$val]['count'] ?? 0
  838. // ];
  839. // } else {
  840. // // 若不存在,使用默认值
  841. // $newResult[1][$key] = $defaultData;
  842. // }
  843. // if (isset($list[$val]) && $list[$val]['type_id'] == 10000) {
  844. // $newResult[10000][$key] = [
  845. // 'date' => $val,
  846. // 'count' => $list[$val]['count'] ?? 0
  847. // ];
  848. // } else {
  849. // // 若不存在,使用默认值
  850. // $newResult[10000][$key] = $defaultData;
  851. // }
  852. // if (isset($list[$val]) && $list[$val]['type_id'] == 2) {
  853. // $newResult[2][$key] = [
  854. // 'date' => $val,
  855. // 'count' => $list[$val]['count'] ?? 0
  856. // ];
  857. // } else {
  858. // // 若不存在,使用默认值
  859. // $newResult[2][$key] = $defaultData;
  860. // }
  861. // if (isset($list[$val]) && $list[$val]['type_id'] == 3) {
  862. // $newResult[3][$key] = [
  863. // 'date' => $val,
  864. // 'count' => $list[$val]['count'] ?? 0
  865. // ];
  866. // } else {
  867. // // 若不存在,使用默认值
  868. // $newResult[3][$key] = $defaultData;
  869. // }
  870. // if (isset($list[$val]) && $list[$val]['type_id'] == 4) {
  871. // $newResult[4][$key] = [
  872. // 'date' => $val,
  873. // 'count' => $list[$val]['count'] ?? 0
  874. // ];
  875. // } else {
  876. // // 若不存在,使用默认值
  877. // $newResult[4][$key] = $defaultData;
  878. // }
  879. // //good-----------------------------------------------------------------
  880. // if (isset($listGood[$val]) && $listGood[$val]['type_id'] == 1) {
  881. // $newResultGood[1][$key] = [
  882. // 'date' => $val,
  883. // 'count' => $listGood[$val]['count'] ?? 0
  884. // ];
  885. // } else {
  886. // // 若不存在,使用默认值
  887. // $newResultGood[1][$key] = $defaultData;
  888. // }
  889. // if (isset($listGood[$val]) && $listGood[$val]['type_id'] == 10000) {
  890. // $newResultGood[10000][$key] = [
  891. // 'date' => $val,
  892. // 'count' => $listGood[$val]['count'] ?? 0
  893. // ];
  894. // } else {
  895. // // 若不存在,使用默认值
  896. // $newResultGood[10000][$key] = $defaultData;
  897. // }
  898. // if (isset($listGood[$val]) && $listGood[$val]['type_id'] == 2) {
  899. // $newResultGood[2][$key] = [
  900. // 'date' => $val,
  901. // 'count' => $listGood[$val]['count'] ?? 0
  902. // ];
  903. // } else {
  904. // // 若不存在,使用默认值
  905. // $newResultGood[2][$key] = $defaultData;
  906. // }
  907. // if (isset($listGood[$val]) && $listGood[$val]['type_id'] == 3) {
  908. // $newResultGood[3][$key] = [
  909. // 'date' => $val,
  910. // 'count' => $listGood[$val]['count'] ?? 0
  911. // ];
  912. // } else {
  913. // // 若不存在,使用默认值
  914. // $newResultGood[3][$key] = $defaultData;
  915. // }
  916. // if (isset($listGood[$val]) && $listGood[$val]['type_id'] == 4) {
  917. // $newResultGood[4][$key] = [
  918. // 'date' => $val,
  919. // 'count' => $listGood[$val]['count'] ?? 0
  920. // ];
  921. // } else {
  922. // // 若不存在,使用默认值
  923. // $newResultGood[4][$key] = $defaultData;
  924. // }
  925. // //book-----------------------------------------------------------------
  926. // if (isset($listBook[$val]) && $listBook[$val]['type_id'] == 1) {
  927. // $newResultBook[1][$key] = [
  928. // 'date' => $val,
  929. // 'count' => $listBook[$val]['count'] ?? 0
  930. // ];
  931. // } else {
  932. // // 若不存在,使用默认值
  933. // $newResultBook[1][$key] = $defaultData;
  934. // }
  935. // if (isset($listBook[$val]) && $listBook[$val]['type_id'] == 10000) {
  936. // $newResultBook[10000][$key] = [
  937. // 'date' => $val,
  938. // 'count' => $listBook[$val]['count'] ?? 0
  939. // ];
  940. // } else {
  941. // // 若不存在,使用默认值
  942. // $newResultBook[10000][$key] = $defaultData;
  943. // }
  944. // if (isset($listBook[$val]) && $listBook[$val]['type_id'] == 2) {
  945. // $newResultBook[2][$key] = [
  946. // 'date' => $val,
  947. // 'count' => $listBook[$val]['count'] ?? 0
  948. // ];
  949. // } else {
  950. // // 若不存在,使用默认值
  951. // $newResultBook[2][$key] = $defaultData;
  952. // }
  953. // if (isset($listBook[$val]) && $listBook[$val]['type_id'] == 3) {
  954. // $newResultBook[3][$key] = [
  955. // 'date' => $val,
  956. // 'count' => $listBook[$val]['count'] ?? 0
  957. // ];
  958. // } else {
  959. // // 若不存在,使用默认值
  960. // $newResultBook[3][$key] = $defaultData;
  961. // }
  962. // if (isset($listBook[$val]) && $listBook[$val]['type_id'] == 4) {
  963. // $newResultBook[4][$key] = [
  964. // 'date' => $val,
  965. // 'count' => $listBook[$val]['count'] ?? 0
  966. // ];
  967. // } else {
  968. // // 若不存在,使用默认值
  969. // $newResultBook[4][$key] = $defaultData;
  970. // }
  971. // //JobHunting-----------------------------------------------------------------
  972. // if (isset($listJobHunting[$val]) && $listJobHunting[$val]['type_id'] == 1) {
  973. // $newResultJobHunting[1][$key] = [
  974. // 'date' => $val,
  975. // 'count' => $listJobHunting[$val]['count'] ?? 0
  976. // ];
  977. // } else {
  978. // // 若不存在,使用默认值
  979. // $newResultJobHunting[1][$key] = $defaultData;
  980. // }
  981. // if (isset($listJobHunting[$val]) && $listJobHunting[$val]['type_id'] == 10000) {
  982. // $newResultJobHunting[10000][$key] = [
  983. // 'date' => $val,
  984. // 'count' => $listJobHunting[$val]['count'] ?? 0
  985. // ];
  986. // } else {
  987. // // 若不存在,使用默认值
  988. // $newResultJobHunting[10000][$key] = $defaultData;
  989. // }
  990. // if (isset($listJobHunting[$val]) && $listJobHunting[$val]['type_id'] == 2) {
  991. // $newResultJobHunting[2][$key] = [
  992. // 'date' => $val,
  993. // 'count' => $listJobHunting[$val]['count'] ?? 0
  994. // ];
  995. // } else {
  996. // // 若不存在,使用默认值
  997. // $newResultJobHunting[2][$key] = $defaultData;
  998. // }
  999. // if (isset($listJobHunting[$val]) && $listJobHunting[$val]['type_id'] == 3) {
  1000. // $newResultJobHunting[3][$key] = [
  1001. // 'date' => $val,
  1002. // 'count' => $listJobHunting[$val]['count'] ?? 0
  1003. // ];
  1004. // } else {
  1005. // // 若不存在,使用默认值
  1006. // $newResultJobHunting[3][$key] = $defaultData;
  1007. // }
  1008. // if (isset($listJobHunting[$val]) && $listJobHunting[$val]['type_id'] == 4) {
  1009. // $newResultJobHunting[4][$key] = [
  1010. // 'date' => $val,
  1011. // 'count' => $listJobHunting[$val]['count'] ?? 0
  1012. // ];
  1013. // } else {
  1014. // // 若不存在,使用默认值
  1015. // $newResultJobHunting[4][$key] = $defaultData;
  1016. // }
  1017. // //JobRecruiting-----------------------------------------------------------------
  1018. // if (isset($listJobRecruiting[$val]) && $listJobRecruiting[$val]['type_id'] == 1) {
  1019. // $newResultJobRecruiting[1][$key] = [
  1020. // 'date' => $val,
  1021. // 'count' => $listJobRecruiting[$val]['count'] ?? 0
  1022. // ];
  1023. // } else {
  1024. // // 若不存在,使用默认值
  1025. // $newResultJobRecruiting[1][$key] = $defaultData;
  1026. // }
  1027. // if (isset($listJobRecruiting[$val]) && $listJobRecruiting[$val]['type_id'] == 10000) {
  1028. // $newResultJobRecruiting[10000][$key] = [
  1029. // 'date' => $val,
  1030. // 'count' => $listJobRecruiting[$val]['count'] ?? 0
  1031. // ];
  1032. // } else {
  1033. // // 若不存在,使用默认值
  1034. // $newResultJobRecruiting[10000][$key] = $defaultData;
  1035. // }
  1036. // if (isset($listJobRecruiting[$val]) && $listJobRecruiting[$val]['type_id'] == 2) {
  1037. // $newResultJobRecruiting[2][$key] = [
  1038. // 'date' => $val,
  1039. // 'count' => $listJobRecruiting[$val]['count'] ?? 0
  1040. // ];
  1041. // } else {
  1042. // // 若不存在,使用默认值
  1043. // $newResultJobRecruiting[2][$key] = $defaultData;
  1044. // }
  1045. // if (isset($listJobRecruiting[$val]) && $listJobRecruiting[$val]['type_id'] == 3) {
  1046. // $newResultJobRecruiting[3][$key] = [
  1047. // 'date' => $val,
  1048. // 'count' => $listJobRecruiting[$val]['count'] ?? 0
  1049. // ];
  1050. // } else {
  1051. // // 若不存在,使用默认值
  1052. // $newResultJobRecruiting[3][$key] = $defaultData;
  1053. // }
  1054. // if (isset($listJobRecruiting[$val]) && $listJobRecruiting[$val]['type_id'] == 4) {
  1055. // $newResultJobRecruiting[4][$key] = [
  1056. // 'date' => $val,
  1057. // 'count' => $listJobRecruiting[$val]['count'] ?? 0
  1058. // ];
  1059. // } else {
  1060. // // 若不存在,使用默认值
  1061. // $newResultJobRecruiting[4][$key] = $defaultData;
  1062. // }
  1063. // //-----------------------------------------------------
  1064. // }
  1065. // }
  1066. // $newResult_new = [
  1067. // [
  1068. // 'usertype' => 10000,
  1069. // 'data' => $newResult[10000],
  1070. // ],
  1071. // [
  1072. // 'usertype' => 1,
  1073. // 'data' => $newResult[1],
  1074. // ],
  1075. // [
  1076. // 'usertype' => 2,
  1077. // 'data' => $newResult[2],
  1078. // ],
  1079. // [
  1080. // 'usertype' => 3,
  1081. // 'data' => $newResult[3],
  1082. // ],
  1083. // [
  1084. // 'usertype' => 4,
  1085. // 'data' => $newResult[4],
  1086. // ],
  1087. // ];
  1088. // $newResult_Good = [
  1089. // [
  1090. // 'usertype' => 10000,
  1091. // 'data' => $newResultGood[10000],
  1092. // ],
  1093. // [
  1094. // 'usertype' => 1,
  1095. // 'data' => $newResultGood[1],
  1096. // ],
  1097. // [
  1098. // 'usertype' => 2,
  1099. // 'data' => $newResultGood[2],
  1100. // ],
  1101. // [
  1102. // 'usertype' => 3,
  1103. // 'data' => $newResultGood[3],
  1104. // ],
  1105. // [
  1106. // 'usertype' => 4,
  1107. // 'data' => $newResultGood[4],
  1108. // ],
  1109. // ];
  1110. // $newResult_Book = [
  1111. // [
  1112. // 'usertype' => 10000,
  1113. // 'data' => $newResultBook[10000],
  1114. // ],
  1115. // [
  1116. // 'usertype' => 1,
  1117. // 'data' => $newResultBook[1],
  1118. // ],
  1119. // [
  1120. // 'usertype' => 2,
  1121. // 'data' => $newResultBook[2],
  1122. // ],
  1123. // [
  1124. // 'usertype' => 3,
  1125. // 'data' => $newResultBook[3],
  1126. // ],
  1127. // [
  1128. // 'usertype' => 4,
  1129. // 'data' => $newResultBook[4],
  1130. // ],
  1131. // ];
  1132. // $newResult_JobHunting = [
  1133. // [
  1134. // 'usertype' => 10000,
  1135. // 'data' => $newResultJobHunting[10000],
  1136. // ],
  1137. // [
  1138. // 'usertype' => 1,
  1139. // 'data' => $newResultJobHunting[1],
  1140. // ],
  1141. // [
  1142. // 'usertype' => 2,
  1143. // 'data' => $newResultJobHunting[2],
  1144. // ],
  1145. // [
  1146. // 'usertype' => 3,
  1147. // 'data' => $newResultJobHunting[3],
  1148. // ],
  1149. // [
  1150. // 'usertype' => 4,
  1151. // 'data' => $newResultJobHunting[4],
  1152. // ],
  1153. // ];
  1154. // $newResult_JobRecruiting = [
  1155. // [
  1156. // 'usertype' => 10000,
  1157. // 'data' => $newResultJobRecruiting[10000],
  1158. // ],
  1159. // [
  1160. // 'usertype' => 1,
  1161. // 'data' => $newResultJobRecruiting[1],
  1162. // ],
  1163. // [
  1164. // 'usertype' => 2,
  1165. // 'data' => $newResultJobRecruiting[2],
  1166. // ],
  1167. // [
  1168. // 'usertype' => 3,
  1169. // 'data' => $newResultJobRecruiting[3],
  1170. // ],
  1171. // [
  1172. // 'usertype' => 4,
  1173. // 'data' => $newResultJobRecruiting[4],
  1174. // ],
  1175. // ];
  1176. // //1:个人会员 2:政务会员 3:企业会员 4:调研员 10000:管理员
  1177. // $userType = [
  1178. // '1' => '个人会员',
  1179. // '2' => '政务会员',
  1180. // '3' => '企业会员',
  1181. // '4' => '调研员',
  1182. // '10000' => '管理员',
  1183. // '20000' => '游客',
  1184. // ];
  1185. // if ($result['data']['userType']) {
  1186. // foreach ($result['data']['userType'] as $k => $v) {
  1187. // $result['data']['userType'][$k]['typeName'] = $userType[$v['type_id']];
  1188. // }
  1189. // }
  1190. // $result['data']['monthArticle'] = $newResult_new;
  1191. // $result['data']['monthGood'] = $newResult_Good;
  1192. // $result['data']['monthBook'] = $newResult_Book;
  1193. // $result['data']['monthJobHunting'] = $newResult_JobHunting;
  1194. // $result['data']['monthJobRecruiting'] = $newResult_JobRecruiting;
  1195. // $result['data']['list'] = $list;
  1196. // return Result::success($result['data']);
  1197. // } else {
  1198. // return Result::error($result['message']);
  1199. // }
  1200. // return Result::success($result);
  1201. // break;
  1202. }
  1203. }
  1204. /**
  1205. * 获取模板皮肤分类
  1206. * @return void
  1207. */
  1208. public function getTemplateClass()
  1209. {
  1210. $requireData = $this->request->all();
  1211. $result = $this->websiteServiceClient->getTemplateClass($requireData);
  1212. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1213. }
  1214. /**
  1215. * 添加模板分类
  1216. * @return void
  1217. */
  1218. public function addTemplateClass()
  1219. {
  1220. $requireData = $this->request->all();
  1221. $validator = $this->validationFactory->make(
  1222. $requireData,
  1223. [
  1224. 'name' => 'required'
  1225. ],
  1226. [
  1227. 'name.required' => '模板类型不能为空'
  1228. ]
  1229. );
  1230. if ($validator->fails()) {
  1231. $errorMessage = $validator->errors()->first();
  1232. return Result::error($errorMessage);
  1233. }
  1234. $data = [
  1235. 'name' => $requireData['name'],
  1236. 'sort' => $requireData['sort'] ?? 0,
  1237. ];
  1238. $result = $this->websiteServiceClient->addTemplateClass($data);
  1239. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1240. }
  1241. /**
  1242. * 更新模板分类
  1243. * @return array
  1244. */
  1245. public function upTemplateClass()
  1246. {
  1247. $requireData = $this->request->all();
  1248. $validator = $this->validationFactory->make(
  1249. $requireData,
  1250. [
  1251. 'name' => 'required',
  1252. 'id' => 'required',
  1253. ],
  1254. [
  1255. 'name.required' => '模板类型不能为空',
  1256. 'name.id' => '模板类型ID不能为空'
  1257. ]
  1258. );
  1259. if ($validator->fails()) {
  1260. $errorMessage = $validator->errors()->first();
  1261. return Result::error($errorMessage);
  1262. }
  1263. $data = [
  1264. 'id' => $requireData['id'],
  1265. 'name' => $requireData['name'],
  1266. 'sort' => $requireData['sort'] ?? 0,
  1267. ];
  1268. $result = $this->websiteServiceClient->upTemplateClass($data);
  1269. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1270. }
  1271. /**
  1272. * 删除模板分类
  1273. * @return array
  1274. */
  1275. public function delTemplateClass()
  1276. {
  1277. $requireData = $this->request->all();
  1278. $validator = $this->validationFactory->make(
  1279. $requireData,
  1280. [
  1281. 'id' => 'required'
  1282. ],
  1283. [
  1284. 'name.required' => '类型id不能为空'
  1285. ]
  1286. );
  1287. if ($validator->fails()) {
  1288. $errorMessage = $validator->errors()->first();
  1289. return Result::error($errorMessage);
  1290. }
  1291. $data = [
  1292. 'id' => $requireData['id']
  1293. ];
  1294. $result = $this->websiteServiceClient->delTemplateClass($data);
  1295. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1296. }
  1297. /**
  1298. * 获取分类下的模板
  1299. * @return array
  1300. */
  1301. public function getTemplate()
  1302. {
  1303. $requireData = $this->request->all();
  1304. $validator = $this->validationFactory->make(
  1305. $requireData,
  1306. [
  1307. // 'template_class_id' => 'required',
  1308. 'page' => 'required',
  1309. 'pageSize' => 'required',
  1310. ],
  1311. [
  1312. // 'template_class_id.required' => '类型template_class_id不能为空',
  1313. 'page.required' => 'page不能为空',
  1314. 'pageSize.required' => '每页显示条数不能为空',
  1315. ]
  1316. );
  1317. if ($validator->fails()) {
  1318. $errorMessage = $validator->errors()->first();
  1319. return Result::error($errorMessage);
  1320. }
  1321. $data = [
  1322. 'template_class_id' => $requireData['template_class_id'],
  1323. 'page' => $requireData['page'],
  1324. 'pageSize' => $requireData['pageSize'],
  1325. ];
  1326. $result = $this->websiteServiceClient->getTemplate($data);
  1327. var_dump("模板列表:", $result['data']['rows']);
  1328. if ($result['data']['rows']) {
  1329. foreach ($result['data']['rows'] as $key => $val) {
  1330. $result['data']['rows'][$key]['template_img'] = json_decode($val['template_img'], true);
  1331. }
  1332. }
  1333. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1334. }
  1335. /**
  1336. * 创建皮肤模板
  1337. * @return array
  1338. */
  1339. public function addTemplate()
  1340. {
  1341. $requireData = $this->request->all();
  1342. // var_dump("FCK:",$requireData);
  1343. $validator = $this->validationFactory->make(
  1344. $requireData,
  1345. [
  1346. 'template_name' => 'required',
  1347. 'template_class_id' => 'required',
  1348. 'template_img' => 'required'
  1349. ],
  1350. [
  1351. 'template_name.required' => '模板名称不能为空',
  1352. 'template_class_id.required' => '模板类型id不能为空',
  1353. 'template_img.required' => '模板图片不能为空',
  1354. ]
  1355. );
  1356. if ($validator->fails()) {
  1357. $errorMessage = $validator->errors()->first();
  1358. return Result::error($errorMessage);
  1359. }
  1360. // var_dump($requireData);
  1361. $data = [
  1362. 'template_name' => $requireData['template_name'],
  1363. 'template_class_id' => $requireData['template_class_id'],
  1364. 'template_img' => $requireData['template_img'],
  1365. ];
  1366. $result = $this->websiteServiceClient->addTemplate($data);
  1367. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1368. }
  1369. /**
  1370. * 更新模板
  1371. * @return array
  1372. */
  1373. public function upTemplate()
  1374. {
  1375. $requireData = $this->request->all();
  1376. $validator = $this->validationFactory->make(
  1377. $requireData,
  1378. [
  1379. 'template_name' => 'required',
  1380. 'template_class_id' => 'required',
  1381. 'template_img' => 'required',
  1382. 'id' => 'required',
  1383. ],
  1384. [
  1385. 'template_name.required' => '模板名称不能为空',
  1386. 'template_class_id.required' => '模板类型id不能为空',
  1387. 'template_img.required' => '模板图片不能为空',
  1388. 'id.required' => '模板id不能为空',
  1389. ]
  1390. );
  1391. if ($validator->fails()) {
  1392. $errorMessage = $validator->errors()->first();
  1393. return Result::error($errorMessage);
  1394. }
  1395. $data = [
  1396. 'id' => $requireData['id'],
  1397. 'template_name' => $requireData['template_name'],
  1398. 'template_img' => $requireData['template_img'],
  1399. 'template_class_id' => $requireData['template_class_id'],
  1400. ];
  1401. $result = $this->websiteServiceClient->upTemplate($data);
  1402. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1403. }
  1404. /**
  1405. * 删除模板
  1406. * @return array
  1407. */
  1408. public function delTemplate()
  1409. {
  1410. $requireData = $this->request->all();
  1411. $validator = $this->validationFactory->make(
  1412. $requireData,
  1413. [
  1414. 'id' => 'required'
  1415. ],
  1416. [
  1417. 'name.required' => '模板id不能为空'
  1418. ]
  1419. );
  1420. if ($validator->fails()) {
  1421. $errorMessage = $validator->errors()->first();
  1422. return Result::error($errorMessage);
  1423. }
  1424. $data = [
  1425. 'id' => $requireData['id']
  1426. ];
  1427. $result = $this->websiteServiceClient->delTemplate($data);
  1428. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1429. }
  1430. /**
  1431. * 搜索网站
  1432. * @return array
  1433. */
  1434. public function websiteList()
  1435. {
  1436. $requireData = $this->request->all();
  1437. $result = $this->websiteServiceClient->websiteList($requireData);
  1438. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1439. }
  1440. /**
  1441. * 检测网站名称是否存在
  1442. * @return array
  1443. */
  1444. public function checkWebsiteName()
  1445. {
  1446. $requireData = $this->request->all();
  1447. $validator = $this->validationFactory->make(
  1448. $requireData,
  1449. [
  1450. 'website_name' => 'required'
  1451. ],
  1452. [
  1453. 'website_name.required' => '网站名称不能为空'
  1454. ]
  1455. );
  1456. if ($validator->fails()) {
  1457. $errorMessage = $validator->errors()->first();
  1458. return Result::error($errorMessage);
  1459. }
  1460. $result = $this->websiteServiceClient->checkWebsiteName($requireData);
  1461. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1462. }
  1463. /**
  1464. * 检测网站网址是否存在
  1465. * @return array
  1466. */
  1467. public function checkWebsiteUrl()
  1468. {
  1469. $requireData = $this->request->all();
  1470. $validator = $this->validationFactory->make(
  1471. $requireData,
  1472. [
  1473. 'website_url' => 'required'
  1474. ],
  1475. [
  1476. 'website_url.required' => '网站网址不能为空'
  1477. ]
  1478. );
  1479. if ($validator->fails()) {
  1480. $errorMessage = $validator->errors()->first();
  1481. return Result::error($errorMessage);
  1482. }
  1483. $result = $this->websiteServiceClient->checkWebsiteUrl($requireData);
  1484. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1485. }
  1486. //20250212 网站标识
  1487. public function addWebsiteGroup()
  1488. {
  1489. $requireData = $this->request->all();
  1490. $validator = $this->validationFactory->make(
  1491. $requireData,
  1492. [
  1493. 'name' => 'required',
  1494. 'web_ids' => 'required',
  1495. ],
  1496. [
  1497. 'name.required' => '网站标识名称不能为空',
  1498. 'web_ids.required' => '网站标识不能为空',
  1499. ]
  1500. );
  1501. if ($validator->fails()) {
  1502. $errorMessage = $validator->errors()->first();
  1503. return Result::error($errorMessage);
  1504. };
  1505. $result = $this->websiteServiceClient->addWebsiteGroup($requireData);
  1506. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1507. }
  1508. public function getWebsiteGrouplist()
  1509. {
  1510. $requireData = $this->request->all();
  1511. $validator = $this->validationFactory->make(
  1512. $requireData,
  1513. [
  1514. 'page' => 'required',
  1515. 'pageSize' => 'required',
  1516. ],
  1517. [
  1518. 'page.required' => 'page不能为空',
  1519. 'pageSize.required' => '每页显示条数不能为空',
  1520. ]
  1521. );
  1522. if ($validator->fails()) {
  1523. $errorMessage = $validator->errors()->first();
  1524. return Result::error($errorMessage);
  1525. };
  1526. $result = $this->websiteServiceClient->getWebsiteGrouplist($requireData);
  1527. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1528. }
  1529. public function getWebsiteGroupInfo()
  1530. {
  1531. $requireData = $this->request->all();
  1532. $validator = $this->validationFactory->make(
  1533. $requireData,
  1534. [
  1535. 'id' => 'required',
  1536. ],
  1537. [
  1538. 'id.required' => '网站标识id不能为空',
  1539. ]
  1540. );
  1541. if ($validator->fails()) {
  1542. $errorMessage = $validator->errors()->first();
  1543. return Result::error($errorMessage);
  1544. };
  1545. $result = $this->websiteServiceClient->getWebsiteGroupInfo($requireData);
  1546. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1547. }
  1548. public function updateWebsiteGroup()
  1549. {
  1550. $requireData = $this->request->all();
  1551. $validator = $this->validationFactory->make(
  1552. $requireData,
  1553. [
  1554. 'id' => 'required',
  1555. 'name' => 'required',
  1556. 'web_ids' => 'required',
  1557. ],
  1558. [
  1559. 'id.required' => '网站标识id不能为空',
  1560. 'name.required' => '网站标识名称不能为空',
  1561. 'web_ids.required' => '网站标识不能为空',
  1562. ]
  1563. );
  1564. if ($validator->fails()) {
  1565. $errorMessage = $validator->errors()->first();
  1566. return Result::error($errorMessage);
  1567. };
  1568. $result = $this->websiteServiceClient->updateWebsiteGroup($requireData);
  1569. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1570. }
  1571. public function deleteWebsiteGroup()
  1572. {
  1573. $requireData = $this->request->all();
  1574. $validator = $this->validationFactory->make(
  1575. $requireData,
  1576. [
  1577. 'id' => 'required',
  1578. ],
  1579. [
  1580. 'id.required' => '网站标识id不能为空',
  1581. ]
  1582. );
  1583. if ($validator->fails()) {
  1584. $errorMessage = $validator->errors()->first();
  1585. return Result::error($errorMessage);
  1586. };
  1587. $result = $this->websiteServiceClient->deleteWebsiteGroup($requireData);
  1588. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1589. }
  1590. //获取网站下导航列表
  1591. public function getWebsiteNavList()
  1592. {
  1593. $requireData = $this->request->all();
  1594. var_dump("获取网站下导航列表", $requireData);
  1595. $validator = $this->validationFactory->make(
  1596. $requireData,
  1597. [
  1598. 'website_id' => 'required',
  1599. 'pid' => 'required',
  1600. ],
  1601. [
  1602. 'website_id.required' => '网站id不能为空',
  1603. 'pid.required' => '父级id不能为空',
  1604. ]
  1605. );
  1606. if ($validator->fails()) {
  1607. $errorMessage = $validator->errors()->first();
  1608. return Result::error($errorMessage);
  1609. };
  1610. //获取用户信息
  1611. $user_id = Context::get("UserId");
  1612. var_dump("用户id:", $user_id);
  1613. $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
  1614. var_dump("用户信息:", $userInfo);
  1615. $sszq = $userInfo['data']['sszq'];
  1616. $type_id = $userInfo['data']['type_id'];
  1617. // if($type_id != 10000){
  1618. // if($sszq == ""){
  1619. // return Result::error("请配置用户的网站标识");
  1620. // }
  1621. // //获取websiteid
  1622. // $groupInfo = $this->websiteServiceClient->getWebsiteGroupInfo(['id' => $sszq]);
  1623. // var_dump("groupInfo:",$groupInfo);
  1624. // if(empty($groupInfo['data'])){
  1625. // return Result::error("没有找到该网站标识");
  1626. // }
  1627. // if(empty($groupInfo['data']['web_ids'])){
  1628. // return Result::error("该网站标识没有绑定网站");
  1629. // }
  1630. // $sszqarr = json_decode($groupInfo['data']['web_ids']);
  1631. // var_dump($website_id = Context::get("SiteId")??2 ,'------------website------');
  1632. // if (!in_array($website_id, $sszqarr)) {
  1633. // return Result::error("您没有权限访问该网站");
  1634. // }
  1635. // }
  1636. $result = $this->websiteServiceClient->getWebsiteNavList($requireData);
  1637. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1638. }
  1639. // 20250307 根据网站标识获取导航池
  1640. public function getWebsiteNavPool()
  1641. {
  1642. $requireData = $this->request->all();
  1643. $validator = $this->validationFactory->make(
  1644. $requireData,
  1645. [
  1646. 'pid' => 'required|integer'
  1647. ],
  1648. [
  1649. 'pid.required' => 'pid不能为空',
  1650. 'pid.integer' => 'pid必须为整数'
  1651. ]
  1652. );
  1653. if ($validator->fails()) {
  1654. $errorMessage = $validator->errors()->first();
  1655. return Result::error($errorMessage);
  1656. }
  1657. //获取用户信息
  1658. $user_id = Context::get("UserId");
  1659. var_dump("用户id:", $user_id);
  1660. $userInfo = $this->userServiceClient->getUserInfo((int)$user_id);
  1661. var_dump("用户信息:", $userInfo);
  1662. $sszq = $userInfo['data']['sszq'];
  1663. $type_id = $userInfo['data']['type_id'];
  1664. $sszqarr = '';
  1665. if ($type_id != 10000) {
  1666. if ($sszq == "") {
  1667. return Result::error("请配置用户的网站标识");
  1668. }
  1669. //获取websiteid
  1670. $groupInfo = $this->websiteServiceClient->getWebsiteGroupInfo(['id' => $sszq]);
  1671. var_dump("groupInfo:", $groupInfo);
  1672. if (empty($groupInfo['data'])) {
  1673. return Result::error("没有找到该网站标识");
  1674. }
  1675. if (empty($groupInfo['data']['web_ids'])) {
  1676. return Result::error("该网站标识没有绑定网站");
  1677. }
  1678. $sszqarr = json_decode($groupInfo['data']['web_ids']);
  1679. var_dump($website_id = Context::get("SiteId") ?? 2, '------------website------');
  1680. if (!in_array($website_id, $sszqarr)) {
  1681. return Result::error("您没有权限访问该网站");
  1682. }
  1683. }
  1684. $data = [
  1685. 'pid' => $requireData['pid'],
  1686. 'websiteids' => $sszqarr,
  1687. ];
  1688. // unset($data['websiteids']);
  1689. if ($type_id == 10000) {
  1690. unset($data['websiteids']);
  1691. }
  1692. $result = $this->websiteServiceClient->getWebsiteNavPool($data);
  1693. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1694. }
  1695. public function getWebsiteNavPoolSite($website_id)
  1696. {
  1697. $requireData = $this->request->all();
  1698. $validator = $this->validationFactory->make(
  1699. $requireData,
  1700. [
  1701. 'category_id' => 'required|integer'
  1702. ],
  1703. [
  1704. 'category_id.required' => '分类id不能为空',
  1705. 'category_id.integer' => '分类id必须为整数'
  1706. ]
  1707. );
  1708. if ($validator->fails()) {
  1709. $errorMessage = $validator->errors()->first();
  1710. return Result::error($errorMessage);
  1711. }
  1712. $data = [
  1713. 'category_id' => $requireData['category_id'],
  1714. ];
  1715. $result = $this->websiteServiceClient->getWebsiteNavPoolSite($data);
  1716. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1717. }
  1718. /**
  1719. * 查看所有的栏目
  1720. * @return array
  1721. */
  1722. public function getAllCategory()
  1723. {
  1724. $requireData = $this->request->all();
  1725. $result = $this->websiteServiceClient->getAllCategory($requireData);
  1726. if ($result['code'] == 200) {
  1727. return Result::success(PublicData::buildMenuTree($result['data']));
  1728. }
  1729. return Result::error($result['message']);
  1730. }
  1731. public function upWebsiteCategorySort()
  1732. {
  1733. $requireData = $this->request->all();
  1734. $validator = $this->validationFactory->make(
  1735. $requireData,
  1736. [
  1737. 'website_id' => 'required',
  1738. 'id' => 'required',
  1739. 'sort' => 'required',
  1740. ],
  1741. [
  1742. 'website_id.required' => '网站ID不能为空',
  1743. 'id.required' => 'ID不能为空',
  1744. 'sort.required' => '排序不能为空',
  1745. ]
  1746. );
  1747. if ($validator->fails()) {
  1748. $errorMessage = $validator->errors()->first();
  1749. return Result::error($errorMessage);
  1750. }
  1751. $result = $this->websiteServiceClient->upWebsiteCategorySort($requireData);
  1752. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1753. }
  1754. // --自助建站-----------fr----------------------start
  1755. /**
  1756. * 搜索并获取网站模板信息
  1757. * @return array
  1758. */
  1759. public function getWebsiteintel()
  1760. {
  1761. $requireData = $this->request->all();
  1762. $validator = $this->validationFactory->make(
  1763. $requireData,
  1764. [
  1765. 'page' => 'required',
  1766. 'pageSize' => 'required'
  1767. ],
  1768. [
  1769. 'page.required' => '第几页不能为空',
  1770. 'pageSize.required' => '每页显示条数不能为空'
  1771. ]
  1772. );
  1773. if ($validator->fails()) {
  1774. $errorMessage = $validator->errors()->first();
  1775. return Result::error($errorMessage);
  1776. }
  1777. $result = $this->websiteServiceClient->getWebsiteintel($requireData);
  1778. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1779. }
  1780. /**
  1781. * 添加网站基础信息
  1782. * @return array
  1783. */
  1784. public function addWebsiteTemplateintel()
  1785. {
  1786. $requireData = $this->request->all();
  1787. $validator = $this->validationFactory->make(
  1788. $requireData,
  1789. [
  1790. 'website_id' => 'required'
  1791. ],
  1792. [
  1793. 'website_id.required' => '网站id不能为空',
  1794. ]
  1795. );
  1796. if ($validator->fails()) {
  1797. $errorMessage = $validator->errors()->first();
  1798. return Result::error($errorMessage);
  1799. }
  1800. $websiteIdKey = ['website_id' => '']; // 创建一个只包含 website_id 键的数组
  1801. $diff = array_diff_key($requireData, $websiteIdKey); // 获取 $requireData 中除了 website_id 以外的其他键值对
  1802. if (!empty($diff)) {
  1803. $validator = $this->validationFactory->make(
  1804. $requireData,
  1805. [
  1806. 'website_id' => 'required',
  1807. 'page_type' => 'required|array|min:2',
  1808. 'statement' => 'required',
  1809. 'organizer' => 'required',
  1810. 'copyright_information' => 'required',
  1811. 'project_logo' => 'required',
  1812. 'record_number' => 'required|max:50',
  1813. 'record_number_url' => 'required|max:100',
  1814. 'icp_number' => 'required|max:100',
  1815. 'icp_number_url' => 'required|max:100',
  1816. 'customer_service_qq' => 'required|max:50',
  1817. 'communications' => 'required|max:50'
  1818. ],
  1819. [
  1820. 'website_id.required' => '网站id不能为空',
  1821. 'page_type.required' => '页面类型不能为空',
  1822. 'page_type.array' => '页面类型必须是数组',
  1823. 'page_type.min' => '页面类型至少有两个元素',
  1824. 'statement.required' => '网站声明不能为空',
  1825. 'organizer.required' => '主办单位不能为空',
  1826. 'copyright_information.required' => '版权信息不能为空',
  1827. 'project_logo.required' => '项目logo不能为空',
  1828. 'record_number.required' => '网安备案号不能为空',
  1829. 'record_number.max' => '网安备案号不能超过50个字符',
  1830. 'record_number_url.required' => '网安备案号链接不能为空',
  1831. 'record_number_url.max' => '网安备案号链接不能超过100个字符',
  1832. 'icp_number.required' => '网站备案号不能为空',
  1833. 'icp_number.max' => '网站备案号不能超过100个字符',
  1834. 'icp_number_url.required' => '网站备案号链接不能为空',
  1835. 'icp_number_url.max' => '网站备案号链接不能超过100个字符',
  1836. 'customer_service_qq.required' => '客服qq不能为空',
  1837. 'customer_service_qq.max' => '客服qq不能超过50个字符',
  1838. 'communications.required' => '通联qq不能为空',
  1839. 'communications.max' => '通联qq不能超过50个字符'
  1840. ]
  1841. );
  1842. if ($validator->fails()) {
  1843. $errorMessage = $validator->errors()->first();
  1844. return Result::error($errorMessage);
  1845. }
  1846. }
  1847. $result = $this->websiteServiceClient->addWebsiteTemplateintel($requireData);
  1848. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1849. }
  1850. /**
  1851. * 获取网站基础信息
  1852. * @return array
  1853. */
  1854. public function getWebsiteTemplateintel()
  1855. {
  1856. $requireData = $this->request->all();
  1857. $validator = $this->validationFactory->make(
  1858. $requireData,
  1859. [
  1860. 'website_id' => 'required'
  1861. ],
  1862. [
  1863. 'website_id.required' => '网站id不能为空',
  1864. ]
  1865. );
  1866. if ($validator->fails()) {
  1867. $errorMessage = $validator->errors()->first();
  1868. return Result::error($errorMessage);
  1869. }
  1870. $result = $this->websiteServiceClient->getWebsiteTemplateintel($requireData);
  1871. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1872. }
  1873. /**
  1874. * 修改网站基础信息
  1875. * @return array
  1876. */
  1877. public function upWebsiteTemplateintel()
  1878. {
  1879. $requireData = $this->request->all();
  1880. $validator = $this->validationFactory->make(
  1881. $requireData,
  1882. [
  1883. 'website_id' => 'required',
  1884. 'page_type' => 'required|array|min:2',
  1885. 'statement' => 'required',
  1886. 'organizer' => 'required',
  1887. 'copyright_information' => 'required',
  1888. 'project_logo' => 'required',
  1889. 'record_number' => 'required|max:50',
  1890. 'record_number_url' => 'required|max:100',
  1891. 'icp_number' => 'required|max:100',
  1892. 'icp_number_url' => 'required|max:100',
  1893. 'customer_service_qq' => 'required|max:50',
  1894. 'communications' => 'required|max:50'
  1895. ],
  1896. [
  1897. 'website_id.required' => '网站id不能为空',
  1898. 'page_type.required' => '页面类型不能为空',
  1899. 'page_type.array' => '页面类型必须是数组',
  1900. 'page_type.min' => '页面类型至少有两个元素',
  1901. 'statement.required' => '网站声明不能为空',
  1902. 'organizer.required' => '主办单位不能为空',
  1903. 'copyright_information.required' => '版权信息不能为空',
  1904. 'project_logo.required' => '项目logo不能为空',
  1905. 'record_number.required' => '网安备案号不能为空',
  1906. 'record_number.max' => '网安备案号不能超过50个字符',
  1907. 'record_number_url.required' => '网安备案号链接不能为空',
  1908. 'record_number_url.max' => '网安备案号链接不能超过100个字符',
  1909. 'icp_number.required' => '网站备案号不能为空',
  1910. 'icp_number.max' => '网站备案号不能超过100个字符',
  1911. 'icp_number_url.required' => '网站备案号链接不能为空',
  1912. 'icp_number_url.max' => '网站备案号链接不能超过100个字符',
  1913. 'customer_service_qq.required' => '客服qq不能为空',
  1914. 'customer_service_qq.max' => '客服qq不能超过50个字符',
  1915. 'communications.required' => '通联qq不能为空',
  1916. 'communications.max' => '通联qq不能超过50个字符'
  1917. ]
  1918. );
  1919. if ($validator->fails()) {
  1920. $errorMessage = $validator->errors()->first();
  1921. return Result::error($errorMessage);
  1922. }
  1923. $result = $this->websiteServiceClient->upWebsiteTemplateintel($requireData);
  1924. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1925. }
  1926. /**
  1927. * 获取所有风格
  1928. * @return array
  1929. */
  1930. public function getAllTemplateClass()
  1931. {
  1932. $requireData = $this->request->all();
  1933. $result = $this->websiteServiceClient->getAllTemplateClass($requireData);
  1934. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1935. }
  1936. /**
  1937. * 获取网站模板信息
  1938. * @return array
  1939. */
  1940. public function getWebsiteTemplateList()
  1941. {
  1942. $requireData = $this->request->all();
  1943. $validator = $this->validationFactory->make(
  1944. $requireData,
  1945. [
  1946. 'website_id' => 'required'
  1947. ],
  1948. [
  1949. 'website_id.required' => '网站id不能为空'
  1950. ]
  1951. );
  1952. if ($validator->fails()) {
  1953. $errorMessage = $validator->errors()->first();
  1954. return Result::error($errorMessage);
  1955. }
  1956. $validator = $this->validationFactory->make(
  1957. $requireData,
  1958. [
  1959. 'page' => 'required',
  1960. 'pageSize' => 'required'
  1961. ],
  1962. [
  1963. 'page.required' => '第几页不能为空',
  1964. 'pageSize.required' => '每页显示条数不能为空'
  1965. ]
  1966. );
  1967. if ($validator->fails()) {
  1968. $errorMessage = $validator->errors()->first();
  1969. return Result::error($errorMessage);
  1970. }
  1971. // var_dump($requireData);
  1972. $result = $this->websiteServiceClient->getWebsiteTemplateList($requireData);
  1973. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  1974. }
  1975. /**
  1976. * 添加网站模板信息
  1977. * @return array
  1978. */
  1979. public function addWebsiteTemplateclassintel()
  1980. {
  1981. $requireData = $this->request->all();
  1982. // var_dump($requireData);
  1983. $validator = $this->validationFactory->make(
  1984. $requireData,
  1985. [
  1986. 'template_id' => 'required',
  1987. 'website_id' => 'required'
  1988. ],
  1989. [
  1990. 'template_id.required' => '模板id不能为空',
  1991. 'website_id.required' => '网站id不能为空'
  1992. ]
  1993. );
  1994. if ($validator->fails()) {
  1995. $errorMessage = $validator->errors()->first();
  1996. return Result::error($errorMessage);
  1997. }
  1998. $result = $this->websiteServiceClient->addWebsiteTemplateclassintel($requireData);
  1999. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2000. }
  2001. /**
  2002. * 获取网站模板信息
  2003. * @return array
  2004. */
  2005. public function getWebsiteTemplateclassintel()
  2006. {
  2007. $requireData = $this->request->all();
  2008. // var_dump($requireData);
  2009. $validator = $this->validationFactory->make(
  2010. $requireData,
  2011. [
  2012. 'website_id' => 'required',
  2013. // 'page' =>'required',
  2014. // 'pageSize' =>'required'
  2015. ],
  2016. [
  2017. 'website_id.required' => '网站id不能为空',
  2018. // 'page.required' => '第几页不能为空',
  2019. // 'pageSize.required' => '每页显示条数不能为空'
  2020. ]
  2021. );
  2022. if ($validator->fails()) {
  2023. $errorMessage = $validator->errors()->first();
  2024. return Result::error($errorMessage);
  2025. }
  2026. $data = $requireData;
  2027. $result = $this->websiteServiceClient->getWebsiteTemplateclassintel($data);
  2028. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2029. }
  2030. /**
  2031. * 自助建站-获取职能部门
  2032. * @return array
  2033. */
  2034. public function selectWebsiteDepartment()
  2035. {
  2036. $requireData = $this->request->all();
  2037. if (isset($requireData['keyword']) && !empty($requireData['keyword'])) {
  2038. $requireData['keyword'] = trim($requireData['keyword']);
  2039. } else {
  2040. $requireData['keyword'] = '';
  2041. }
  2042. $result = $this->websiteServiceClient->selectWebsiteDepartment($requireData);
  2043. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2044. }
  2045. /**
  2046. * 自助建站-获取职能部门
  2047. * @return array
  2048. */
  2049. public function selectWebsiteArea()
  2050. {
  2051. $requireData = $this->request->all();
  2052. $rules = [
  2053. // 'website_id' => 'required',
  2054. 'province' => [
  2055. 'nullable',
  2056. 'numeric',
  2057. function ($attribute, $value, $fail) {
  2058. if ($value === 0) {
  2059. $fail($attribute . '不能为0');
  2060. }
  2061. },
  2062. ],
  2063. 'city' => [
  2064. 'nullable',
  2065. 'numeric',
  2066. function ($attribute, $value, $fail) {
  2067. if ($value === 0) {
  2068. $fail($attribute . '不能为0');
  2069. }
  2070. },
  2071. ],
  2072. ];
  2073. $messages = [
  2074. // 'website_id.required' => '网站id不能为空',
  2075. 'province.numeric' => '省份必须是数字类型',
  2076. 'province.custom' => '省份不能为0',
  2077. 'city.numeric' => '城市必须是数字类型',
  2078. 'city.custom' => '城市不能为0',
  2079. ];
  2080. $validator = $this->validationFactory->make($requireData, $rules, $messages);
  2081. if ($validator->fails()) {
  2082. $errorMessage = $validator->errors()->first();
  2083. return Result::error($errorMessage);
  2084. }
  2085. $result = $this->websiteServiceClient->selectWebsiteArea($requireData);
  2086. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2087. }
  2088. /**
  2089. * 自助建站-获取模板下的板块
  2090. * @return array
  2091. */
  2092. public function getWebsiteSectorList()
  2093. {
  2094. $requireData = $this->request->all();
  2095. $validator = $this->validationFactory->make(
  2096. $requireData,
  2097. [
  2098. 'website_id' => 'required|numeric'
  2099. ],
  2100. [
  2101. 'website_id.required' => '网站id不能为空',
  2102. 'website_id.numeric' => '网站id必须是数字类型'
  2103. ]
  2104. );
  2105. if ($validator->fails()) {
  2106. $errorMessage = $validator->errors()->first();
  2107. return Result::error($errorMessage);
  2108. }
  2109. $result = $this->websiteServiceClient->getWebsiteSectorList($requireData);
  2110. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2111. }
  2112. // --自助建站-----------fr----------------------end
  2113. // --底部基础信息-----------fr----------------------start
  2114. /**
  2115. * 添加底部基础信息
  2116. * @return array
  2117. */
  2118. public function addWebFootInfo()
  2119. {
  2120. $requireData = $this->request->all();
  2121. $validator = $this->validationFactory->make(
  2122. $requireData,
  2123. [
  2124. 'website_id' => 'required'
  2125. ],
  2126. [
  2127. 'website_id.required' => '网站id不能为空'
  2128. ]
  2129. );
  2130. if ($validator->fails()) {
  2131. $errorMessage = $validator->errors()->first();
  2132. return Result::error($errorMessage);
  2133. }
  2134. $result = $this->websiteServiceClient->addWebFootInfo($requireData);
  2135. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2136. }
  2137. /**
  2138. * 获取底部基础信息
  2139. * @return array
  2140. */
  2141. public function getWebFootInfo()
  2142. {
  2143. $requireData = $this->request->all();
  2144. $validator = $this->validationFactory->make(
  2145. $requireData,
  2146. [
  2147. 'website_id' => 'required'
  2148. ],
  2149. [
  2150. 'website_id.required' => '网站id不能为空'
  2151. ]
  2152. );
  2153. if ($validator->fails()) {
  2154. $errorMessage = $validator->errors()->first();
  2155. return Result::error($errorMessage);
  2156. }
  2157. $result = $this->websiteServiceClient->getWebFootInfo($requireData);
  2158. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2159. }
  2160. /**
  2161. * 修改底部基础信息
  2162. * @return array
  2163. */
  2164. public function upWebFootInfo()
  2165. {
  2166. $requireData = $this->request->all();
  2167. $validator = $this->validationFactory->make(
  2168. $requireData,
  2169. [
  2170. 'website_id' => 'required|numeric'
  2171. ],
  2172. [
  2173. 'website_id.required' => '网站id不能为空'
  2174. ]
  2175. );
  2176. if ($validator->fails()) {
  2177. $errorMessage = $validator->errors()->first();
  2178. return Result::error($errorMessage);
  2179. }
  2180. // return $requireData;
  2181. $result = $this->websiteServiceClient->upWebFootInfo($requireData);
  2182. return $result['code'] == 200 ? Result::success($result['data']) : Result::error($result['message']);
  2183. }
  2184. // --底部基础信息-----------fr----------------------end
  2185. // --自助建站-----------20250522fr----------------------start
  2186. /**
  2187. * 获取所有的静态资源
  2188. * @return array
  2189. */
  2190. public function getStaticResourceList()
  2191. {
  2192. $requireData = $this->request->all();
  2193. $validator = $this->validationFactory->make(
  2194. $requireData,
  2195. [
  2196. 'page' =>'required|integer',
  2197. 'pageSize' =>'required|integer'
  2198. ],
  2199. [
  2200. 'page.required' => '页码不能为空',
  2201. 'page.integer' => '页码必须是整数',
  2202. 'pageSize.required' => '每页显示数量不能为空',
  2203. 'pageSize.integer' => '每页显示数量必须是整数'
  2204. ]
  2205. );
  2206. if ($validator->fails()) {
  2207. $errorMessage = $validator->errors()->first();
  2208. return Result::error($errorMessage);
  2209. }
  2210. // return $requireData;
  2211. $result = $this->websiteServiceClient->getStaticResourceList($requireData);
  2212. Return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']);
  2213. }
  2214. /**
  2215. * 获取所有的静态资源
  2216. * @return array
  2217. */
  2218. public function addStaticResource()
  2219. {
  2220. $requireData = $this->request->all();
  2221. $validator = $this->validationFactory->make(
  2222. $requireData,
  2223. [
  2224. 'website_id' =>'required|numeric',
  2225. ],
  2226. [
  2227. 'website_id.required' => '网站id不能为空',
  2228. 'website_id.numeric' => '网站id必须是数字类型',
  2229. ]
  2230. );
  2231. if ($validator->fails()) {
  2232. $errorMessage = $validator->errors()->first();
  2233. return Result::error($errorMessage);
  2234. }
  2235. $result = $this->websiteServiceClient->addStaticResource($requireData);
  2236. Return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']);
  2237. }
  2238. /**
  2239. * 获取所有的静态资源
  2240. * @return array
  2241. */
  2242. public function delStaticResource()
  2243. {
  2244. $requireData = $this->request->all();
  2245. $validator = $this->validationFactory->make(
  2246. $requireData,
  2247. [
  2248. 'id' =>'required|integer',
  2249. ],
  2250. [
  2251. 'id.required' => 'id不能为空',
  2252. 'id.integer' => 'id必须是整数类型',
  2253. ]
  2254. );
  2255. if ($validator->fails()) {
  2256. $errorMessage = $validator->errors()->first();
  2257. return Result::error($errorMessage);
  2258. }
  2259. $result = $this->websiteServiceClient->delStaticResource($requireData);
  2260. Return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']);
  2261. }
  2262. /**
  2263. * 获取所有的静态资源
  2264. * @return array
  2265. */
  2266. public function getStaticResourceInfo()
  2267. {
  2268. $requireData = $this->request->all();
  2269. $validator = $this->validationFactory->make(
  2270. $requireData,
  2271. [
  2272. 'id' =>'required|integer'
  2273. ],
  2274. [
  2275. 'id.required' => '网站id不能为空',
  2276. 'id.integer' => '网站id必须是整数类型'
  2277. ]
  2278. );
  2279. if ($validator->fails()) {
  2280. $errorMessage = $validator->errors()->first();
  2281. return Result::error($errorMessage);
  2282. }
  2283. $result = $this->websiteServiceClient->getStaticResourceInfo($requireData);
  2284. Return $result['code'] == 200? Result::success($result['data']) : Result::error($result['message']);
  2285. }
  2286. // --自助建站-----------20250522fr----------------------end
  2287. }