下单页面分组商品扩展数据处理
parent
7b2ef0ed6d
commit
c73b204f34
|
|
@ -81,7 +81,6 @@ class Buy extends Common
|
|||
// 基础信息
|
||||
$buy_base = $buy_ret['data']['base'];
|
||||
$buy_goods = $buy_ret['data']['goods'];
|
||||
$buy_extension_data = $buy_ret['data']['extension_data'];
|
||||
|
||||
// 用户地址
|
||||
$address = UserService::UserAddressList(['user'=>$this->user]);
|
||||
|
|
@ -104,7 +103,6 @@ class Buy extends Common
|
|||
// 页面数据
|
||||
$this->assign('base', $buy_base);
|
||||
$this->assign('buy_goods', $buy_goods);
|
||||
$this->assign('extension_data', $buy_extension_data);
|
||||
$this->assign('params', $params);
|
||||
|
||||
// 加载百度地图api
|
||||
|
|
@ -173,8 +171,8 @@ class Buy extends Common
|
|||
'params' => $params,
|
||||
]));
|
||||
|
||||
// 订单确认页面商品底部钩子
|
||||
$hook_name = 'plugins_view_buy_goods_bottom';
|
||||
// 订单确认页面分组商品底部钩子
|
||||
$hook_name = 'plugins_view_buy_group_goods_bottom';
|
||||
$this->assign($hook_name.'_data', Hook::listen($hook_name,
|
||||
[
|
||||
'hook_name' => $hook_name,
|
||||
|
|
|
|||
|
|
@ -273,6 +273,27 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
<div class="am-panel-bd">
|
||||
<!-- 分组商品顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_buy_group_goods_inside_top</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{php}}
|
||||
$hook_name = 'plugins_view_buy_group_goods_inside_top';
|
||||
$hook_data = Hook::listen($hook_name, ['hook_name'=>$hook_name, 'is_backend'=>false, 'data'=>$v]);
|
||||
if(!empty($hook_data) && is_array($hook_data))
|
||||
{
|
||||
foreach($hook_data as $hook)
|
||||
{
|
||||
if(is_string($hook) || is_int($hook))
|
||||
{
|
||||
echo htmlspecialchars_decode($hook);
|
||||
}
|
||||
}
|
||||
}
|
||||
{{/php}}
|
||||
|
||||
<!-- 商品明细 -->
|
||||
{{if !empty($v['goods_items'])}}
|
||||
<table class="am-table">
|
||||
|
|
@ -331,8 +352,43 @@
|
|||
<div class="table-no"><i class="am-icon-warning"></i> 没有商品</div>
|
||||
{{/if}}
|
||||
|
||||
<!-- 含运费小计 -->
|
||||
<!-- 商品分割线 -->
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed" />
|
||||
|
||||
<!-- 分组商品底部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_buy_group_goods_inside_bottom</span>
|
||||
</div>
|
||||
{{/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]);
|
||||
if(!empty($hook_data) && is_array($hook_data))
|
||||
{
|
||||
foreach($hook_data as $hook)
|
||||
{
|
||||
if(is_string($hook) || is_int($hook))
|
||||
{
|
||||
echo htmlspecialchars_decode($hook);
|
||||
}
|
||||
}
|
||||
}
|
||||
{{/php}}
|
||||
|
||||
<!-- 扩展展示数据 -->
|
||||
{{if !empty($v['extension_data'])}}
|
||||
<ul class="buy-extension-data am-padding-xs am-margin-bottom-sm">
|
||||
{{foreach $v['extension_data'] as $ext}}
|
||||
<li>
|
||||
<span class="extension-items-name">{{$ext.name}}</span>
|
||||
<span class="am-fr extension-items-tips">{{$ext.tips}}</span>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
<!-- 含运费小计 -->
|
||||
<div class="buy-point-discharge am-text-right">
|
||||
<p>
|
||||
合计 <span class="price"><strong>{{$price_symbol}}</strong><strong class="total-price-content am-text-lg">{{$v.items_total_price}}</strong></span>
|
||||
|
|
@ -347,14 +403,14 @@
|
|||
{{/if}}
|
||||
</div>
|
||||
|
||||
<!-- 订单确认页面商品底部钩子 -->
|
||||
<!-- 订单确认页面分组商品底部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
<span>plugins_view_buy_goods_bottom</span>
|
||||
<span>plugins_view_buy_group_goods_bottom</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{if !empty($plugins_view_buy_goods_bottom_data) and is_array($plugins_view_buy_goods_bottom_data)}}
|
||||
{{foreach $plugins_view_buy_goods_bottom_data as $hook}}
|
||||
{{if !empty($plugins_view_buy_group_goods_bottom_data) and is_array($plugins_view_buy_group_goods_bottom_data)}}
|
||||
{{foreach $plugins_view_buy_group_goods_bottom_data as $hook}}
|
||||
{{if is_string($hook) or is_int($hook)}}
|
||||
{{$hook|raw}}
|
||||
{{/if}}
|
||||
|
|
@ -383,18 +439,6 @@
|
|||
{{/foreach}}
|
||||
{{/if}}
|
||||
|
||||
<!-- 扩展展示数据 -->
|
||||
{{if !empty($extension_data)}}
|
||||
<ul class="buy-extension-data">
|
||||
{{foreach $extension_data as $ext}}
|
||||
<li>
|
||||
<span class="extension-items-name">{{$ext.name}}</span>
|
||||
<span class="am-fr extension-items-tips">{{$ext.tips}}</span>
|
||||
</li>
|
||||
{{/foreach}}
|
||||
</ul>
|
||||
{{/if}}
|
||||
|
||||
<!-- 订单确认页面订单确认信息顶部钩子 -->
|
||||
{{if isset($shopxo_is_develop) and $shopxo_is_develop eq true and (!isset($is_footer) or $is_footer eq 1)}}
|
||||
<div class="plugins-tag">
|
||||
|
|
|
|||
|
|
@ -712,7 +712,7 @@ class BuyService
|
|||
}
|
||||
|
||||
// 订单拆分
|
||||
$order_split = OrderSplitService::Run(['goods'=>$goods]);
|
||||
$order_split = OrderSplitService::Run(['goods'=>$goods, 'params'=>$params]);
|
||||
if($order_split['code'] != 0)
|
||||
{
|
||||
return $order_split;
|
||||
|
|
@ -755,29 +755,10 @@ class BuyService
|
|||
'common_site_type' => $common_site_type,
|
||||
];
|
||||
|
||||
// 扩展展示数据
|
||||
// name 名称
|
||||
// price 金额
|
||||
// type 类型(0减少, 1增加)
|
||||
// tips 提示信息
|
||||
// business 业务类型(内容格式不限)
|
||||
// ext 扩展数据(内容格式不限)
|
||||
$extension_data = [
|
||||
// [
|
||||
// 'name' => '感恩节9折',
|
||||
// 'price' => 23,
|
||||
// 'type' => 0,
|
||||
// 'tips' => '-¥23元',
|
||||
// 'business' => null,
|
||||
// 'ext' => null,
|
||||
// ],
|
||||
];
|
||||
|
||||
// 返回数据
|
||||
$result = [
|
||||
'goods' => $order_split['data'],
|
||||
'base' => $base,
|
||||
'extension_data' => $extension_data,
|
||||
];
|
||||
|
||||
// 生成订单数据处理钩子
|
||||
|
|
|
|||
|
|
@ -54,8 +54,8 @@ class OrderSplitService
|
|||
}
|
||||
|
||||
// 商品仓库集合
|
||||
$warehouse_goods = self::GoodsWarehouseAggregate($params['goods']);
|
||||
return DataReturn('操作成功', 0, $warehouse_goods);
|
||||
$data = self::GoodsWarehouseAggregate($params['goods']);
|
||||
return DataReturn('操作成功', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -69,21 +69,30 @@ class OrderSplitService
|
|||
*/
|
||||
public static function GoodsWarehouseAggregate($data)
|
||||
{
|
||||
// 仓库组扩展展示数据
|
||||
// name 名称
|
||||
// price 金额
|
||||
// type 类型(0减少, 1增加)
|
||||
// tips 提示信息
|
||||
// business 业务类型(内容格式不限)
|
||||
// ext 扩展数据(内容格式不限)
|
||||
// $extension_data = [
|
||||
// [
|
||||
// 'name' => '感恩节9折',
|
||||
// 'price' => 23,
|
||||
// 'type' => 0,
|
||||
// 'tips' => '-¥23元',
|
||||
// 'business' => null,
|
||||
// 'ext' => null,
|
||||
// ],
|
||||
// ];
|
||||
|
||||
// 数据分组
|
||||
$result = [];
|
||||
foreach($data as $v)
|
||||
{
|
||||
// 不存在规格则使用默认
|
||||
if(empty($v['spec']))
|
||||
{
|
||||
$spec = [
|
||||
[
|
||||
'type' => '默认规格',
|
||||
'value' => 'default',
|
||||
]
|
||||
];
|
||||
} else {
|
||||
$spec = $v['spec'];
|
||||
}
|
||||
$spec = empty($v['spec']) ? [['type' => '默认规格','value' => 'default']] : $v['spec'];
|
||||
|
||||
// 获取商品库存
|
||||
$where = [
|
||||
|
|
@ -128,6 +137,16 @@ class OrderSplitService
|
|||
// 仓库
|
||||
$warehouse_handle = WarehouseService::DataHandle([$w]);
|
||||
$result[$w['id']] = $warehouse_handle[0];
|
||||
$result[$w['id']]['extension_data'] = [
|
||||
[
|
||||
'name' => '感恩节9折',
|
||||
'price' => 23,
|
||||
'type' => 0,
|
||||
'tips' => '-¥23元',
|
||||
'business' => null,
|
||||
'ext' => null,
|
||||
],
|
||||
];
|
||||
$result[$w['id']]['goods_items'] = [];
|
||||
unset($result[$w['id']]['is_default'], $result[$w['id']]['level'], $result[$w['id']]['inventory']);
|
||||
|
||||
|
|
@ -159,6 +178,7 @@ class OrderSplitService
|
|||
// 仓库
|
||||
$warehouse_handle = WarehouseService::DataHandle([$warehouse_default]);
|
||||
$result[$warehouse_default['id']] = $warehouse_handle[0];
|
||||
$result[$warehouse_default['id']]['extension_data'] = [];
|
||||
$result[$warehouse_default['id']]['goods_items'] = [];
|
||||
|
||||
// 订单基础信息
|
||||
|
|
|
|||
|
|
@ -60,10 +60,9 @@ ul.address-list, .business-item ul { overflow: hidden; }
|
|||
.nav-buy .btn-go.am-disabled { background-color: #efa4af; }
|
||||
|
||||
/* 扩展数据 */
|
||||
.buy-extension-data { background: #ffffeb; border: 1px solid #ffe2cf; margin-top: 10px; padding: 5px 10px; margin: 10px 5px 0 5px; }
|
||||
.buy-extension-data { background: #ffffeb; border: 1px solid #ffe2cf; }
|
||||
.buy-extension-data li { padding: 5px 0; }
|
||||
.buy-extension-data li:not(:last-child) { border-bottom: 1px dashed #ffe2cf; }
|
||||
.buy-extension-data .extension-items-name { }
|
||||
.buy-extension-data .extension-items-tips { color: #ff8f44; }
|
||||
|
||||
/**
|
||||
|
|
@ -138,9 +137,6 @@ ul.address-list, .business-item ul { overflow: hidden; }
|
|||
.business-item ul li:nth-child(4n) { margin-right: 10px; }
|
||||
.business-item ul { padding: 10px 1px 0 1px; }
|
||||
.link-list h3 { padding: 0 0 5px 0; }
|
||||
|
||||
/*扩展数据*/
|
||||
.buy-extension-data { margin: 10px 0 0 0; }
|
||||
}
|
||||
|
||||
@media only screen and (max-width:640px) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue