GoodsCategoryLogic.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeshop100%开源免费商用商城系统
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | 商业版本务必购买商业授权,以免引起法律纠纷
  8. // | 禁止对系统程序代码以任何目的,任何形式的再发布
  9. // | gitee下载:https://gitee.com/likeshop_gitee
  10. // | github下载:https://github.com/likeshop-github
  11. // | 访问官网:https://www.likeshop.cn
  12. // | 访问社区:https://home.likeshop.cn
  13. // | 访问手册:http://doc.likeshop.cn
  14. // | 微信公众号:likeshop技术社区
  15. // | likeshop团队 版权所有 拥有最终解释权
  16. // +----------------------------------------------------------------------
  17. // | author: likeshopTeam
  18. // +----------------------------------------------------------------------
  19. namespace app\adminapi\logic\goods;
  20. use app\common\enum\DefaultEnum;
  21. use app\common\enum\YesNoEnum;
  22. use app\common\model\GoodsCategory;
  23. class GoodsCategoryLogic
  24. {
  25. /**
  26. * @notes 添加商品分类
  27. * @param $params
  28. * @return bool
  29. * @author ljj
  30. * @date 2021/7/17 5:46 下午
  31. */
  32. public function add($params)
  33. {
  34. $goods_category = new GoodsCategory;
  35. $goods_category->name = $params['name'];
  36. $goods_category->pid = $params['pid'] ?? 0;
  37. $goods_category->level = isset($params['pid']) ? (GoodsCategory::where('id',$params['pid'])->value('level') + 1) : 1;
  38. $goods_category->image = $params['image'] ?? '';
  39. $goods_category->sort = (isset($params['sort']) && !empty($params['sort'])) ? $params['sort'] : DefaultEnum::SORT;
  40. $goods_category->is_show = $params['is_show'] ?? YesNoEnum::YES;
  41. $goods_category->is_recommend = $params['is_recommend'] ?? YesNoEnum::YES;
  42. return $goods_category->save();
  43. }
  44. /**
  45. * @notes 修改商品分类状态
  46. * @param $params
  47. * @return bool
  48. * @throws \think\db\exception\DataNotFoundException
  49. * @throws \think\db\exception\DbException
  50. * @throws \think\db\exception\ModelNotFoundException
  51. * @author ljj
  52. * @date 2021/7/19 11:55 上午
  53. */
  54. public function status($params)
  55. {
  56. $goods_category = GoodsCategory::find($params['id']);
  57. $goods_category->is_show = $params['is_show'];
  58. return $goods_category->save();
  59. }
  60. /**
  61. * @notes 删除商品分类
  62. * @param $params
  63. * @return bool
  64. * @author ljj
  65. * @date 2021/7/19 4:03 下午
  66. */
  67. public function del($params)
  68. {
  69. return GoodsCategory::destroy($params['id']);
  70. }
  71. /**
  72. * @notes 编辑商品分类
  73. * @param $params
  74. * @return bool
  75. * @throws \think\db\exception\DataNotFoundException
  76. * @throws \think\db\exception\DbException
  77. * @throws \think\db\exception\ModelNotFoundException
  78. * @author ljj
  79. * @date 2021/7/19 4:21 下午
  80. */
  81. public function edit($params)
  82. {
  83. $pid = $params['pid'] ?? 0;
  84. $level = ($pid > 0) ? (GoodsCategory::where('id',$pid)->value('level') + 1) : 1;
  85. //更新分类信息
  86. $goods_category = GoodsCategory::find($params['id']);
  87. $goods_category->name = $params['name'];
  88. $goods_category->pid = $pid;
  89. $goods_category->level = $level;
  90. $goods_category->image = $params['image'];
  91. $goods_category->sort = $params['sort'];
  92. $goods_category->is_show = $params['is_show'];
  93. $goods_category->is_recommend = $params['is_recommend'];
  94. $goods_category->save();
  95. //更新下级分类信息
  96. $goods_category_son = GoodsCategory::where('pid',$params['id'])->select()->toArray();
  97. if (empty($goods_category_son)) {
  98. return true;
  99. }
  100. foreach ($goods_category_son as $val) {
  101. $data[] = ['id'=>$val['id'],'level'=>$level+1];
  102. }
  103. $goods_category->saveAll($data);
  104. return true;
  105. }
  106. /**
  107. * @notes 查看商品分类详情
  108. * @param $params
  109. * @return array
  110. * @throws \think\db\exception\DataNotFoundException
  111. * @throws \think\db\exception\DbException
  112. * @throws \think\db\exception\ModelNotFoundException
  113. * @author ljj
  114. * @date 2021/7/19 4:36 下午
  115. */
  116. public function detail($params)
  117. {
  118. return GoodsCategory::find($params['id'])->toArray();
  119. }
  120. /**
  121. * @notes 获取完整的分类
  122. * @param array $ids 获取某个某个分类
  123. * @return array
  124. * @author cjhao
  125. * @date 2021/7/26 10:41
  126. */
  127. public static function getCategoryNameLists(array $ids = []):array
  128. {
  129. $where = [];
  130. if($ids){
  131. $where[] = ['C.id'=>$ids];
  132. }
  133. $list = GoodsCategory::alias('C')
  134. ->leftJoin('goods_category B','C.pid = B.id')
  135. ->leftJoin('goods_category A','B.pid = A.id')
  136. ->where($where)
  137. ->column('A.id as A_id,A.name as A_name,B.id as B_id,B.name as B_name,C.id as C_id,C.name as C_name,
  138. CONCAT_WS(\'/\',A.name,B.name,C.name) as category_name','C.id');
  139. return $list;
  140. }
  141. /**
  142. * @notes 获取完整分类名称
  143. * @param $id
  144. * @param bool $flag
  145. * @return mixed|string
  146. * @author Tab
  147. * @date 2021/7/23 12:42
  148. */
  149. public static function getCompleteName($id, $flag = true) {
  150. static $completeName = '';
  151. if($flag) {
  152. $completeName = GoodsCategory::where('id', $id)->value('name');
  153. }
  154. $pid = GoodsCategory::where('id', $id)->value('pid');
  155. if($pid) {
  156. $pidName = GoodsCategory::where('id', $pid)->value('name');
  157. $completeName = $pidName . '/' . $completeName;
  158. self::getCompleteName($pid, false);
  159. }
  160. return $completeName;
  161. }
  162. }