| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- <?php
- namespace hd\controllers;
- use bizHd\goods\classes\CategoryClass;
- use bizHd\goods\classes\GoodsCategoryClass;
- use bizHd\goods\services\CategoryService;
- use Yii;
- use common\components\util;
- class CategoryController extends BaseController
- {
- public function actionGetMenu()
- {
- $mainId = $this->mainId;
- $classInfo = CategoryClass::getMenuList($mainId);
- $index = [];
- if (!empty($classInfo)) {
- foreach ($classInfo as $class) {
- $id = $class['id'] ?? 0;
- $index[$id] = $class;
- }
- }
- util::success(['class' => $classInfo, 'classIndex' => $index]);
- }
- public function actionGetAllCategory()
- {
- $where = ['mainId' => $this->mainId, 'delStatus' => 0];
- $list = CategoryClass::getAllByCondition($where, 'inTurn desc', '*');
- util::success(['list' => $list]);
- }
- //分类列表
- public function actionList()
- {
- $get = Yii::$app->request->get();
- $list = CategoryService::getCategoryList($this->mainId);
- util::success($list);
- }
- //查看详情 ssh 2019.12.8
- public function actionDetail()
- {
- $id = Yii::$app->request->get('categoryId', 0);
- $category = CategoryService::getById($id);
- CategoryService::valid($category, $this->mainId);
- $info = CategoryService::getInfo($id);
- util::success($info);
- }
- //添加分类 ssh 2019.12.8
- public function actionAdd()
- {
- $post = Yii::$app->request->post();
- $post['sjId'] = $this->sjId;
- $post['mainId'] = $this->mainId;
- $cat = CategoryService::addCategory($post);
- util::success(['id' => $cat['id']]);
- }
- //更新分类 ssh 20220404
- public function actionUpdate()
- {
- $post = Yii::$app->request->post();
- $categoryId = isset($post['categoryId']) ? $post['categoryId'] : 0;
- $category = CategoryService::getById($categoryId);
- CategoryService::valid($category, $this->mainId);
- CategoryService::updateCategory($category, $post);
- util::complete('修改成功');
- }
- //分类启用停用 ssh 2019.12.8
- public function actionChangeStatus()
- {
- $get = Yii::$app->request->get();
- $categoryId = isset($get['categoryId']) ? $get['categoryId'] : 0;
- $status = isset($get['status']) ? $get['status'] : 0;
- $category = CategoryService::getById($categoryId);
- CategoryService::valid($category, $this->mainId);
- CategoryService::changeStatus($categoryId, $status);
- util::complete();
- }
- //删除分类 ssh 2019.12.28
- public function actionDelete()
- {
- $get = Yii::$app->request->get();
- $categoryId = isset($get['categoryId']) ? $get['categoryId'] : 0;
- $category = CategoryClass::getById($categoryId);
- util::validMainId($category, $this->mainId);
- if ($category['goodsNum'] > 0) {
- $goodsCateObjs = GoodsCategoryClass::getAllByCondition(['mainId' => $this->mainId, 'cId' => $categoryId]);
- //检查是否有默认分类,没有默认分类创建一个
- $defaultCategory = CategoryClass::getByCondition(['mainId' => $this->mainId, 'default' => 1]);
- if ($defaultCategory == null) {
- $data = [
- 'mainId' => $this->mainId,
- 'sjId' => $this->sjId,
- 'categoryName' => '默认分类',
- 'default' => 1
- ];
- $defaultCategory = CategoryClass::addCategory($data);
- }
- $defaultCategoryId = $defaultCategory['id'];
- foreach ($goodsCateObjs as $gcObj) {
- // 先判断商品是否也在其它分类下
- $goodsOtherCateCount = GoodsCategoryClass::getCount(['mainId' => $this->mainId, 'gId' => $gcObj['gId']]);
- if ($goodsOtherCateCount == 1) {
- // 如果商品仅在此分类下,则归到默认分类
- GoodsCategoryClass::updateById($gcObj['id'], ['cId' => $defaultCategoryId]);
- } else {
- // 如果商品还在其它分类下,则直接删除此商品的当前分类
- GoodsCategoryClass::deleteById($gcObj['id']);
- }
- }
- }
- $count = CategoryClass::deleteCategory($categoryId);
- // if (!$count) {
- // util::fail('删除失败');
- // }
- util::complete('删除成功');
- }
- //取分类下商品 ssh 20220406
- public function actionGoodsList()
- {
- $get = Yii::$app->request->get();
- $shop = $this->shop;
- $custom = $this->custom;
- $data = GoodsCategoryClass::getGoodsList($get, $shop, $custom);
- util::success($data);
- }
- //分类排序
- public function actionSort()
- {
- $post = Yii::$app->request->post();
- $items = $post['items'];
- //验证商品
- // 提取所有商品ID
- $categoryIds = array_map(function ($item) {
- return intval($item['id']);
- }, $items);
- // 批量获取商品信息
- $goodsInfos = CategoryClass::getByIds($categoryIds);
- // 批量验证商品
- foreach ($goodsInfos as $info) {
- CategoryService::valid($info, $this->mainId);
- }
- // 更新商品排序
- foreach ($items as $item) {
- $id = intval($item['id']);
- $inTurn = intval($item['inTurn']);
- CategoryClass::updateById($id, ['inTurn' => $inTurn]);
- }
- util::complete('排序成功');
- }
- //获取分类 ssh 2019.12.2
- public function actionMallList()
- {
- $return = CategoryService::getEnableList($this->sjId);
- util::success($return);
- }
- }
|