GoodsLabel.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\goods;
  11. use think\facade\Cache;
  12. use app\model\BaseModel;
  13. /**
  14. * 商品分组
  15. */
  16. class GoodsLabel extends BaseModel
  17. {
  18. /**
  19. * 添加商品分组
  20. * @param array $data
  21. */
  22. public function addLabel($data)
  23. {
  24. $site_id = isset($data[ 'site_id' ]) ? $data[ 'site_id' ] : '';
  25. if ($site_id === '') {
  26. return $this->error('', 'REQUEST_SITE_ID');
  27. }
  28. $data[ 'create_time' ] = time();
  29. $label_id = model('goods_label')->add($data);
  30. Cache::tag("goods_label_" . $site_id)->clear();
  31. return $this->success($label_id);
  32. }
  33. /**
  34. * 修改商品分组
  35. * @param array $data
  36. */
  37. public function editLabel($data)
  38. {
  39. $site_id = isset($data[ 'site_id' ]) ? $data[ 'site_id' ] : '';
  40. if ($site_id === '') {
  41. return $this->error('', 'REQUEST_SITE_ID');
  42. }
  43. $label_info = model('goods_label')->getInfo([ [ 'id', '=', $data[ 'id' ] ] ], 'label_name');
  44. if (empty($label_info)) {
  45. return $this->error(null, '编辑条件有误');
  46. }
  47. //分组名称修改同步修改商品表字段
  48. if ($label_info[ 'label_name' ] != $data[ 'label_name' ]) {
  49. model('goods')->update([ 'label_name' => $data[ 'label_name' ] ], [ [ 'label_id', '=', $data[ 'id' ] ] ]);
  50. }
  51. $data[ 'update_time' ] = time();
  52. $res = model('goods_label')->update($data, [ [ 'id', '=', $data[ 'id' ] ], [ 'site_id', '=', $data[ 'site_id' ] ] ]);
  53. Cache::tag("goods_label_" . $site_id)->clear();
  54. return $this->success($res);
  55. }
  56. /**
  57. * 删除商品分组
  58. * @param array $condition
  59. */
  60. public function deleteLabel($condition)
  61. {
  62. $check_condition = array_column($condition, 2, 0);
  63. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  64. if ($site_id === '') {
  65. return $this->error('', 'REQUEST_SITE_ID');
  66. }
  67. $res = model('goods_label')->delete($condition);
  68. Cache::tag("goods_label_" . $site_id)->clear();
  69. return $this->success($res);
  70. }
  71. /**
  72. * 修改排序
  73. * @param $sort
  74. * @param $id
  75. * @param $site_id
  76. * @return array
  77. */
  78. public function modifySort($sort, $id, $site_id)
  79. {
  80. $site_id = isset($site_id) ? $site_id : '';
  81. if ($site_id === '') {
  82. return $this->error('', 'REQUEST_SITE_ID');
  83. }
  84. $res = model('goods_label')->update([ 'sort' => $sort ], [ [ 'id', '=', $id ], [ 'site_id', '=', $site_id ] ]);
  85. Cache::tag("goods_label_" . $site_id)->clear();
  86. return $this->success($res);
  87. }
  88. /**
  89. * 获取商品分组信息
  90. * @param array $condition
  91. * @param string $field
  92. * @return array
  93. */
  94. public function getLabelInfo($condition = [], $field = '*')
  95. {
  96. $check_condition = array_column($condition, 2, 0);
  97. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  98. if ($site_id === '') {
  99. return $this->error('', 'REQUEST_SITE_ID');
  100. }
  101. $data = json_encode([ $condition, $field ]);
  102. $cache = Cache::get("goods_label_getLabelInfo_" . $site_id . "_" . $data);
  103. if (!empty($cache)) {
  104. return $this->success($cache);
  105. }
  106. $list = model('goods_label')->getInfo($condition, $field);
  107. Cache::tag("goods_label_" . $site_id)->set("goods_label_getLabelInfo_" . $site_id . "_" . $data, $list);
  108. return $this->success($list);
  109. }
  110. /**
  111. * 获取商品分组列表
  112. * @param array $condition
  113. * @param string $field
  114. * @param string $order
  115. * @param string $limit
  116. */
  117. public function getLabelList($condition = [], $field = '*', $order = '', $limit = null)
  118. {
  119. $check_condition = array_column($condition, 2, 0);
  120. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  121. if ($site_id === '') {
  122. return $this->error('', 'REQUEST_SITE_ID');
  123. }
  124. $data = json_encode([ $condition, $field, $order, $limit ]);
  125. $cache = Cache::get("goods_label_getList_" . $site_id . "_" . $data);
  126. if (!empty($cache)) {
  127. return $this->success($cache);
  128. }
  129. $list = model('goods_label')->getList($condition, $field, $order, '', '', '', $limit);
  130. Cache::tag("goods_label_" . $site_id)->set("goods_label_getList_" . $site_id . "_" . $data, $list);
  131. return $this->success($list);
  132. }
  133. /**
  134. * 获取商品分组分页列表
  135. * @param array $condition
  136. * @param number $page
  137. * @param string $page_size
  138. * @param string $order
  139. * @param string $field
  140. */
  141. public function getLabelPageList($condition = [], $page = 1, $page_size = PAGE_LIST_ROWS, $order = 'sort asc', $field = '*')
  142. {
  143. $check_condition = array_column($condition, 2, 0);
  144. $site_id = isset($check_condition[ 'site_id' ]) ? $check_condition[ 'site_id' ] : '';
  145. if ($site_id === '') {
  146. return $this->error('', 'REQUEST_SITE_ID');
  147. }
  148. $data = json_encode([ $condition, $field, $order, $page, $page_size ]);
  149. $cache = Cache::get("goods_label_getPageList_" . $site_id . "_" . $data);
  150. if (!empty($cache)) {
  151. return $this->success($cache);
  152. }
  153. $list = model('goods_label')->pageList($condition, $field, $order, $page, $page_size);
  154. Cache::tag("goods_label_" . $site_id)->set("goods_label_getPageList_" . $site_id . "_" . $data, $list);
  155. return $this->success($list);
  156. }
  157. }