HelpController.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506
  1. <?php
  2. namespace App\Web\Controllers;
  3. use App\Http\Controllers\BaseController;
  4. use App\Web\Services\HelpService;
  5. use Illuminate\Http\Request;
  6. class HelpController extends BaseController
  7. {
  8. protected $service = null;
  9. /**
  10. * 构造函数
  11. * HelpController constructor.
  12. * @param HelpService $service
  13. */
  14. public function __construct(HelpService $service)
  15. {
  16. $this->service = $service;
  17. }
  18. /**
  19. * 获取帮助类型列表
  20. * */
  21. public function getHelpTypeList(Request $request){
  22. $params=$request->only(['page_size','page','status','keyword']);
  23. $ret=$this->service->getHelpTypeList($params);
  24. return $this->jsonResponse(
  25. 'ok',
  26. $ret
  27. );
  28. }
  29. /**
  30. * 帮助类型保存
  31. * */
  32. public function saveHelpType(Request $request){
  33. $this->validate($request, [
  34. 'type_name' => 'required',
  35. ], [
  36. 'type_name.required' => '类型名称不能为空',
  37. ]);
  38. $params=$request->only(['id','type_name','type_img','type_img_alt','status','sort','seo_data', 'seo_id','expand_content']);
  39. $ret=$this->service->saveHelpType($params);
  40. return $this->jsonResponse(
  41. 'ok',
  42. $ret
  43. );
  44. }
  45. /**
  46. * 变更帮助类型状态
  47. * */
  48. public function changeHelpTypeStatus(Request $request){
  49. $this->validate($request, [
  50. 'id' => 'required',
  51. ], [
  52. 'id.required' => 'id不能为空',
  53. ]);
  54. $params=$request->only(['id','status']);
  55. $ret=$this->service->saveHelpType($params);
  56. return $this->jsonResponse(
  57. 'ok',
  58. $ret
  59. );
  60. }
  61. /**
  62. * 保存帮助类型关系
  63. * */
  64. public function typeRelationSave(Request $request){
  65. $this->validate($request, [
  66. 'help_id' => 'required',
  67. ], [
  68. 'help_id.required' => '帮助id不能为空',
  69. ]);
  70. $params=$request->only(['help_id','type_ids']);
  71. $ret=$this->service->typeRelationSave($params);
  72. return $this->jsonResponse(
  73. 'ok',
  74. $ret
  75. );
  76. }
  77. /**
  78. * 根据帮助类型 保存帮助关系
  79. * */
  80. public function addRelationByTypeId(Request $request){
  81. $this->validate($request, [
  82. 'help_ids' => 'required',
  83. 'type_id' => 'required',
  84. ], [
  85. 'help_ids.required' => '帮助id不能为空',
  86. 'type_id.required' => '帮助类型id不能为空',
  87. ]);
  88. $typeId=$request->input('type_id',0);
  89. $helpIds=$request->input('help_ids',[]);
  90. $ret=$this->service->addRelationByTypeId($typeId,$helpIds);
  91. return $this->jsonResponse(
  92. 'ok',
  93. $ret
  94. );
  95. }
  96. /**
  97. * 根据类型id及帮助id 删除关联关系
  98. * */
  99. public function delTypeRelation(Request $request){
  100. $this->validate($request, [
  101. 'help_id' => 'required',
  102. 'type_id' => 'required',
  103. ], [
  104. 'help_id.required' => '帮助id不能为空',
  105. 'type_id.required' => '类型id不能未空',
  106. ]);
  107. $helpId=$request->input('help_id','');
  108. $typeId=$request->input('type_id','');
  109. $ret=$this->service->delTypeRelation($typeId,$helpId);
  110. return $this->jsonResponse(
  111. 'ok',
  112. $ret
  113. );
  114. }
  115. /**
  116. * 获取帮助标签列表
  117. * */
  118. public function getHelpTagList(Request $request){
  119. $params=$request->only(['page_size','page','status','keyword']);
  120. $ret=$this->service->getHelpTagList($params);
  121. return $this->jsonResponse(
  122. 'ok',
  123. $ret
  124. );
  125. }
  126. /**
  127. * 帮助标签保存
  128. * */
  129. public function saveHelpTag(Request $request){
  130. $this->validate($request, [
  131. 'tag_name' => 'required',
  132. ], [
  133. 'tag_name.required' => '类型名称不能为空',
  134. ]);
  135. $params=$request->only(['id','tag_name','is_hot','status','sort','seo_id','seo_data']);
  136. $ret=$this->service->saveHelpTag($params);
  137. return $this->jsonResponse(
  138. 'ok',
  139. $ret
  140. );
  141. }
  142. /**
  143. * 变更帮助类型状态
  144. * */
  145. public function changeHelpTagStatus(Request $request){
  146. $this->validate($request, [
  147. 'id' => 'required',
  148. ], [
  149. 'id.required' => 'id不能为空',
  150. ]);
  151. $params=$request->only(['id','status']);
  152. $ret=$this->service->saveHelpTag($params);
  153. return $this->jsonResponse(
  154. 'ok',
  155. $ret
  156. );
  157. }
  158. /**
  159. * 保存帮助标签关系
  160. * */
  161. public function tagRelationSave(Request $request){
  162. $this->validate($request, [
  163. 'help_id' => 'required',
  164. ], [
  165. 'help_id.required' => '帮助id不能为空',
  166. ]);
  167. $params=$request->only(['help_id','tag_ids']);
  168. $ret=$this->service->tagRelationSave($params);
  169. return $this->jsonResponse(
  170. 'ok',
  171. $ret
  172. );
  173. }
  174. /**
  175. * 根据帮助标签 保存帮助关系
  176. * */
  177. public function addRelationByTagId(Request $request){
  178. $this->validate($request, [
  179. 'help_ids' => 'required',
  180. 'tag_id' => 'required',
  181. ], [
  182. 'help_ids.required' => '帮助id不能为空',
  183. 'tag_id.required' => '帮助标签id不能为空',
  184. ]);
  185. $tagId=$request->input('tag_id',0);
  186. $helpIds=$request->input('help_ids',[]);
  187. $ret=$this->service->addRelationByTagId($tagId,$helpIds);
  188. return $this->jsonResponse(
  189. 'ok',
  190. $ret
  191. );
  192. }
  193. /**
  194. * 根据标签id及帮助id 删除关联关系
  195. * */
  196. public function delTagRelation(Request $request){
  197. $this->validate($request, [
  198. 'help_id' => 'required',
  199. 'tag_id' => 'required',
  200. ], [
  201. 'help_id.required' => '帮助id不能为空',
  202. 'tag_id.required' => '标签id不能未空',
  203. ]);
  204. $helpId=$request->input('help_id','');
  205. $tagId=$request->input('tag_id','');
  206. $ret=$this->service->delTagRelation($tagId,$helpId);
  207. return $this->jsonResponse(
  208. 'ok',
  209. $ret
  210. );
  211. }
  212. /**
  213. * 获取帮助板块列表
  214. * */
  215. public function getHelpPlateList(Request $request){
  216. $params=$request->only(['page_size','page','status','keyword']);
  217. $ret=$this->service->getHelpPlateList($params);
  218. return $this->jsonResponse(
  219. 'ok',
  220. $ret
  221. );
  222. }
  223. /**
  224. * 帮助板块保存
  225. * */
  226. public function saveHelpPlate(Request $request){
  227. $this->validate($request, [
  228. 'plate_name' => 'required',
  229. ], [
  230. 'plate_name.required' => '类型名称不能为空',
  231. ]);
  232. $params=$request->only(['id','plate_name','status','sort','seo_id','seo_data']);
  233. $ret=$this->service->saveHelpPlate($params);
  234. return $this->jsonResponse(
  235. 'ok',
  236. $ret
  237. );
  238. }
  239. /**
  240. * 变更帮助板块状态
  241. * */
  242. public function changeHelpPlateStatus(Request $request){
  243. $this->validate($request, [
  244. 'id' => 'required',
  245. ], [
  246. 'id.required' => 'id不能为空',
  247. ]);
  248. $params=$request->only(['id','status']);
  249. $ret=$this->service->saveHelpPlate($params);
  250. return $this->jsonResponse(
  251. 'ok',
  252. $ret
  253. );
  254. }
  255. /**
  256. * 获取帮助列表
  257. * */
  258. public function getHelpList(Request $request){
  259. $params=$request->only(['page_size','page','status','keyword','plate_id','sort']);
  260. $ret=$this->service->getHelpList($params);
  261. return $this->jsonResponse(
  262. 'ok',
  263. $ret
  264. );
  265. }
  266. /**
  267. * 获取帮助详情
  268. * */
  269. public function getHelpInfo(Request $request){
  270. $this->validate($request, [
  271. 'id' => 'required',
  272. ], [
  273. 'id.required' => '帮助id不能为空',
  274. ]);
  275. $id=$request->input('id',0);
  276. $ret=$this->service->getHelpInfo(['id'=>$id]);
  277. return $this->jsonResponse(
  278. 'ok',
  279. $ret
  280. );
  281. }
  282. /**
  283. * 获取帮助分类未关联的帮助
  284. * */
  285. public function getUnrelatedHelpByTypeIds(Request $request){
  286. $this->validate($request, [
  287. 'type_id' => 'required',
  288. ], [
  289. 'type_id.required' => 'id不能为空',
  290. ]);
  291. $params=$request->only(['page_size','page','status','keyword','type_id']);
  292. $ret=$this->service->getUnrelatedHelpByTypeIds($params);
  293. return $this->jsonResponse(
  294. 'ok',
  295. $ret
  296. );
  297. }
  298. /**
  299. * 获取帮助标签未关联的帮助
  300. * */
  301. public function getUnrelatedHelpByTagIds(Request $request){
  302. $this->validate($request, [
  303. 'tag_id' => 'required',
  304. ], [
  305. 'tag_id.required' => 'id不能为空',
  306. ]);
  307. $params=$request->only(['page_size','page','status','keyword','tag_id']);
  308. $ret=$this->service->getUnrelatedHelpByTagIds($params);
  309. return $this->jsonResponse(
  310. 'ok',
  311. $ret
  312. );
  313. }
  314. /**
  315. * 根据类型id 获取帮助列表
  316. * */
  317. public function getHelpListByType(Request $request){
  318. $params=$request->only(['page_size','page','status','keyword','type_id']);
  319. $ret=$this->service->getHelpByTypeIds($params);
  320. return $this->jsonResponse(
  321. 'ok',
  322. $ret
  323. );
  324. }
  325. /**
  326. * 根据标签id 获取帮助列表
  327. * */
  328. public function getHelpListByTag(Request $request){
  329. $params=$request->only(['page_size','page','status','keyword','tag_id']);
  330. $ret=$this->service->getHelpByTagIds($params);
  331. return $this->jsonResponse(
  332. 'ok',
  333. $ret
  334. );
  335. }
  336. /**
  337. * 变更帮助板块状态
  338. * */
  339. public function changeHelpStatus(Request $request){
  340. $this->validate($request, [
  341. 'id' => 'required',
  342. ], [
  343. 'id.required' => 'id不能为空',
  344. ]);
  345. $params=$request->only(['id','status']);
  346. $ret=$this->service->saveHelp($params);
  347. return $this->jsonResponse(
  348. 'ok',
  349. $ret
  350. );
  351. }
  352. /**
  353. * 保存帮助数据
  354. * */
  355. public function saveHelp(Request $request){
  356. $this->validate($request, [
  357. 'title' => 'required',
  358. 'content' => 'required|string',
  359. 'type_ids' => 'array',
  360. 'tag_ids' => 'array',
  361. ]);
  362. $params = $request->only(['id','pub_date','title','content','outline_bar','description',
  363. 'image_url', 'image_alt', 'main_image', 'main_image_alt', 'virtual_view',
  364. 'download_url','seo_id','sort','seo_data','status','tag_ids','type_ids', 'is_top']);
  365. $ret=$this->service->saveHelp($params);
  366. return $this->jsonResponse(
  367. 'ok',
  368. $ret
  369. );
  370. }
  371. /**
  372. * 帮助推荐设置
  373. * */
  374. public function recommendSet(Request $request){
  375. $this->validate($request, [
  376. 'id' => 'required',
  377. ]);
  378. $params = $request->only(['id','is_recommend']);
  379. $ret=$this->service->recommendSet($params);
  380. return $this->jsonResponse(
  381. 'ok',
  382. $ret
  383. );
  384. }
  385. /**
  386. * 更新帮助的浏览量
  387. * */
  388. public function upHelpPv(Request $request){
  389. $this->validate($request, [
  390. 'id' => 'required',
  391. ], [
  392. 'id.required' => 'id不能为空',
  393. ]);
  394. $helpId=$request->input('id',0);
  395. $incValue=$request->input('inc_val',1);
  396. $ret=$this->service->upHelpPv($helpId,$incValue);
  397. return $this->jsonResponse(
  398. 'ok',
  399. $ret
  400. );
  401. }
  402. /**
  403. * 帮助预览
  404. * */
  405. public function previewHelp(Request $request){
  406. $this->validate($request, [
  407. 'id' => 'required',
  408. ], [
  409. 'id.required' => 'id不能为空',
  410. ]);
  411. $helpId=$request->input('id',0);
  412. $ret=$this->service->getHelpRenderData(['id'=>$helpId]);
  413. return $this->jsonResponse(
  414. 'ok',
  415. $ret
  416. );
  417. }
  418. /**
  419. * 根据类型id获取帮助
  420. * */
  421. public function getPublishHelpListByTypeId(Request $request){
  422. $params=$request->only(['page_size','page','type_id']);
  423. $ret=$this->service->getPublishHelpListByTypeId($params);
  424. return $this->jsonResponse(
  425. 'ok',
  426. $ret
  427. );
  428. }
  429. /**
  430. * 根据标签id获取帮助
  431. * */
  432. public function getPublishHelpListByTagId(Request $request){
  433. $params=$request->only(['page_size','page','tag_id', 'plate_id']);
  434. $ret=$this->service->getPublishHelpListByTagId($params);
  435. return $this->jsonResponse(
  436. 'ok',
  437. $ret
  438. );
  439. }
  440. /**
  441. * 搜索获取已发布的帮助
  442. * */
  443. public function getSearchHelpList(Request $request){
  444. $params=$request->only(['page_size','keyword']);
  445. $ret=$this->service->getPublishHelpList($params);
  446. return $this->jsonResponse(
  447. 'ok',
  448. $ret
  449. );
  450. }
  451. /**
  452. * 新闻排序上下移
  453. * @url /api/help/change-sort
  454. */
  455. public function changeHelpSort(Request $request)
  456. {
  457. $this->validate($request, [
  458. 'id' => 'required',
  459. 'sort' => 'required',
  460. ]);
  461. $ret = $this->service->changeHelpSort($request->input('id'), $request->input('sort'));
  462. return $this->jsonResponse('ok', $ret);
  463. }
  464. }