细节调整
parent
1762b2d6b8
commit
ce879745a8
|
|
@ -60,7 +60,7 @@ class Goodscomments
|
|||
[
|
||||
'label' => '基础信息',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'goodscomments/module/info',
|
||||
'view_key' => 'goodscomments/module/goods',
|
||||
'grid_size' => 'lg',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ class Order
|
|||
[
|
||||
'label' => '基础信息',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'order/module/info',
|
||||
'view_key' => 'order/module/goods',
|
||||
'grid_size' => 'lg',
|
||||
'is_detail' => 0,
|
||||
'search_config' => [
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ class Orderaftersale
|
|||
[
|
||||
'label' => '基础信息',
|
||||
'view_type' => 'module',
|
||||
'view_key' => 'orderaftersale/module/info',
|
||||
'view_key' => 'orderaftersale/module/goods',
|
||||
'grid_size' => 'lg',
|
||||
'search_config' => [
|
||||
'form_type' => 'input',
|
||||
|
|
|
|||
|
|
@ -344,7 +344,7 @@
|
|||
<input type="text" name="specifications_price[]" placeholder="价格" class="am-radius" pattern="^([0-9]{1}\d{0,6})(\.\d{1,2})?$" data-validation-message="请填写有效的销售金额" required />
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" name="specifications_number[]" placeholder="库存" class="am-radius" min="1" max="100000000" pattern="^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$" data-validation-message="库存数量 1~100000000" required />
|
||||
<input type="number" name="specifications_number[]" placeholder="库存" class="am-radius" min="0" max="100000000" pattern="^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$" data-validation-message="库存数量 0~100000000" required />
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" name="specifications_weight[]" placeholder="重量" class="am-radius" maxlength="80" min="0.00" max="100000000.00" step="0.01" data-validation-message="规格重量 0.00~100000000.00" />
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="am-panel-hd">订单商品</div>
|
||||
<div class="am-panel-bd">
|
||||
{{if !empty($data['items'])}}
|
||||
{{:ModuleInclude('order/module/info', $data, ['form_request_type'=>'detail'])}}
|
||||
{{:ModuleInclude('order/module/info', $data)}}
|
||||
{{else /}}
|
||||
<div class="table-no"><i class="am-icon-warning"></i> 没有相关数据</div>
|
||||
{{/if}}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<!-- 订单基础信息 -->
|
||||
<!-- 订单商品信息 -->
|
||||
{{if !empty($module_data) and !empty($module_data['items'])}}
|
||||
{{foreach $module_data.items as $key=>$item}}
|
||||
{{foreach $module_data.items as $item}}
|
||||
<div class="am-nbfc am-padding-vertical-xs">
|
||||
<div class="base am-nbfc">
|
||||
<a href="{{:MyUrl('index/goods/index', ['id'=>$item['goods_id']])}}" target="_blank" title="{{$item.title}}">
|
||||
|
|
@ -21,21 +21,6 @@
|
|||
</div>
|
||||
</div>
|
||||
<hr data-am-widget="divider" class="am-divider am-divider-dashed am-margin-vertical-0" />
|
||||
{{if $key eq 0}}
|
||||
{{if !isset($module_params['form_request_type']) or $module_params['form_request_type'] neq 'detail'}}
|
||||
{{php}}break;{{/php}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/foreach}}
|
||||
<div class="am-margin-top-sm">{{$module_data.describe}}</div>
|
||||
{{if count($module_data.items) gt 1}}
|
||||
{{if !isset($module_params['form_request_type']) or $module_params['form_request_type'] neq 'detail'}}
|
||||
<div class="am-text-center">
|
||||
<button type="button" class="am-btn am-btn-link am-btn-xs am-radius submit-popup" data-url="{{:MyUrl('admin/order/detail', ['id'=>$module_data['id']])}}">
|
||||
<i class="am-icon-caret-down"></i>
|
||||
<span>查看更多</span>
|
||||
</button>
|
||||
</div>
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
{{/if}}
|
||||
|
|
@ -987,17 +987,16 @@ class BuyService
|
|||
}
|
||||
|
||||
// 支付方式
|
||||
$payment_id = 0;
|
||||
$is_under_line = 0;
|
||||
$payment = [];
|
||||
if(!empty($params['payment_id']))
|
||||
{
|
||||
$payment = PaymentService::PaymentList(['where'=>['id'=>intval($params['payment_id'])]]);
|
||||
if(empty($payment[0]))
|
||||
$pay_ret = PaymentService::PaymentList(['where'=>['id'=>intval($params['payment_id'])]]);
|
||||
if(empty($pay_ret[0]))
|
||||
{
|
||||
return DataReturn('支付方式有误', -1);
|
||||
} else {
|
||||
$payment = $pay_ret[0];
|
||||
}
|
||||
$payment_id = $payment[0]['id'];
|
||||
$is_under_line = in_array($payment[0]['payment'], config('shopxo.under_line_list')) ? 1 : 0;
|
||||
}
|
||||
|
||||
// 是否仅一个商品并且商品自定义类型
|
||||
|
|
@ -1011,25 +1010,84 @@ class BuyService
|
|||
}
|
||||
}
|
||||
|
||||
// 订单主信息
|
||||
// 订单信息处理
|
||||
$order = [
|
||||
'order_no' => date('YmdHis').GetNumberCode(6),
|
||||
'user_id' => $params['user']['id'],
|
||||
'user_note' => isset($params['user_note']) ? str_replace(['"', "'"], '', strip_tags($params['user_note'])) : '',
|
||||
'status' => (intval(MyC('common_order_is_booking', 0)) == 1) ? 0 : 1,
|
||||
'preferential_price' => ($buy['data']['base']['preferential_price'] <= 0.00) ? 0.00 : $buy['data']['base']['preferential_price'],
|
||||
'increase_price' => ($buy['data']['base']['increase_price'] <= 0.00) ? 0.00 : $buy['data']['base']['increase_price'],
|
||||
'price' => ($buy['data']['base']['total_price'] <= 0.00) ? 0.00 : $buy['data']['base']['total_price'],
|
||||
'total_price' => ($buy['data']['base']['actual_price'] <= 0.00) ? 0.00 : $buy['data']['base']['actual_price'],
|
||||
'extension_data' => empty($buy['data']['extension_data']) ? '' : json_encode($buy['data']['extension_data']),
|
||||
'payment_id' => $payment_id,
|
||||
'buy_number_count' => array_sum(array_column($buy['data']['goods'], 'stock')),
|
||||
'client_type' => (APPLICATION_CLIENT_TYPE == 'pc' && IsMobile()) ? 'h5' : APPLICATION_CLIENT_TYPE,
|
||||
'order_model' => $site_model,
|
||||
'is_under_line' => $is_under_line,
|
||||
'add_time' => time(),
|
||||
];
|
||||
if($order['status'] == 1)
|
||||
|
||||
// 添加订单处理
|
||||
return self::OrderInsertHandle($order, $buy['data']['goods'], $address, $params['user'], $payment, $site_model, $params);
|
||||
}
|
||||
|
||||
public static function OrderInsertHandle($order, $goods, $address, $user, $payment, $site_model, $params = [])
|
||||
{
|
||||
// 订单信息处理
|
||||
// 订单号没有则自动生成
|
||||
if(!isset($order['order_no']))
|
||||
{
|
||||
$order['order_no'] = date('YmdHis').GetNumberCode(6);
|
||||
}
|
||||
|
||||
// 订单模式
|
||||
if(!isset($order['order_model']))
|
||||
{
|
||||
$order['order_model'] = $site_model;
|
||||
}
|
||||
|
||||
// 订单状态
|
||||
if(!isset($order['status']))
|
||||
{
|
||||
$order['status'] = (intval(MyC('common_order_is_booking', 0)) == 1) ? 0 : 1;
|
||||
}
|
||||
|
||||
// 用户 id
|
||||
if(!isset($order['user_id']) && !empty($user['id']))
|
||||
{
|
||||
$order['user_id'] = $user['id'];
|
||||
}
|
||||
|
||||
// 订单商品数量
|
||||
if(!isset($order['buy_number_count']))
|
||||
{
|
||||
$order['buy_number_count'] = array_sum(array_column($goods, 'stock'));
|
||||
}
|
||||
|
||||
// 订单备注
|
||||
if(!isset($order['user_note']))
|
||||
{
|
||||
$order['user_note'] = isset($params['user_note']) ? str_replace(['"', "'"], '', strip_tags($params['user_note'])) : '';
|
||||
}
|
||||
|
||||
// 订单支付方式
|
||||
if(!isset($order['payment_id']))
|
||||
{
|
||||
$order['payment_id'] = empty($payment['id']) ? 0 : $payment['id'];
|
||||
}
|
||||
|
||||
// 是否线下支付
|
||||
if(!isset($order['is_under_line']))
|
||||
{
|
||||
$order['is_under_line'] = (isset($payment['payment']) && in_array($payment['payment'], config('shopxo.under_line_list'))) ? 1 : 0;
|
||||
}
|
||||
|
||||
// 客户端类型
|
||||
if(!isset($order['client_type']))
|
||||
{
|
||||
$order['client_type'] = (APPLICATION_CLIENT_TYPE == 'pc' && IsMobile()) ? 'h5' : APPLICATION_CLIENT_TYPE;
|
||||
}
|
||||
|
||||
// 时间
|
||||
if(!isset($order['add_time']))
|
||||
{
|
||||
$order['add_time'] = time();
|
||||
}
|
||||
|
||||
// 确认时间
|
||||
if(isset($order['status']) && $order['status'] == 1)
|
||||
{
|
||||
$order['confirm_time'] = time();
|
||||
}
|
||||
|
|
@ -1040,9 +1098,13 @@ class BuyService
|
|||
'hook_name' => $hook_name,
|
||||
'is_backend' => true,
|
||||
'order' => &$order,
|
||||
'goods' => &$buy['data']['goods'],
|
||||
'goods' => &$goods,
|
||||
'address' => &$address,
|
||||
'site_model' => $site_model,
|
||||
'payment' => $payment,
|
||||
'payment_id' => isset($order['payment_id']) ? $order['payment_id'] : 0,
|
||||
'is_under_line' => isset($order['is_under_line']) ? $order['is_under_line'] : 0,
|
||||
'params' => $params,
|
||||
|
||||
]));
|
||||
if(isset($ret['code']) && $ret['code'] != 0)
|
||||
{
|
||||
|
|
@ -1056,13 +1118,13 @@ class BuyService
|
|||
$order_id = Db::name('Order')->insertGetId($order);
|
||||
if($order_id > 0)
|
||||
{
|
||||
foreach($buy['data']['goods'] as $k=>$v)
|
||||
foreach($goods as $k=>$v)
|
||||
{
|
||||
// 添加订单详情数据,data返回自增id
|
||||
$detail_ret = self::OrderDetailInsert($order_id, $params['user']['id'], $v);
|
||||
$detail_ret = self::OrderDetailInsert($order_id, $user['id'], $v);
|
||||
if($detail_ret['code'] == 0)
|
||||
{
|
||||
$buy['data']['goods'][$k]['id'] = $detail_ret['data'];
|
||||
$goods[$k]['id'] = $detail_ret['data'];
|
||||
} else {
|
||||
Db::rollback();
|
||||
return $ret;
|
||||
|
|
@ -1071,7 +1133,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'], $user['id'], $v['goods_id']);
|
||||
if($ret['code'] != 0)
|
||||
{
|
||||
Db::rollback();
|
||||
|
|
@ -1087,7 +1149,7 @@ class BuyService
|
|||
// 添加订单(收货|取货)地址
|
||||
if(!empty($address))
|
||||
{
|
||||
$ret = self::OrderAddressInsert($order_id, $params['user']['id'], $address);
|
||||
$ret = self::OrderAddressInsert($order_id, $user['id'], $address);
|
||||
if($ret['code'] != 0)
|
||||
{
|
||||
Db::rollback();
|
||||
|
|
@ -1098,7 +1160,7 @@ class BuyService
|
|||
// 自提模式 添加订单取货码
|
||||
if($site_model == 2)
|
||||
{
|
||||
$ret = self::OrderExtractionCcodeInsert($order_id, $params['user']['id']);
|
||||
$ret = self::OrderExtractionCcodeInsert($order_id, $user['id']);
|
||||
if($ret['code'] != 0)
|
||||
{
|
||||
Db::rollback();
|
||||
|
|
@ -1130,8 +1192,12 @@ class BuyService
|
|||
'is_backend' => true,
|
||||
'order_id' => $order_id,
|
||||
'order' => $order,
|
||||
'goods' => $buy['data']['goods'],
|
||||
'goods' => $goods,
|
||||
'address' => $address,
|
||||
'site_model' => $site_model,
|
||||
'payment' => $payment,
|
||||
'payment_id' => isset($order['payment_id']) ? $order['payment_id'] : 0,
|
||||
'is_under_line' => isset($order['is_under_line']) ? $order['is_under_line'] : 0,
|
||||
'params' => $params,
|
||||
]));
|
||||
if(isset($ret['code']) && $ret['code'] != 0)
|
||||
|
|
@ -1157,8 +1223,12 @@ class BuyService
|
|||
'is_backend' => true,
|
||||
'order_id' => $order_id,
|
||||
'order' => $order,
|
||||
'goods' => $buy['data']['goods'],
|
||||
'goods' => $goods,
|
||||
'address' => $address,
|
||||
'site_model' => $site_model,
|
||||
'payment' => $payment,
|
||||
'payment_id' => isset($order['payment_id']) ? $order['payment_id'] : 0,
|
||||
'is_under_line' => isset($order['is_under_line']) ? $order['is_under_line'] : 0,
|
||||
'params' => $params,
|
||||
]);
|
||||
|
||||
|
|
|
|||
|
|
@ -290,7 +290,8 @@ class GoodsService
|
|||
$n = isset($params['n']) ? intval($params['n']) : 10;
|
||||
$data = Db::name('Goods')->alias('g')->join(['__GOODS_CATEGORY_JOIN__'=>'gci'], 'g.id=gci.goods_id')->field($field)->where($where)->group('g.id')->order($order_by)->limit($m, $n)->select();
|
||||
|
||||
return self::GoodsDataHandle($params, $data);
|
||||
// 数据处理
|
||||
return self::GoodsDataHandle($data, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -299,10 +300,10 @@ class GoodsService
|
|||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @datetime 2018-12-08T23:16:42+0800
|
||||
* @param [array] $params [输入参数]
|
||||
* @param [array] $data [商品列表]
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function GoodsDataHandle($params, $data)
|
||||
public static function GoodsDataHandle($data, $params = [])
|
||||
{
|
||||
if(!empty($data))
|
||||
{
|
||||
|
|
@ -473,7 +474,7 @@ class GoodsService
|
|||
}
|
||||
}
|
||||
}
|
||||
return DataReturn('处理成功', 0, $data);
|
||||
return DataReturn('success', 0, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -606,7 +607,7 @@ class GoodsService
|
|||
$n = isset($params['n']) ? intval($params['n']) : 10;
|
||||
$data = Db::name('Goods')->field($field)->where($where)->order($order_by)->limit($m, $n)->select();
|
||||
|
||||
return self::GoodsDataHandle($params, $data);
|
||||
return self::GoodsDataHandle($data, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -231,13 +231,21 @@ class NavigationService
|
|||
}
|
||||
|
||||
// 数据集合
|
||||
foreach($data as $dv)
|
||||
if(!empty($items_group))
|
||||
{
|
||||
$result[] = $dv;
|
||||
if(!empty($items_group) && array_key_exists($dv['id'], $items_group))
|
||||
foreach($data as $dv)
|
||||
{
|
||||
$result = array_merge($result, $items_group[$dv['id']]);
|
||||
if(array_key_exists($dv['id'], $items_group))
|
||||
{
|
||||
$dv['is_sub_data'] = 1;
|
||||
$result[] = $dv;
|
||||
$result = array_merge($result, $items_group[$dv['id']]);
|
||||
} else {
|
||||
$result[] = $dv;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$result = $data;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -776,18 +776,41 @@ class OrderService
|
|||
$m = isset($params['m']) ? intval($params['m']) : 0;
|
||||
$n = isset($params['n']) ? intval($params['n']) : 10;
|
||||
$order_by = empty($params['order_by']) ? 'id desc' : $params['order_by'];
|
||||
$is_items = isset($params['is_items']) ? intval($params['is_items']) : 1;
|
||||
$is_orderaftersale = isset($params['is_orderaftersale']) ? intval($params['is_orderaftersale']) : 0;
|
||||
$user_type = isset($params['user_type']) ? $params['user_type'] : 'user';
|
||||
|
||||
// 获取订单
|
||||
$data = Db::name('Order')->where($where)->limit($m, $n)->order($order_by)->select();
|
||||
|
||||
// 数据处理
|
||||
return self::OrderDataHandle($data, $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订单数据处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2020-07-05
|
||||
* @desc description
|
||||
* @param [array] $data [订单数据]
|
||||
* @param [array] $params [输入参数]
|
||||
*/
|
||||
public static function OrderDataHandle($data, $params = [])
|
||||
{
|
||||
$result = [];
|
||||
if(!empty($data))
|
||||
{
|
||||
// 其它额外处理
|
||||
$is_items = isset($params['is_items']) ? intval($params['is_items']) : 1;
|
||||
$is_orderaftersale = isset($params['is_orderaftersale']) ? intval($params['is_orderaftersale']) : 0;
|
||||
$user_type = isset($params['user_type']) ? $params['user_type'] : 'user';
|
||||
|
||||
// 静态数据
|
||||
$order_status_list = lang('common_order_user_status');
|
||||
$order_pay_status = lang('common_order_pay_status');
|
||||
$common_platform_type = lang('common_platform_type');
|
||||
$common_site_type_list = lang('common_site_type_list');
|
||||
|
||||
// 循环处理数据
|
||||
foreach($data as &$v)
|
||||
{
|
||||
// 订单处理前钩子
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue