Category.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 商品分类管理
  7. */
  8. namespace app\green\controller;
  9. use app\green\model\GreenCategory;
  10. class Category extends Common{
  11. public function initialize() {
  12. parent::initialize();
  13. if(!$this->founder){
  14. $this->error('您无权限操作');
  15. }
  16. $this->cate = new GreenCategory();
  17. }
  18. /**
  19. * 列表
  20. */
  21. public function index(){
  22. $view['parent_id'] = $this->request->param('parent_id/d',0);
  23. $view['pathMaps'] = $this->cate->selectPath($view['parent_id']);
  24. $view['lists'] = $this->cate->where(['member_miniapp_id' => $this->member_miniapp_id,'parent_id' => $view['parent_id']])->order('sort desc,id desc')->paginate(20);
  25. return view()->assign($view);
  26. }
  27. /**
  28. * 添加
  29. */
  30. public function add(){
  31. if(request()->isAjax()){
  32. $data = [
  33. 'member_miniapp_id' => $this->member_miniapp_id,
  34. 'title' => $this->request->param('title/s'),
  35. 'name' => $this->request->param('name/s'),
  36. 'sort' => $this->request->param('sort/d'),
  37. 'parent_id' => $this->request->param('parent_id/d'),
  38. 'picture' => $this->request->param('picture/s'),
  39. 'price' => $this->request->param('price/s')
  40. ];
  41. $validate = $this->validate($data,'Category.add');
  42. if(true !== $validate){
  43. return enjson(0,$validate);
  44. }
  45. $result = $this->cate->edit($data);
  46. if($result){
  47. return enjson(200,'操作成功',['url'=>url('category/index',['parent_id' => $data['parent_id']])]);
  48. }else{
  49. return enjson(0,'删除失败');
  50. }
  51. }else{
  52. $view['parent_id'] = $this->request->param('parent_id/d',0);
  53. $view['pathMaps'] = $this->cate->selectPath($view['parent_id']);
  54. return view()->assign($view);
  55. }
  56. }
  57. //编辑
  58. public function edit(){
  59. if(request()->isAjax()){
  60. $data = [
  61. 'id' => $this->request->param('id/s'),
  62. 'title' => $this->request->param('title/s'),
  63. 'name' => $this->request->param('name/s'),
  64. 'sort' => $this->request->param('sort/d'),
  65. 'parent_id' => $this->request->param('parent_id/d'),
  66. 'picture' => $this->request->param('picture/s'),
  67. 'price' => $this->request->param('price/s')
  68. ];
  69. $validate = $this->validate($data,'Category.edit');
  70. if(true !== $validate){
  71. return enjson(0,$validate);
  72. }
  73. $result = $this->cate->edit($data);
  74. if($result){
  75. return enjson(200,'操作成功',['url'=>url('category/index',['parent_id' => $data['parent_id']])]);
  76. }else{
  77. return enjson(0,'删除失败');
  78. }
  79. }else{
  80. $view['info'] = $this->cate->where(['id' => $this->request->param('id/d'),'member_miniapp_id' => $this->member_miniapp_id])->find();
  81. if(empty($view['info'])){
  82. $this->error("404 NOT FOUND");
  83. }
  84. $view['pathMaps'] = $this->cate->selectPath($view['info']->parent_id);
  85. return $this->fetch()->assign($view);
  86. }
  87. }
  88. /**
  89. * 排序
  90. */
  91. public function sort(){
  92. if(request()->isAjax()){
  93. $data = [
  94. 'sort' => $this->request->param('sort/d'),
  95. 'id' => $this->request->param('id/d'),
  96. ];
  97. $validate = $this->validate($data,'Category.sort');
  98. if(true !== $validate){
  99. return enjson(0,$validate);
  100. }
  101. $result = $this->cate->save(['sort'=>$data['sort']],['id' => $data['id']]);
  102. if($result){
  103. return enjson(200,'操作成功');
  104. }else{
  105. return enjson(0,'删除失败');
  106. }
  107. }
  108. }
  109. //删除
  110. public function delete(int $id){
  111. $info = $this->cate->where(['parent_id' => $id])->find();
  112. if($info){
  113. return enjson(403,'删除失败,请查看是否包含子栏目');
  114. }
  115. $result = $this->cate->where(['id'=>$id,'member_miniapp_id' => $this->member_miniapp_id])->delete();
  116. if($result){
  117. return enjson(200,'操作成功');
  118. }else{
  119. return enjson(403,'删除失败,请查看是否包含子栏目');
  120. }
  121. }
  122. }