Browse Source

规格增加原价

master
李可松 4 years ago
parent
commit
1c18764fe2
  1. 8
      MySQL_change.sql
  2. 11
      app/AdminSupplier/Controllers/ProductController.php
  3. 2
      app/Models/ProductSpec.php

8
MySQL_change.sql

@ -107,3 +107,11 @@ CREATE TABLE `product_specs` (
) )
COLLATE='utf8_general_ci' COLLATE='utf8_general_ci'
ENGINE=InnoDB; ENGINE=InnoDB;
# 13:00 2021/9/23
ALTER TABLE `product_specs`
ADD COLUMN `original_price` DECIMAL(20,2) NOT NULL COMMENT '原价' AFTER `stock`,
CHANGE COLUMN `price` `price` DECIMAL(20,2) NOT NULL COMMENT '售价' AFTER `original_price`;

11
app/AdminSupplier/Controllers/ProductController.php

@ -105,14 +105,15 @@ class ProductController extends AdminController
$options = Category::selectOptions(fn($query) => $query->where('agent_id', 0)); $options = Category::selectOptions(fn($query) => $query->where('agent_id', 0));
$form->select('category_id')->options(array_slice($options, 1, null, true))->required(); $form->select('category_id')->options(array_slice($options, 1, null, true))->required();
$form->text('title')->required(); $form->text('title')->required();
$form->currency('price')->symbol('¥')->required();
$form->currency('original_price')->symbol('¥')->required();
// $form->currency('price')->symbol('¥')->required();
// $form->currency('original_price')->symbol('¥')->required();
$form->number('service_persons')->required(); $form->number('service_persons')->required();
// $form->number('stock')->required(); // $form->number('stock')->required();
$form->table('spec', function ($form) { $form->table('spec', function ($form) {
$form->hidden('id'); $form->hidden('id');
$form->text('name')->required(); $form->text('name')->required();
$form->text('stock')->required(); $form->text('stock')->required();
$form->text('original_price')->required();
$form->text('price')->required(); $form->text('price')->required();
})->required(); })->required();
if ($form->isEditing() && in_array($form->model()->status, [ProductStatus::SOLD_OUT, ProductStatus::ON_SALE])) { if ($form->isEditing() && in_array($form->model()->status, [ProductStatus::SOLD_OUT, ProductStatus::ON_SALE])) {
@ -235,9 +236,11 @@ class ProductController extends AdminController
return $form->response()->error('请输入产品规格'); return $form->response()->error('请输入产品规格');
} }
//处理库存
$form->hidden('stock');
//处理库存、原价、售价
$form->hidden(['stock', 'original_price', 'price']);
$form->stock = array_sum(array_column($form->spec, 'stock')); $form->stock = array_sum(array_column($form->spec, 'stock'));
$form->original_price = min(array_column($form->spec, 'original_price'));
$form->price = min(array_column($form->spec, 'price'));
//特殊字段处理 //特殊字段处理
if ($form->isCreating()) { if ($form->isCreating()) {

2
app/Models/ProductSpec.php

@ -9,7 +9,7 @@ class ProductSpec extends Model
{ {
use HasFactory; use HasFactory;
protected $fillable = ['name', 'price', 'stock'];
protected $fillable = ['name', 'stock', 'original_price', 'price'];
public function __construct(array $attributes = []) public function __construct(array $attributes = [])
{ {

Loading…
Cancel
Save