Goodscategory.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com.cn
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace app\admin\controller;
  13. use app\model\goods\GoodsAttribute as GoodsAttributeModel;
  14. use app\model\goods\GoodsCategory as GoodsCategoryModel;
  15. /**
  16. * 商品分类管理 控制器
  17. */
  18. class Goodscategory extends BaseAdmin
  19. {
  20. /**
  21. * 商品分类列表
  22. */
  23. public function lists()
  24. {
  25. $goods_category_model = new GoodsCategoryModel();
  26. $list = $goods_category_model->getCategoryTree();
  27. $list = $list['data'];
  28. $this->assign("list", $list);
  29. return $this->fetch('goodscategory/lists');
  30. }
  31. /**
  32. * 商品分类添加
  33. */
  34. public function addCategory()
  35. {
  36. $goods_category_model = new GoodsCategoryModel();
  37. if (request()->isAjax()) {
  38. $category_name = input('category_name', '');// 分类名称
  39. $short_name = input('short_name', '');// 简称
  40. $pid = input('pid', 0);//默认添加的商品分类为顶级
  41. $level = input('level', 1);// 层级
  42. $is_show = input('is_show', '');// 是否显示
  43. $sort = input('sort', '');// 排序
  44. $image = input('image', '');// 分类图片
  45. $image_adv = input('image_adv', '');// 分类广告图片
  46. $keywords = input('keywords', '');// 分类页面关键字
  47. $description = input('description', '');// 分类介绍
  48. $attr_class_id = input('attr_class_id', '');// 关联商品类型id
  49. $attr_class_name = input('attr_class_name', '');// 关联商品类型名称
  50. $commission_rate = input('commission_rate', '');// 佣金比率%
  51. $category_id_1 = input('category_id_1', 0);// 一级分类id
  52. $category_id_2 = input('category_id_2', 0);// 二级分类id
  53. $category_full_name = input('category_full_name', '');;// 组装名称
  54. $data = [
  55. 'category_name' => $category_name,
  56. 'short_name' => $short_name,
  57. 'pid' => $pid,
  58. 'level' => $level,
  59. 'is_show' => $is_show,
  60. 'sort' => $sort,
  61. 'image' => $image,
  62. 'image_adv' => $image_adv,
  63. 'keywords' => $keywords,
  64. 'description' => $description,
  65. 'attr_class_id' => $attr_class_id,
  66. 'attr_class_name' => $attr_class_name,
  67. 'commission_rate' => $commission_rate,
  68. 'category_id_1' => $category_id_1,
  69. 'category_id_2' => $category_id_2,
  70. 'category_full_name' => $category_full_name
  71. ];
  72. $res = $goods_category_model->addCategory($data);
  73. $this->addLog("添加商品分类:".$category_name);
  74. if (!empty($res['data'])) {
  75. //修改category_id_
  76. $update_data = [
  77. 'category_id' => $res['data'],
  78. 'category_id_' . $level => $res['data']
  79. ];
  80. $goods_category_model->editCategory($update_data);
  81. }
  82. return $res;
  83. } else {
  84. $goods_attribute_model = new GoodsAttributeModel();
  85. // 商品类型列表
  86. $attr_class_list = $goods_attribute_model->getAttrClassList([], 'class_id,class_name');
  87. $attr_class_list = $attr_class_list['data'];
  88. $this->assign("attr_class_list", $attr_class_list);
  89. return $this->fetch('goodscategory/add_category');
  90. }
  91. }
  92. /**
  93. * 商品分类编辑
  94. */
  95. public function editCategory()
  96. {
  97. $goods_category_model = new GoodsCategoryModel();
  98. if (request()->isAjax()) {
  99. $category_id = input('category_id', '');// 分类id
  100. $category_name = input('category_name', '');// 分类名称
  101. $short_name = input('short_name', '');// 简称
  102. $pid = input('pid', 0);//默认添加的商品分类为顶级
  103. $level = input('level', 1);// 层级
  104. $is_show = input('is_show', '');// 是否显示
  105. $sort = input('sort', '');// 排序
  106. $image = input('image', '');// 分类图片
  107. $image_adv = input('image_adv', '');// 分类广告图片
  108. $keywords = input('keywords', '');// 分类页面关键字
  109. $description = input('description', '');// 分类介绍
  110. $attr_class_id = input('attr_class_id', '');// 关联商品类型id
  111. $attr_class_name = input('attr_class_name', '');// 关联商品类型名称
  112. $commission_rate = input('commission_rate', '');// 佣金比率%
  113. $category_id_1 = input('category_id_1', 0);// 一级分类id
  114. $category_id_2 = input('category_id_2', 0);// 二级分类id
  115. $category_id_3 = input('category_id_3', 0);// 三级分类id
  116. $category_full_name = input('category_full_name', '');;// 组装名称
  117. $data = [
  118. 'category_id' => $category_id,
  119. 'category_name' => $category_name,
  120. 'short_name' => $short_name,
  121. 'pid' => $pid,
  122. 'level' => $level,
  123. 'is_show' => $is_show,
  124. 'sort' => $sort,
  125. 'image' => $image,
  126. 'image_adv' => $image_adv,
  127. 'keywords' => $keywords,
  128. 'description' => $description,
  129. 'attr_class_id' => $attr_class_id,
  130. 'attr_class_name' => $attr_class_name,
  131. 'commission_rate' => $commission_rate,
  132. 'category_id_1' => $category_id_1,
  133. 'category_id_2' => $category_id_2,
  134. 'category_id_3' => $category_id_3,
  135. 'category_full_name' => $category_full_name
  136. ];
  137. $this->addLog("编辑商品分类:".$category_name);
  138. $res = $goods_category_model->editCategory($data);
  139. return $res;
  140. } else {
  141. $category_id = input('category_id', '');// 分类id
  142. if (empty($category_id)) {
  143. $this->error("缺少参数category_id");
  144. }
  145. $goods_category_info = $goods_category_model->getCategoryInfo([ [ 'category_id', '=', $category_id ] ]);
  146. $goods_category_info = $goods_category_info['data'];
  147. $this->assign("goods_category_info", $goods_category_info);
  148. //父级
  149. $goods_category_parent_info = $goods_category_model->getCategoryInfo([ [ 'category_id', '=', $goods_category_info['pid'] ] ], 'category_name');
  150. $goods_category_parent_info = $goods_category_parent_info['data'];
  151. $this->assign("goods_category_parent_info", $goods_category_parent_info);
  152. $goods_attribute_model = new GoodsAttributeModel();
  153. // 商品类型列表
  154. $attr_class_list = $goods_attribute_model->getAttrClassList([], 'class_id,class_name');
  155. $attr_class_list = $attr_class_list['data'];
  156. $this->assign("attr_class_list", $attr_class_list);
  157. return $this->fetch('goodscategory/edit_category');
  158. }
  159. }
  160. /**
  161. * 商品分类删除
  162. */
  163. public function deleteCategory()
  164. {
  165. if (request()->isAjax()) {
  166. $category_id = input('category_id', '');// 分类id
  167. $goods_category_model = new GoodsCategoryModel();
  168. $res = $goods_category_model->deleteCategory($category_id);
  169. $this->addLog("删除商品分类id:".$category_id);
  170. return $res;
  171. }
  172. }
  173. /**
  174. * 获取商品分类列表
  175. * @return \multitype
  176. */
  177. public function getCategoryList()
  178. {
  179. $pid = input('pid', 0);// 上级id
  180. $level = input('level', 0);// 层级
  181. $goods_category_model = new GoodsCategoryModel();
  182. if (!empty($level)) {
  183. $condition = [
  184. [ 'level', '=', $level ]
  185. ];
  186. } else {
  187. $condition = [
  188. [ 'pid', '=', $pid ]
  189. ];
  190. }
  191. $list = $goods_category_list = $goods_category_model->getCategoryList($condition, 'category_id,category_name,pid,level,category_id_1,category_id_2,category_id_3');
  192. return $list;
  193. }
  194. /**
  195. * 获取商品分类信息
  196. * @return \multitype
  197. */
  198. public function getCategoryInfo()
  199. {
  200. $category_id = input('category_id', '');// 分类id
  201. $goods_category_model = new GoodsCategoryModel();
  202. $condition = [
  203. [ 'category_id', '=', $category_id ]
  204. ];
  205. $res = $goods_category_model->getCategoryInfo($condition, 'category_name');
  206. return $res;
  207. }
  208. /**
  209. * 获取商品分类
  210. * @return \multitype
  211. */
  212. public function getCategoryByParent()
  213. {
  214. $pid = input('pid', 0);// 上级id
  215. $level = input('level', 0);// 层级
  216. $goods_category_model = new GoodsCategoryModel();
  217. if (!empty($level)) {
  218. $condition = [
  219. [ 'level', '=', $level ]
  220. ];
  221. }
  222. if(!empty($pid)){
  223. $condition = [
  224. [ 'pid', '=', $pid ]
  225. ];
  226. }
  227. $list = $goods_category_list = $goods_category_model->getCategoryByParent($condition, 'category_id,category_name,pid,level,category_id_1,category_id_2,category_id_3');
  228. return $list;
  229. }
  230. /**
  231. * 修改商品分类排序
  232. */
  233. public function modifySort()
  234. {
  235. if (request()->isAjax()) {
  236. $sort = input('sort', 0);
  237. $category_id = input('category_id', 0);
  238. $goods_category_model = new GoodsCategoryModel();
  239. return $goods_category_model->modifyGoodsCategorySort($sort, $category_id);
  240. }
  241. }
  242. }