From 60865a5da7944e8b00653a89d98d7ceebe3a14fd Mon Sep 17 00:00:00 2001 From: lqmac Date: Wed, 29 May 2024 01:39:18 +0800 Subject: [PATCH] 1 --- app/admin/model/Store.php | 30 +++++++++++++++++++++++++++++ app/store/controller/Goods.php | 21 +++++++++++++++++++- app/store/controller/store/Role.php | 1 + app/store/model/store/Role.php | 5 ++++- 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/app/admin/model/Store.php b/app/admin/model/Store.php index 7c404040..3ae7de12 100644 --- a/app/admin/model/Store.php +++ b/app/admin/model/Store.php @@ -20,6 +20,8 @@ use app\common\model\User as UserModel; use think\facade\Db; use app\store\model\Category as CategoryModel; use app\common\model\UploadFile; +use app\store\model\store\Role as RoleModel; + /** * 商家记录表模型 * Class Store @@ -69,11 +71,39 @@ class Store extends StoreModel if ($user_id) { (new StoreUserModel)->where(['store_id' => $this['store_id']])->save(['user_id' => $user_id]); } + //复制商品分类 $this->copyCategory((int)$this['store_id']); + //多商户版本新增一个商户角色 + if (isset($data['store_version']) && $data['store_version'] == 1) { + $this->addMerchantRoleAndMenu((int)$this['store_id']); + } + } return $status; }); } + /** + * 新增一个多商户角色,不能删除 + * [addMerchantRoleAndMenu description] + * @param int $storeId [description] + */ + public function addMerchantRoleAndMenu(int $storeId){ + $data = [ + 'role_name' => '商户', + 'parent_id' => 0, + 'sort' => 100, + 'menus' => [ + 10034,10035,10204,10038,10036,10037,10141,10043,10044,10045, + 10046,10047,10048,10049,10243,10244,10246,10245,10050,10051, + 10052,10205,10054,10189,10055,10223,10139,10252,10056,10058, + 10059,10057,10201,10238,10241,10239,10240,10242,10202,10203, + 10206,10207,10208,10209,10213,10210,10211,10115 + ], + 'store_id' => $storeId + ]; + $model = new RoleModel; + $model->add($data); + } public function copyCategory(int $new_store_id){ $store_id = 0; $model = new CategoryModel; diff --git a/app/store/controller/Goods.php b/app/store/controller/Goods.php index d42db05c..ca47cd76 100644 --- a/app/store/controller/Goods.php +++ b/app/store/controller/Goods.php @@ -171,7 +171,26 @@ class Goods extends Controller } return $this->renderError($model->getError() ?: '更新失败'); } - + /** + * 商品入池、出池 + * @param array $goodsIds 商品id集 + * @param bool $state 为true表示上架 + * @return Json + */ + public function pool(array $goodsIds, bool $state): Json + { + $model = new GoodsModel; + //过滤其他渠道的商品,只能把自营商品加入商品池 + $list = GoodsModel::whereIn('goods_id', $goodsIds)->where('channel','zy')->select(); + if (!$list) { + return $this->renderError("没有需要加入商品池的自营商品"); + } + $goodsIds = array_column($list, "goods_id"); + if (!$model->setIsPool($goodsIds, $state)) { + return $this->renderError($model->getError() ?: '操作失败'); + } + return $this->renderSuccess('操作成功'); + } /** * 修改商品状态(上下架) * @param array $goodsIds 商品id集 diff --git a/app/store/controller/store/Role.php b/app/store/controller/store/Role.php index 23ac7e79..c4277279 100644 --- a/app/store/controller/store/Role.php +++ b/app/store/controller/store/Role.php @@ -63,6 +63,7 @@ class Role extends Controller { // 角色详情 $model = RoleModel::detail($roleId); + // 更新记录 if ($model->edit($this->postForm())) { return $this->renderSuccess('更新成功'); diff --git a/app/store/model/store/Role.php b/app/store/model/store/Role.php index dcca244d..09a97218 100644 --- a/app/store/model/store/Role.php +++ b/app/store/model/store/Role.php @@ -102,7 +102,10 @@ class Role extends RoleModel } $this->transaction(function () use ($data) { // 新增角色记录 - $data['store_id'] = self::$storeId; + if (!isset($data['store_id']) || !$data['store_id']) { + $data['store_id'] = self::$storeId; + } + $this->save($data); // 新增角色菜单关系记录 RoleMenuModel::increased((int)$this['role_id'], $data['menus']);