From ab9e209910a0501b5509eeefb10b74daf8b01ca2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=B8=96=E7=95=8C?= <642747453@qq.com> Date: Thu, 14 Mar 2024 14:29:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20master=20=E5=95=86=E5=93=81=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=90=9C=E7=B4=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/UpdateGoodsSkuName.php | 49 +++++++++++++++++++ app/Filters/GoodsFilter.php | 5 -- .../Controllers/Goods/GoodsController.php | 1 + .../Controllers/Goods/GoodsSkusController.php | 6 ++- app/Models/Goods.php | 1 - .../2022_10_20_095356_create_groups_table.php | 2 +- ...2_04_155743_create_daily_reports_table.php | 3 ++ ...14_140536_add_name_to_goods_skus_table.php | 35 +++++++++++++ resources/frontend/src/api/goods.js | 2 +- resources/frontend/src/router/list.js | 2 +- resources/frontend/src/views/Login.vue | 1 + .../src/views/goods/addgoods/addgoods.vue | 2 +- resources/frontend/src/views/goods/goods.vue | 16 +++--- resources/frontend/src/views/index.vue | 8 +-- .../frontend/src/views/plat/orderList.vue | 2 +- resources/frontend/vue.config.js | 4 +- 16 files changed, 113 insertions(+), 26 deletions(-) create mode 100644 app/Console/Commands/UpdateGoodsSkuName.php create mode 100644 database/migrations/2024_03_14_140536_add_name_to_goods_skus_table.php diff --git a/app/Console/Commands/UpdateGoodsSkuName.php b/app/Console/Commands/UpdateGoodsSkuName.php new file mode 100644 index 0000000..0cd15d0 --- /dev/null +++ b/app/Console/Commands/UpdateGoodsSkuName.php @@ -0,0 +1,49 @@ +where('name', '') + ->where('is_combination', 0) + ->chunk(500, static function ($skus) { + foreach ($skus as $sku) { + $sku->name = $sku->goods->title . $sku->title; + $sku->save(); + } + }); + } +} diff --git a/app/Filters/GoodsFilter.php b/app/Filters/GoodsFilter.php index 1b698e6..58b186b 100644 --- a/app/Filters/GoodsFilter.php +++ b/app/Filters/GoodsFilter.php @@ -4,11 +4,6 @@ namespace App\Filters; class GoodsFilter extends Filters { - protected function goodsTitle($value) - { - return $this->builder->where('title', 'like', "%$value%"); - } - protected function typeId($value) { if($value){ diff --git a/app/Http/Controllers/Goods/GoodsController.php b/app/Http/Controllers/Goods/GoodsController.php index 2fd7402..aa68c01 100644 --- a/app/Http/Controllers/Goods/GoodsController.php +++ b/app/Http/Controllers/Goods/GoodsController.php @@ -61,6 +61,7 @@ class GoodsController extends Controller $item['stock'] = $item['num']; $item['reference_price'] = $item['cost'] * 1.5; $item['external_sku_id'] = $goods->goods_code . '_' . $item['sku_code']; + $item['name'] = $goods->goods_code . $item['title']; $goodsSkus[] = $item; } $collection = $goods->skus()->createMany($goodsSkus)->toArray(); diff --git a/app/Http/Controllers/Goods/GoodsSkusController.php b/app/Http/Controllers/Goods/GoodsSkusController.php index 5d7096c..d75befd 100644 --- a/app/Http/Controllers/Goods/GoodsSkusController.php +++ b/app/Http/Controllers/Goods/GoodsSkusController.php @@ -140,10 +140,13 @@ class GoodsSkusController extends Controller ->toArray(); $builder->whereIn('id', $skuIds); } - if ($request->get('goods_title') || $request->get('type_id') || $request->get('brand_id')) { + if ($request->get('type_id') || $request->get('brand_id')) { $goodsIds = Goods::query()->filter()->pluck('id')->toArray(); $builder->whereIn('goods_id', $goodsIds); } + if ($request->get('goods_title')) { + $builder->where('name', 'like', '%' . $request->goods_title . '%'); + } } public function show($id) @@ -185,6 +188,7 @@ class GoodsSkusController extends Controller $this->setBeforeUpdateForLog($sku->toArray()); $skuInfo = $request->sku; $skuInfo['external_sku_id'] = $request->goods['goods_code'] . '_' . $request->sku['sku_code']; + $skuInfo['name'] = $request->goods['title'] . $request->sku['title']; $sku->update($skuInfo); $this->setAfterUpdateForLog($sku->toArray()); $this->addLog($id, 'update'); diff --git a/app/Models/Goods.php b/app/Models/Goods.php index 1fc8969..db15407 100644 --- a/app/Models/Goods.php +++ b/app/Models/Goods.php @@ -10,7 +10,6 @@ class Goods extends Model //查询字段 public $fieldSearchable = [ - 'goods_title', 'type_id', 'brand_id', ]; diff --git a/database/migrations/2022_10_20_095356_create_groups_table.php b/database/migrations/2022_10_20_095356_create_groups_table.php index e1d0b5e..31dc3f1 100644 --- a/database/migrations/2022_10_20_095356_create_groups_table.php +++ b/database/migrations/2022_10_20_095356_create_groups_table.php @@ -28,7 +28,7 @@ class CreateGroupsTable extends Migration $table->string('activity_no')->nullable()->comment('团号'); $table->unsignedTinyInteger('create_status')->default(3)->comment('1-创建成功,2-创建失败,3-创建中'); $table->string('error_msg')->nullable()->comment('create_status为2时有,创建团失败原因'); - $table->text('qr_code_url')->nullable()->comment('create_status为1时有,团小程序二维码图片地址'); + $table->string('qr_code_url')->default('')->comment('create_status为1时有,团小程序二维码图片地址'); $table->unsignedBigInteger('create_time')->nullable(); $table->unsignedTinyInteger('is_help_sell')->nullable()->comment('是否帮卖0-我发布的,1-我帮卖的'); $table->tinyInteger('status')->default(-10)->comment('团状态(-10:待发布/预览中,-5:未开始,1:跟团中,20:已结束,30:已删除'); diff --git a/database/migrations/2024_02_04_155743_create_daily_reports_table.php b/database/migrations/2024_02_04_155743_create_daily_reports_table.php index 516cbfe..e39edbd 100644 --- a/database/migrations/2024_02_04_155743_create_daily_reports_table.php +++ b/database/migrations/2024_02_04_155743_create_daily_reports_table.php @@ -13,6 +13,9 @@ class CreateDailyReportsTable extends Migration */ public function up() { + if (Schema::hasTable('daily_reports')) { + return; + } Schema::create('daily_reports', function (Blueprint $table) { $table->bigIncrements('id'); $table->date('date'); diff --git a/database/migrations/2024_03_14_140536_add_name_to_goods_skus_table.php b/database/migrations/2024_03_14_140536_add_name_to_goods_skus_table.php new file mode 100644 index 0000000..34ff7f7 --- /dev/null +++ b/database/migrations/2024_03_14_140536_add_name_to_goods_skus_table.php @@ -0,0 +1,35 @@ +string('name')->default('')->comment('完整商品名称'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('goods_skus', function (Blueprint $table) { + $table->dropColumn('name'); + }); + } +} diff --git a/resources/frontend/src/api/goods.js b/resources/frontend/src/api/goods.js index f357f90..c91a0de 100644 --- a/resources/frontend/src/api/goods.js +++ b/resources/frontend/src/api/goods.js @@ -17,7 +17,7 @@ export function goods(params) { params, }); } -// 新建商品 +// 新增商品/规格 export function addGoods(data) { return http({ url: "/api/goods", diff --git a/resources/frontend/src/router/list.js b/resources/frontend/src/router/list.js index 985d783..997fc7c 100644 --- a/resources/frontend/src/router/list.js +++ b/resources/frontend/src/router/list.js @@ -18,7 +18,7 @@ const list = [ }, { path: "ADDGOODS", - name: "新建商品", + name: "新增商品/规格", component: () => import("../views/goods/addgoods/addgoods.vue"), }, { diff --git a/resources/frontend/src/views/Login.vue b/resources/frontend/src/views/Login.vue index 9b3d77f..2038332 100644 --- a/resources/frontend/src/views/Login.vue +++ b/resources/frontend/src/views/Login.vue @@ -62,6 +62,7 @@ export default { } if (data.token) { + localStorage.setItem("userName", this.form.name); this.form = {}; localStorage.setItem("token", data.token); this.$message({ diff --git a/resources/frontend/src/views/goods/addgoods/addgoods.vue b/resources/frontend/src/views/goods/addgoods/addgoods.vue index dc8056c..b3fd791 100644 --- a/resources/frontend/src/views/goods/addgoods/addgoods.vue +++ b/resources/frontend/src/views/goods/addgoods/addgoods.vue @@ -1,7 +1,7 @@ - + - +