调整运费规则城市处理
parent
fd2c42346f
commit
b2cd493af4
|
|
@ -52,7 +52,8 @@ class ShippingRuleController extends AdminController
|
|||
*/
|
||||
protected function form()
|
||||
{
|
||||
$builder = ShippingRule::with('zones');
|
||||
// $builder = ShippingRule::with('zones');
|
||||
$builder = new ShippingRule();
|
||||
return Form::make($builder, function (Form $form) {
|
||||
$templateId = Request::get('template_id', 0);
|
||||
$form->display('id');
|
||||
|
|
@ -66,12 +67,12 @@ class ShippingRuleController extends AdminController
|
|||
$form->tree('zones')
|
||||
->nodes(Zone::get()->toArray()) // 设置所有节点
|
||||
->setTitleColumn('name')
|
||||
->customFormat(function ($v) {
|
||||
if (!$v) {
|
||||
return [];
|
||||
}
|
||||
return array_column($v, 'id');
|
||||
})
|
||||
// ->customFormat(function ($v) {
|
||||
// if (!$v) {
|
||||
// return [];
|
||||
// }
|
||||
// return array_column($v, 'id');
|
||||
// })
|
||||
->expand(false)->required();
|
||||
$form->radio('type')
|
||||
->when(1, function (Form $form) {
|
||||
|
|
|
|||
|
|
@ -11,9 +11,10 @@ class ShippingRuleTable extends Grid
|
|||
{
|
||||
public static function grid(int $templateId = null)
|
||||
{
|
||||
$builder = ShippingRule::with('zones');
|
||||
|
||||
$grid = parent::make($builder, function (Grid $grid) {
|
||||
// $builder = ShippingRule::with('zones');
|
||||
$builder = new ShippingRule();
|
||||
$zones = Zone::get()->toArray();
|
||||
$grid = parent::make($builder, function (Grid $grid) use ($zones) {
|
||||
$grid->setResource('shipping-rules');
|
||||
$grid->column('id')->sortable();
|
||||
$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'].'元';
|
||||
}
|
||||
})->label();
|
||||
$grid->column('zones', __('shipping-rule.fields.zones'))->display(function ($value) {
|
||||
return $value->pluck('id')->toArray();
|
||||
})->showTreeInDialog(function (Grid\Displayers\DialogTree $tree) {
|
||||
$tree->title('城市');
|
||||
$tree->nodes(Zone::get()->toArray());
|
||||
$tree->setTitleColumn('name');
|
||||
});
|
||||
$grid->column('zones', __('shipping-rule.fields.zones'))
|
||||
// ->display(function ($value) {
|
||||
// return $value->pluck('id')->toArray();
|
||||
// })
|
||||
->showTreeInDialog(function (Grid\Displayers\DialogTree $tree) use ($zones) {
|
||||
$tree->title('城市');
|
||||
$tree->nodes($zones);
|
||||
$tree->setTitleColumn('name');
|
||||
});
|
||||
$grid->column('created_at');
|
||||
$grid->column('updated_at')->sortable();
|
||||
|
||||
|
|
|
|||
|
|
@ -15,12 +15,13 @@ class ShippingRule extends Model
|
|||
public const TYPE_FREE = 1;//包邮
|
||||
public const TYPE_WEIGHT = 2;//计算重量
|
||||
|
||||
// protected $casts = [
|
||||
// 'info' => JsonArray::class,
|
||||
// ];
|
||||
protected $casts = [
|
||||
// 'info' => JsonArray::class,
|
||||
'zones' => JsonArray::class,
|
||||
];
|
||||
|
||||
public function zones()
|
||||
{
|
||||
return $this->belongsToMany(Zone::class, 'shipping_rule_zones', 'rule_id', 'zone_id')->withTimestamps();
|
||||
}
|
||||
// public function zones()
|
||||
// {
|
||||
// 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 = [])
|
||||
{
|
||||
$payload = json_encode($params);
|
||||
$payload = json_encode(array_merge($params, [
|
||||
'title' => $title,
|
||||
'body' => $body,
|
||||
]));
|
||||
return [
|
||||
'settings'=>[
|
||||
'ttl'=> 3600000,
|
||||
|
|
@ -205,7 +208,7 @@ class UniPushService
|
|||
'transmission'=> json_encode([
|
||||
// 'title' => $title,
|
||||
// 'content'=> $body,
|
||||
'payload'=> $title,
|
||||
'payload'=> $payload,
|
||||
]),
|
||||
// 'notification'=>[
|
||||
// 'title' => $title,
|
||||
|
|
@ -220,7 +223,7 @@ class UniPushService
|
|||
'transmission'=> json_encode([
|
||||
// 'title' => $title,
|
||||
// 'content'=> $body,
|
||||
'payload'=> $title,
|
||||
'payload'=> $payload,
|
||||
]),
|
||||
// 'notification'=>[
|
||||
// 'title' => $title,
|
||||
|
|
|
|||
|
|
@ -27,9 +27,10 @@ class ShippingService
|
|||
if (ShippingRule::where('template_id', $templateId)->count() > 0) {
|
||||
$canShipping = false;
|
||||
//只拿有这个地区配置的模板规则,减少sql查询市区数量
|
||||
$rules = ShippingRule::with('zones')->where('template_id', $templateId)->whereHas('zones', function ($q) use ($zoneId) {
|
||||
return $q->where('zones.id', $zoneId);
|
||||
})->get();
|
||||
// $rules = ShippingRule::with('zones')->where('template_id', $templateId)->whereHas('zones', function ($q) use ($zoneId) {
|
||||
// return $q->where('zones.id', $zoneId);
|
||||
// })->get();
|
||||
$rules = ShippingRule::where('template_id', $templateId)->where('zones', 'like', '%"'.$zoneId.'"%')->get();
|
||||
//按包邮/计重
|
||||
$rules = $rules->sortBy('type');//优先计算包邮
|
||||
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