From b6d6437cc81e9a93a08a4430d134128974049fe7 Mon Sep 17 00:00:00 2001 From: gongfuxiang <2499232802@qq.com> Date: Tue, 26 Feb 2019 23:07:22 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9C=AA=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E4=B8=8D=E5=B1=95=E7=A4=BA=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../usernotloginhidegoodsprice/Hook.php | 70 ++++++++++++------- .../usernotloginhidegoodsprice/config.json | 5 +- application/service/GoodsService.php | 29 ++++++-- application/tags.php | 6 +- 4 files changed, 77 insertions(+), 33 deletions(-) diff --git a/application/plugins/usernotloginhidegoodsprice/Hook.php b/application/plugins/usernotloginhidegoodsprice/Hook.php index 092a559aa..bf0796372 100644 --- a/application/plugins/usernotloginhidegoodsprice/Hook.php +++ b/application/plugins/usernotloginhidegoodsprice/Hook.php @@ -85,32 +85,54 @@ class Hook extends Controller // 销售价 $price_placeholder = isset($ret['data']['price_placeholder']) ? $ret['data']['price_placeholder'] : ''; - // 商品原价 - if(isset($params['goods']['original_price'])) + switch($params['hook_name']) { - $params['goods']['original_price'] = $original_price_placeholder; - } - if(isset($params['goods']['min_original_price'])) - { - $params['goods']['min_original_price'] = $original_price_placeholder; - } - if(isset($params['goods']['max_original_price'])) - { - $params['goods']['max_original_price'] = $original_price_placeholder; - } + // 商品数据处理前 + case 'plugins_service_goods_handle_end' : + // 商品原价 + if(isset($params['goods']['original_price'])) + { + $params['goods']['original_price'] = $original_price_placeholder; + } + if(isset($params['goods']['min_original_price'])) + { + $params['goods']['min_original_price'] = $original_price_placeholder; + } + if(isset($params['goods']['max_original_price'])) + { + $params['goods']['max_original_price'] = $original_price_placeholder; + } - // 销售价 - if(isset($params['goods']['price'])) - { - $params['goods']['price'] = $price_placeholder; - } - if(isset($params['goods']['min_price'])) - { - $params['goods']['min_price'] = $price_placeholder; - } - if(isset($params['goods']['max_price'])) - { - $params['goods']['max_price'] = $price_placeholder; + // 销售价 + if(isset($params['goods']['price'])) + { + $params['goods']['price'] = $price_placeholder; + } + if(isset($params['goods']['min_price'])) + { + $params['goods']['min_price'] = $price_placeholder; + } + if(isset($params['goods']['max_price'])) + { + $params['goods']['max_price'] = $price_placeholder; + } + break; + + // 商品规格基础数据 + case 'plugins_service_goods_spec_base' : + if(isset($params['spec_base']['original_price'])) + { + $params['spec_base']['original_price'] = $original_price_placeholder; + } + if(isset($params['spec_base']['price'])) + { + $params['spec_base']['price'] = $price_placeholder; + } + break; + + // 默认 + default : + return DataReturn('无需处理', 0); } return DataReturn('处理成功', 0); diff --git a/application/plugins/usernotloginhidegoodsprice/config.json b/application/plugins/usernotloginhidegoodsprice/config.json index 32a8a9cc2..6ea5de002 100644 --- a/application/plugins/usernotloginhidegoodsprice/config.json +++ b/application/plugins/usernotloginhidegoodsprice/config.json @@ -21,7 +21,10 @@ "is_home":false }, "hook":{ - "plugins_service_goods_handle_begin":[ + "plugins_service_goods_handle_end":[ + "app\\plugins\\usernotloginhidegoodsprice\\Hook" + ], + "plugins_service_goods_spec_base":[ "app\\plugins\\usernotloginhidegoodsprice\\Hook" ] } diff --git a/application/service/GoodsService.php b/application/service/GoodsService.php index 84f835c60..6639761a0 100755 --- a/application/service/GoodsService.php +++ b/application/service/GoodsService.php @@ -1802,22 +1802,37 @@ class GoodsService if(!empty($base_id)) { $base = Db::name('GoodsSpecBase')->find($base_id); - $base['weight'] = PriceBeautify($base['weight']); - if(!empty($base)) - { - return DataReturn('操作成功', 0, $base); - } } } } } else { $base = Db::name('GoodsSpecBase')->where($where)->find(); + } + + // 是否有规格 + if(!empty($base)) + { + // 单位 .00 处理 $base['weight'] = PriceBeautify($base['weight']); - if(!empty($base)) + + // 商品处理前钩子 + $hook_name = 'plugins_service_goods_spec_base'; + $ret = Hook::listen($hook_name, [ + 'hook_name' => $hook_name, + 'is_backend' => true, + 'params' => &$params, + 'spec_base' => &$base, + 'goods_id' => $goods_id + ]); + if(isset($ret['code']) && $ret['code'] != 0) { - return DataReturn('操作成功', 0, $base); + return $ret; } + + // 返回成功 + return DataReturn('操作成功', 0, $base); } + return DataReturn('没有相关规格', -100); } diff --git a/application/tags.php b/application/tags.php index 634345bd2..37531d749 100755 --- a/application/tags.php +++ b/application/tags.php @@ -60,7 +60,11 @@ return array ( 0 => 'app\\plugins\\commonrightnavigation\\Hook', 1 => 'app\\plugins\\commononlineservice\\Hook', ), - 'plugins_service_goods_handle_begin' => + 'plugins_service_goods_handle_end' => + array ( + 0 => 'app\\plugins\\usernotloginhidegoodsprice\\Hook', + ), + 'plugins_service_goods_spec_base' => array ( 0 => 'app\\plugins\\usernotloginhidegoodsprice\\Hook', ), -- GitLab