PageLink.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\admin\system\diy;
  12. use app\common\repositories\article\ArticleRepository;
  13. use app\common\repositories\store\StoreCategoryRepository;
  14. use app\common\repositories\system\diy\DiyRepository;
  15. use app\common\repositories\system\diy\PageLinkRepository;
  16. use app\common\repositories\system\groupData\GroupDataRepository;
  17. use app\common\repositories\system\merchant\MerchantRepository;
  18. use app\controller\admin\AuthController;
  19. use app\services\diy\DiyServices;
  20. use app\common\repositories\system\diy\PageCategoryRepository;
  21. use app\services\diy\PageLinkServices;
  22. use app\services\product\category\StoreCategoryServices;
  23. use crmeb\basic\BaseController;
  24. use think\App;
  25. /**
  26. * Class PageLink
  27. * @package app\controller\admin\v1\diy
  28. */
  29. class PageLink extends BaseController
  30. {
  31. protected $repository;
  32. public function __construct(App $app, PageLinkRepository $repository)
  33. {
  34. parent::__construct($app);
  35. $this->repository = $repository;
  36. }
  37. public function lst()
  38. {
  39. [$page, $limit] = $this->getPage();
  40. $where = $this->request->params([['status',1]]);
  41. $where['is_mer'] = $this->request->param('type',0);
  42. return app('json')->success($this->repository->getList($where, $page, $limit));
  43. }
  44. public function createForm()
  45. {
  46. $isMer = $this->request->param('type',0);
  47. return app('json')->success(formToData($this->repository->form(0, $isMer)));
  48. }
  49. public function create()
  50. {
  51. $data = $this->request->params([
  52. 'cate_id',
  53. 'name',
  54. 'url',
  55. 'param',
  56. 'example',
  57. 'status',
  58. 'sort',
  59. ]);
  60. $data['is_mer'] = $this->request->param('type',0);
  61. $this->repository->create($data);
  62. return app('json')->success('添加成功');
  63. }
  64. public function updateForm($id)
  65. {
  66. $isMer = $this->request->param('type',0);
  67. return app('json')->success(formToData($this->repository->form($id, $isMer)));
  68. }
  69. public function update($id)
  70. {
  71. if ( !$this->repository->existsWhere(['id' => $id]))
  72. return app('json')->fail('数据不存在');
  73. $data = $this->request->params([
  74. 'cate_id',
  75. 'name',
  76. 'url',
  77. 'param',
  78. 'example',
  79. 'status',
  80. 'sort',
  81. ]);
  82. $this->repository->update($id,$data);
  83. return app('json')->success('编辑成功');
  84. }
  85. /**
  86. * 获取页面链接
  87. * @param $cate_id
  88. * @return mixed
  89. */
  90. public function getLinks($id, PageCategoryRepository $pageCategoryServices)
  91. {
  92. if (!$id) return app('json')->fail('缺少参数');
  93. $category = $pageCategoryServices->get((int)$id);
  94. if (!$category) {
  95. return app('json')->fail('页面分类不存在');
  96. }
  97. [$page, $limit] = $this->getPage();
  98. switch ($category['type']) {
  99. case 'special':
  100. $diyServices = app()->make(ArticleRepository::class);
  101. $data = $diyServices->search(0,['status' => 1], $page, $limit);
  102. break;
  103. case 'product_category':
  104. $storeCategoryServices = app()->make(StoreCategoryRepository::class);
  105. $data = $storeCategoryServices->getApiFormatList($this->request->merId(),1);
  106. break;
  107. case 'merchant':
  108. $data = app()->make(MerchantRepository::class)->lst(['mer_state' => 1, 'status' => 1],$page,$limit);
  109. break;
  110. case 'active':
  111. $groupid = $this->request->merId() ? 95 : 94;
  112. $data = app()->make(GroupDataRepository::class)->getGroupDataLst($this->request->merId(), $groupid, $page, $limit);
  113. break;
  114. default:
  115. $data = $this->repository->getLinkList($id,$this->request->merId());
  116. break;
  117. }
  118. return app('json')->success($data);
  119. }
  120. /**
  121. * 删除链接
  122. * @param $id
  123. * @return mixed
  124. */
  125. public function delete($id)
  126. {
  127. if (!$id) return app('json')->fail('参数错误');
  128. if ( !$this->repository->existsWhere(['id' => $id]))
  129. return app('json')->fail('数据不存在');
  130. $this->repository->delete($id);
  131. return app('json')->success('删除成功!');
  132. }
  133. }