Goodscategory.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace app\api\controller;
  3. use app\model\goods\GoodsCategory as GoodsCategoryModel;
  4. /**
  5. * 商品分类
  6. * Class Goodscategory
  7. * @package app\api\controller
  8. */
  9. class Goodscategory extends BaseApi
  10. {
  11. /**
  12. * 树状结构信息
  13. */
  14. public function tree()
  15. {
  16. $level = isset($this->params[ 'level' ]) ? $this->params[ 'level' ] : 3;// 分类等级 1 2 3
  17. $goods_category_model = new GoodsCategoryModel();
  18. $condition = [
  19. [ 'is_show', '=', 0 ],
  20. [ 'level', '<=', $level ],
  21. [ 'site_id', '=', $this->site_id ]
  22. ];
  23. $field = "category_id,category_name,short_name,pid,level,image,category_id_1,category_id_2,category_id_3,image_adv,link_url,is_recommend,icon";
  24. $order = "sort asc,category_id desc";
  25. $list = $goods_category_model->getCategoryTree($condition, $field, $order);
  26. return $this->response($list);
  27. }
  28. public function info()
  29. {
  30. $category_id = $this->params[ 'category_id' ] ?? 0;
  31. $goods_category_model = new GoodsCategoryModel();
  32. $res = $goods_category_model->getCategoryInfo([ [ 'category_id', '=', $category_id ], [ 'site_id', '=', $this->site_id ] ]);
  33. if (!empty($res[ 'data' ])) {
  34. $category_ids = [ $res[ 'data' ][ 'category_id_1' ], $res[ 'data' ][ 'category_id_2' ], $res[ 'data' ][ 'category_id_3' ] ];
  35. $category_list = $goods_category_model->getCategoryList([
  36. [ 'site_id', '=', $this->site_id ],
  37. [ 'is_show', '=', 0 ],
  38. [ 'category_id', 'in', $category_ids ]
  39. ], 'category_id,category_name')[ 'data' ];
  40. $res[ 'data' ][ 'category_full_name' ] = implode('$_SPLIT_$', array_column($category_list, 'category_name'));
  41. $child_list = $goods_category_model->getCategoryList([ [ 'pid', '=', $category_id ], [ 'site_id', '=', $this->site_id ], [ 'is_show', '=', 0 ] ], 'category_id,category_name,short_name,pid,level,is_show,sort,image,attr_class_id,attr_class_name,category_id_1,category_id_2,category_id_3,commission_rate,image_adv,is_recommend,icon', 'sort asc,category_id desc')[ 'data' ];
  42. if (!empty($child_list)) {
  43. // 下级商品分类
  44. $res[ 'data' ][ 'child_list' ] = $child_list;
  45. } else {
  46. // 查询上级商品分类
  47. $child_list = $goods_category_model->getCategoryList([ [ 'pid', '=', $res[ 'data' ][ 'pid' ] ], [ 'site_id', '=', $this->site_id ], [ 'is_show', '=', 0 ] ], 'category_id,category_name,short_name,pid,level,is_show,sort,image,attr_class_id,attr_class_name,category_id_1,category_id_2,category_id_3,commission_rate,image_adv,is_recommend,icon', 'sort asc,category_id desc')[ 'data' ];
  48. $res[ 'data' ][ 'child_list' ] = $child_list;
  49. }
  50. }
  51. return $this->response($res);
  52. }
  53. public function lists()
  54. {
  55. $level = isset($this->params[ 'level' ]) ? $this->params[ 'level' ] : 1;// 分类等级 1 2 3
  56. $goods_category_model = new GoodsCategoryModel();
  57. $condition = [
  58. [ 'is_show', '=', 0 ],
  59. [ 'level', '<=', $level ],
  60. [ 'site_id', '=', $this->site_id ]
  61. ];
  62. $field = "category_id,category_name,short_name,pid,level,image,category_id_1,category_id_2,category_id_3,image_adv,link_url,is_recommend,icon";
  63. $order = "sort asc,category_id desc";
  64. $res = $goods_category_model->getCategoryList($condition, $field, $order);
  65. return $this->response($res);
  66. }
  67. }