mirror of
https://gitee.com/zongzhige/shopxo.git
synced 2026-07-07 06:15:29 +08:00
运费设置应用新增支付方式免运费
This commit is contained in:
@ -14,6 +14,7 @@ use think\Db;
|
||||
use think\Controller;
|
||||
use app\service\PluginsService;
|
||||
use app\service\RegionService;
|
||||
use app\service\PaymentService;
|
||||
|
||||
/**
|
||||
* 运费设置 - 管理
|
||||
@ -37,16 +38,7 @@ class Admin extends Controller
|
||||
$ret = PluginsService::PluginsData('freightfee');
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
// 数据处理
|
||||
if(!empty($ret['data']['data']))
|
||||
{
|
||||
foreach($ret['data']['data'] as &$v)
|
||||
{
|
||||
$v['region_names'] = empty($v['region_show']) ? '' : implode('、', Db::name('Region')->where('id', 'in', explode('-', $v['region_show']))->column('name'));
|
||||
}
|
||||
}
|
||||
|
||||
$this->assign('data', $ret['data']);
|
||||
$this->assign('data', $this->DataHandle($ret['data']));
|
||||
return $this->fetch('../../../plugins/view/freightfee/admin/index');
|
||||
} else {
|
||||
return $ret['msg'];
|
||||
@ -83,24 +75,48 @@ class Admin extends Controller
|
||||
}, $region);
|
||||
}
|
||||
|
||||
// 数据处理
|
||||
if(!empty($ret['data']['data']))
|
||||
{
|
||||
foreach($ret['data']['data'] as &$v)
|
||||
{
|
||||
$v['region_names'] = empty($v['region_show']) ? '' : implode('、', Db::name('Region')->where('id', 'in', explode('-', $v['region_show']))->column('name'));
|
||||
}
|
||||
}
|
||||
// 支付方式
|
||||
$this->assign('payment_list', PaymentService::PaymentList(['is_enable'=>1, 'is_open_user'=>1]));
|
||||
|
||||
$this->assign('region_list', $region);
|
||||
$this->assign('is_whether_list', $is_whether_list);
|
||||
$this->assign('data', $ret['data']);
|
||||
$this->assign('data', $this->DataHandle($ret['data']));
|
||||
return $this->fetch('../../../plugins/view/freightfee/admin/saveinfo');
|
||||
} else {
|
||||
return $ret['msg'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据处理
|
||||
* @author Devil
|
||||
* @blog http://gong.gg/
|
||||
* @version 1.0.0
|
||||
* @date 2019-03-22
|
||||
* @desc description
|
||||
* @param [array] $data [应用数据]
|
||||
*/
|
||||
private function DataHandle($data)
|
||||
{
|
||||
if(!empty($data['data']))
|
||||
{
|
||||
if(empty($data['payment']))
|
||||
{
|
||||
$data['payment'] = [];
|
||||
$data['payment_names'] = '';
|
||||
} else {
|
||||
$data['payment'] = explode(',', $data['payment']);
|
||||
$data['payment_names'] = implode('、', array_map(function($v){return mb_substr($v, strrpos($v, '-')+1, null, 'utf-8');}, $data['payment']));
|
||||
}
|
||||
|
||||
foreach($data['data'] as &$v)
|
||||
{
|
||||
$v['region_names'] = empty($v['region_show']) ? '' : implode('、', Db::name('Region')->where('id', 'in', explode('-', $v['region_show']))->column('name'));
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据保存
|
||||
* @author Devil
|
||||
|
||||
@ -61,8 +61,29 @@ class Hook
|
||||
$ret = PluginsService::PluginsData('freightfee');
|
||||
if($ret['code'] == 0)
|
||||
{
|
||||
// 默认运费
|
||||
$price = 0;
|
||||
|
||||
// 支付方式免运费
|
||||
$is_payment = true;
|
||||
if(!empty($ret['data']['payment']) && !empty($params['params']['payment_id']))
|
||||
{
|
||||
$payment = array_map(function($v){return explode('-', $v);}, explode(',', $ret['data']['payment']));
|
||||
if(!empty($payment) && is_array($payment))
|
||||
{
|
||||
foreach($payment as $v)
|
||||
{
|
||||
if(isset($v[0]) && $v[0] == $params['params']['payment_id'])
|
||||
{
|
||||
$is_payment = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 是否设置运费数据
|
||||
if(!empty($ret['data']['data'][0]))
|
||||
if($is_payment === true && !empty($ret['data']['data'][0]))
|
||||
{
|
||||
// 规则
|
||||
$rules = $this->RulesHandle($ret['data']['data'], $params['data']['base']['address']);
|
||||
@ -70,7 +91,6 @@ class Hook
|
||||
// 计费方式
|
||||
if(!empty($rules))
|
||||
{
|
||||
$price = 0;
|
||||
switch($ret['data']['valuation'])
|
||||
{
|
||||
// 按件
|
||||
@ -83,22 +103,22 @@ class Hook
|
||||
$price = $this->QuantityCalculate($rules, $params['data']);
|
||||
break;
|
||||
}
|
||||
|
||||
// 扩展展示数据
|
||||
$show_name = empty($ret['data']['show_name']) ? '运费' : $ret['data']['show_name'];
|
||||
$params['data']['extension_data'][] = [
|
||||
'name' => $show_name,
|
||||
'price' => $price,
|
||||
'type' => 0,
|
||||
'tips' => '+¥'.$price.'元',
|
||||
];
|
||||
|
||||
// 金额
|
||||
$params['data']['base']['increase_price'] += $price;
|
||||
$params['data']['base']['actual_price'] += $price;
|
||||
}
|
||||
return DataReturn('处理成功', 0);
|
||||
}
|
||||
|
||||
// 扩展展示数据
|
||||
$show_name = empty($ret['data']['show_name']) ? '运费' : $ret['data']['show_name'];
|
||||
$params['data']['extension_data'][] = [
|
||||
'name' => $show_name,
|
||||
'price' => $price,
|
||||
'type' => 0,
|
||||
'tips' => '+¥'.$price.'元',
|
||||
];
|
||||
|
||||
// 金额
|
||||
$params['data']['base']['increase_price'] += $price;
|
||||
$params['data']['base']['actual_price'] += $price;
|
||||
|
||||
return DataReturn('无需处理', 0);
|
||||
} else {
|
||||
return $ret['msg'];
|
||||
|
||||
Reference in New Issue
Block a user