diff --git a/application/admin/view/default/appmini/config.html b/application/admin/view/default/appmini/config.html
index 582223213..5e6adf861 100755
--- a/application/admin/view/default/appmini/config.html
+++ b/application/admin/view/default/appmini/config.html
@@ -41,6 +41,14 @@
+
+
+
+
-
-
-
-
-
{{/case}}
diff --git a/application/index/view/default/buy/index.html b/application/index/view/default/buy/index.html
index 63f5c3d1f..faed0c407 100755
--- a/application/index/view/default/buy/index.html
+++ b/application/index/view/default/buy/index.html
@@ -363,7 +363,7 @@
{{/if}}
{{php}}
$hook_name = 'plugins_view_buy_group_goods_inside_bottom';
- $hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>false, 'data'=>$v]);
+ $hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>false, 'data'=>$v, 'params'=>$params]);
if(!empty($hook_data) && is_array($hook_data))
{
foreach($hook_data as $hook)
diff --git a/application/service/BuyService.php b/application/service/BuyService.php
index fb876d953..fe19e5381 100755
--- a/application/service/BuyService.php
+++ b/application/service/BuyService.php
@@ -18,6 +18,7 @@ use app\service\ResourcesService;
use app\service\PaymentService;
use app\service\ConfigService;
use app\service\OrderSplitService;
+use app\service\WarehouseGoodsService;
/**
* 购买服务层
@@ -997,7 +998,6 @@ class BuyService
return $buy;
}
-
// 用户留言
$user_note = empty($params['user_note']) ? '' : str_replace(['"', "'"], '', strip_tags($params['user_note']));
@@ -1085,10 +1085,10 @@ class BuyService
$order_id = Db::name('Order')->insertGetId($order);
if($order_id > 0)
{
- foreach($v['goods_items'] as $k=>$v)
+ foreach($v['goods_items'] as $k=>$vs)
{
// 添加订单详情数据,data返回自增id
- $detail_ret = self::OrderDetailInsert($order_id, $params['user']['id'], $v);
+ $detail_ret = self::OrderDetailInsert($order_id, $params['user']['id'], $vs);
if($detail_ret['code'] == 0)
{
$v['goods_items'][$k]['id'] = $detail_ret['data'];
@@ -1100,7 +1100,7 @@ class BuyService
// 订单模式 - 虚拟信息添加
if($site_model == 3)
{
- $ret = self::OrderFictitiousValueInsert($order_id, $detail_ret['data'], $params['user']['id'], $v['goods_id']);
+ $ret = self::OrderFictitiousValueInsert($order_id, $detail_ret['data'], $params['user']['id'], $vs['goods_id']);
if($ret['code'] != 0)
{
Db::rollback();
@@ -1683,6 +1683,13 @@ class BuyService
return $base;
}
+ // 仓库库存扣除
+ $we_ret = WarehouseGoodsService::WarehouseGoodsInventoryDeduct($params['order_id'], $v['goods_id'], $spec, $v['buy_number']);
+ if($we_ret['code'] != 0)
+ {
+ return $we_ret;
+ }
+
// 扣除日志添加
$log_data = [
'order_id' => $params['order_id'],
diff --git a/application/service/WarehouseGoodsService.php b/application/service/WarehouseGoodsService.php
index d38e72084..1c7b0557b 100644
--- a/application/service/WarehouseGoodsService.php
+++ b/application/service/WarehouseGoodsService.php
@@ -799,5 +799,53 @@ class WarehouseGoodsService
];
return (int) Db::name('WarehouseGoodsSpec')->where($where)->sum('inventory');
}
+
+ /**
+ * 仓库库存扣减
+ * @author Devil
+ * @blog http://gong.gg/
+ * @version 1.0.0
+ * @date 2020-08-02
+ * @desc description
+ * @param [int] $order_id [订单id]
+ * @param [int] $goods_id [商品id]
+ * @param [string] $spec [商品规格]
+ * @param [int] $buy_number [扣除库存数量]
+ */
+ public static function WarehouseGoodsInventoryDeduct($order_id, $goods_id, $spec, $buy_number)
+ {
+ // 获取仓库id
+ $warehouse_id = Db::name('Order')->where(['id'=>$order_id])->value('warehouse_id');
+ if(empty($warehouse_id))
+ {
+ return DataReturn('订单仓库id有误', -1);
+ }
+
+ // 规格key,空则默认default
+ $md5_key = 'default';
+ if(!empty($spec))
+ {
+ if(!is_array($spec))
+ {
+ $spec = json_decode($spec, true);
+ }
+ $md5_key = implode('', array_column($spec, 'value'));
+ }
+ $md5_key = md5($md5_key);
+
+ // 扣除仓库商品规格库存
+ if(!Db::name('WarehouseGoodsSpec')->where(['warehouse_id'=>$warehouse_id, 'goods_id'=>$goods_id, 'md5_key'=>$md5_key])->setDec('inventory', $buy_number))
+ {
+ return DataReturn('仓库商品规格库存扣减失败['.$warehouse_id.'-'.$goods_id.'('.$buy_number.')]', -11);
+ }
+
+ // 扣除仓库商品库存
+ if(!Db::name('WarehouseGoods')->where(['warehouse_id'=>$warehouse_id, 'goods_id'=>$goods_id])->setDec('inventory', $buy_number))
+ {
+ return DataReturn('仓库商品库存扣减失败['.$warehouse_id.'-'.$goods_id.'('.$buy_number.')]', -12);
+ }
+
+ return DataReturn('扣除成功', 0);
+ }
}
?>
\ No newline at end of file
diff --git a/application/tags.php b/application/tags.php
index 5acd21108..69e7bdc3f 100755
--- a/application/tags.php
+++ b/application/tags.php
@@ -34,12 +34,65 @@ return array (
),
'plugins_css' =>
array (
- 0 => 'app\\plugins\\freightfee\\Hook',
+ 0 => 'app\\plugins\\distribution\\Hook',
+ 1 => 'app\\plugins\\freightfee\\Hook',
+ 2 => 'app\\plugins\\coupon\\Hook',
+ ),
+ 'plugins_service_users_center_left_menu_handle' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
1 => 'app\\plugins\\coupon\\Hook',
),
+ 'plugins_service_header_navigation_top_right_handle' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ 1 => 'app\\plugins\\coupon\\Hook',
+ ),
+ 'plugins_service_order_status_change_history_success_handle' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ 1 => 'app\\plugins\\coupon\\Hook',
+ ),
+ 'plugins_service_order_aftersale_audit_handle_end' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_service_site_extraction_address_list' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_service_buy_order_insert_end' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_service_goods_spec_extends_handle' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_view_admin_user_save' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_service_user_save_handle' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_view_goods_detail_base_buy_nav_min_inside' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_view_goods_detail_photo_within' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
+ 'plugins_view_goods_detail_base_bottom' =>
+ array (
+ 0 => 'app\\plugins\\distribution\\Hook',
+ ),
'plugins_service_buy_group_goods_handle' =>
array (
0 => 'app\\plugins\\freightfee\\Hook',
+ 1 => 'app\\plugins\\coupon\\Hook',
),
'plugins_view_goods_detail_title' =>
array (
@@ -53,23 +106,11 @@ return array (
array (
0 => 'app\\plugins\\coupon\\Hook',
),
- 'plugins_service_users_center_left_menu_handle' =>
- array (
- 0 => 'app\\plugins\\coupon\\Hook',
- ),
- 'plugins_service_header_navigation_top_right_handle' =>
- array (
- 0 => 'app\\plugins\\coupon\\Hook',
- ),
'plugins_view_goods_detail_panel_bottom' =>
array (
0 => 'app\\plugins\\coupon\\Hook',
),
- 'plugins_view_buy_goods_bottom' =>
- array (
- 0 => 'app\\plugins\\coupon\\Hook',
- ),
- 'plugins_service_buy_handle' =>
+ 'plugins_view_buy_group_goods_inside_bottom' =>
array (
0 => 'app\\plugins\\coupon\\Hook',
),
@@ -81,10 +122,6 @@ return array (
array (
0 => 'app\\plugins\\coupon\\Hook',
),
- 'plugins_service_order_status_change_history_success_handle' =>
- array (
- 0 => 'app\\plugins\\coupon\\Hook',
- ),
'plugins_service_user_register_end' =>
array (
0 => 'app\\plugins\\coupon\\Hook',