调整运费规则城市处理
parent
fd2c42346f
commit
b2cd493af4
|
|
@ -52,7 +52,8 @@ class ShippingRuleController extends AdminController
|
||||||
*/
|
*/
|
||||||
protected function form()
|
protected function form()
|
||||||
{
|
{
|
||||||
$builder = ShippingRule::with('zones');
|
// $builder = ShippingRule::with('zones');
|
||||||
|
$builder = new ShippingRule();
|
||||||
return Form::make($builder, function (Form $form) {
|
return Form::make($builder, function (Form $form) {
|
||||||
$templateId = Request::get('template_id', 0);
|
$templateId = Request::get('template_id', 0);
|
||||||
$form->display('id');
|
$form->display('id');
|
||||||
|
|
@ -66,12 +67,12 @@ class ShippingRuleController extends AdminController
|
||||||
$form->tree('zones')
|
$form->tree('zones')
|
||||||
->nodes(Zone::get()->toArray()) // 设置所有节点
|
->nodes(Zone::get()->toArray()) // 设置所有节点
|
||||||
->setTitleColumn('name')
|
->setTitleColumn('name')
|
||||||
->customFormat(function ($v) {
|
// ->customFormat(function ($v) {
|
||||||
if (!$v) {
|
// if (!$v) {
|
||||||
return [];
|
// return [];
|
||||||
}
|
// }
|
||||||
return array_column($v, 'id');
|
// return array_column($v, 'id');
|
||||||
})
|
// })
|
||||||
->expand(false)->required();
|
->expand(false)->required();
|
||||||
$form->radio('type')
|
$form->radio('type')
|
||||||
->when(1, function (Form $form) {
|
->when(1, function (Form $form) {
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,10 @@ class ShippingRuleTable extends Grid
|
||||||
{
|
{
|
||||||
public static function grid(int $templateId = null)
|
public static function grid(int $templateId = null)
|
||||||
{
|
{
|
||||||
$builder = ShippingRule::with('zones');
|
// $builder = ShippingRule::with('zones');
|
||||||
|
$builder = new ShippingRule();
|
||||||
$grid = parent::make($builder, function (Grid $grid) {
|
$zones = Zone::get()->toArray();
|
||||||
|
$grid = parent::make($builder, function (Grid $grid) use ($zones) {
|
||||||
$grid->setResource('shipping-rules');
|
$grid->setResource('shipping-rules');
|
||||||
$grid->column('id')->sortable();
|
$grid->column('id')->sortable();
|
||||||
$grid->column('type')->using([
|
$grid->column('type')->using([
|
||||||
|
|
@ -29,13 +30,15 @@ class ShippingRuleTable extends Grid
|
||||||
return '首重:'.$value['first_weight'].'KG内'.$value['first_w_amount'].'元,续重:每'.$value['continue_weight'].'KG'.$value['continue_w_amount'].'元';
|
return '首重:'.$value['first_weight'].'KG内'.$value['first_w_amount'].'元,续重:每'.$value['continue_weight'].'KG'.$value['continue_w_amount'].'元';
|
||||||
}
|
}
|
||||||
})->label();
|
})->label();
|
||||||
$grid->column('zones', __('shipping-rule.fields.zones'))->display(function ($value) {
|
$grid->column('zones', __('shipping-rule.fields.zones'))
|
||||||
return $value->pluck('id')->toArray();
|
// ->display(function ($value) {
|
||||||
})->showTreeInDialog(function (Grid\Displayers\DialogTree $tree) {
|
// return $value->pluck('id')->toArray();
|
||||||
$tree->title('城市');
|
// })
|
||||||
$tree->nodes(Zone::get()->toArray());
|
->showTreeInDialog(function (Grid\Displayers\DialogTree $tree) use ($zones) {
|
||||||
$tree->setTitleColumn('name');
|
$tree->title('城市');
|
||||||
});
|
$tree->nodes($zones);
|
||||||
|
$tree->setTitleColumn('name');
|
||||||
|
});
|
||||||
$grid->column('created_at');
|
$grid->column('created_at');
|
||||||
$grid->column('updated_at')->sortable();
|
$grid->column('updated_at')->sortable();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,12 +15,13 @@ class ShippingRule extends Model
|
||||||
public const TYPE_FREE = 1;//包邮
|
public const TYPE_FREE = 1;//包邮
|
||||||
public const TYPE_WEIGHT = 2;//计算重量
|
public const TYPE_WEIGHT = 2;//计算重量
|
||||||
|
|
||||||
// protected $casts = [
|
protected $casts = [
|
||||||
// 'info' => JsonArray::class,
|
// 'info' => JsonArray::class,
|
||||||
// ];
|
'zones' => JsonArray::class,
|
||||||
|
];
|
||||||
|
|
||||||
public function zones()
|
// public function zones()
|
||||||
{
|
// {
|
||||||
return $this->belongsToMany(Zone::class, 'shipping_rule_zones', 'rule_id', 'zone_id')->withTimestamps();
|
// return $this->belongsToMany(Zone::class, 'shipping_rule_zones', 'rule_id', 'zone_id')->withTimestamps();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,10 @@ class UniPushService
|
||||||
|
|
||||||
protected function createPushPayloadData($title, $body, $params = [])
|
protected function createPushPayloadData($title, $body, $params = [])
|
||||||
{
|
{
|
||||||
$payload = json_encode($params);
|
$payload = json_encode(array_merge($params, [
|
||||||
|
'title' => $title,
|
||||||
|
'body' => $body,
|
||||||
|
]));
|
||||||
return [
|
return [
|
||||||
'settings'=>[
|
'settings'=>[
|
||||||
'ttl'=> 3600000,
|
'ttl'=> 3600000,
|
||||||
|
|
@ -205,7 +208,7 @@ class UniPushService
|
||||||
'transmission'=> json_encode([
|
'transmission'=> json_encode([
|
||||||
// 'title' => $title,
|
// 'title' => $title,
|
||||||
// 'content'=> $body,
|
// 'content'=> $body,
|
||||||
'payload'=> $title,
|
'payload'=> $payload,
|
||||||
]),
|
]),
|
||||||
// 'notification'=>[
|
// 'notification'=>[
|
||||||
// 'title' => $title,
|
// 'title' => $title,
|
||||||
|
|
@ -220,7 +223,7 @@ class UniPushService
|
||||||
'transmission'=> json_encode([
|
'transmission'=> json_encode([
|
||||||
// 'title' => $title,
|
// 'title' => $title,
|
||||||
// 'content'=> $body,
|
// 'content'=> $body,
|
||||||
'payload'=> $title,
|
'payload'=> $payload,
|
||||||
]),
|
]),
|
||||||
// 'notification'=>[
|
// 'notification'=>[
|
||||||
// 'title' => $title,
|
// 'title' => $title,
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,10 @@ class ShippingService
|
||||||
if (ShippingRule::where('template_id', $templateId)->count() > 0) {
|
if (ShippingRule::where('template_id', $templateId)->count() > 0) {
|
||||||
$canShipping = false;
|
$canShipping = false;
|
||||||
//只拿有这个地区配置的模板规则,减少sql查询市区数量
|
//只拿有这个地区配置的模板规则,减少sql查询市区数量
|
||||||
$rules = ShippingRule::with('zones')->where('template_id', $templateId)->whereHas('zones', function ($q) use ($zoneId) {
|
// $rules = ShippingRule::with('zones')->where('template_id', $templateId)->whereHas('zones', function ($q) use ($zoneId) {
|
||||||
return $q->where('zones.id', $zoneId);
|
// return $q->where('zones.id', $zoneId);
|
||||||
})->get();
|
// })->get();
|
||||||
|
$rules = ShippingRule::where('template_id', $templateId)->where('zones', 'like', '%"'.$zoneId.'"%')->get();
|
||||||
//按包邮/计重
|
//按包邮/计重
|
||||||
$rules = $rules->sortBy('type');//优先计算包邮
|
$rules = $rules->sortBy('type');//优先计算包邮
|
||||||
foreach ($rules as $rule) {
|
foreach ($rules as $rule) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
class AddZonesToShippingRulesTable extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
Schema::table('shipping_rules', function (Blueprint $table) {
|
||||||
|
//
|
||||||
|
$table->text('zones')->nullable()->comment('地区IDs');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function down()
|
||||||
|
{
|
||||||
|
Schema::table('shipping_rules', function (Blueprint $table) {
|
||||||
|
//
|
||||||
|
$table->dropColumn(['zones']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue