6
0
Fork 0

线上商品忽略库存

release
panliang 2022-06-02 10:26:23 +08:00
parent 283f4510e1
commit e489bce3d1
9 changed files with 40 additions and 39 deletions

View File

@ -1,6 +1,6 @@
<?php
namespace App\Admin\Controllers;
namespace App\Admin\Controllers\Draw;
use App\Admin\Actions\Grid\DrawActivityClose;
use App\Admin\Actions\Grid\DrawActivityPublish;

View File

@ -1,6 +1,6 @@
<?php
namespace App\Admin\Controllers;
namespace App\Admin\Controllers\Draw;
use App\Admin\Repositories\DrawActivityPrize as DrawActivityPrizeRepository;
use App\Enums\DrawPrizeType;

View File

@ -1,6 +1,6 @@
<?php
namespace App\Admin\Controllers;
namespace App\Admin\Controllers\Draw;
use App\Admin\Repositories\DrawLog as DrawLogRepository;
use App\Http\Controllers\Controller;

View File

@ -1,6 +1,6 @@
<?php
namespace App\Admin\Controllers;
namespace App\Admin\Controllers\Draw;
use App\Admin\Repositories\DrawPrize as DrawPrizeRepository;
use App\Enums\DrawPrizeType;

View File

@ -170,17 +170,17 @@ Route::group([
$router->get('api/store', 'Store\StoreController@list')->name('api.store');
// 抽奖管理
$router->resource('draw-prizes', 'DrawPrizeController')->names('draw_prizes');
$router->resource('draw-activities', 'DrawActivityController')->names('draw_activities');
$router->get('draw-activities/{draw_activity}/prizes/create', 'DrawActivityPrizeController@create')->name('draw_activities.prize_create');
$router->post('draw-activities/{draw_activity}/prizes', 'DrawActivityPrizeController@store')->name('draw_activities.prize_store');
$router->get('draw-activities/{draw_activity}/prizes/{prize}/edit', 'DrawActivityPrizeController@edit')->name('draw_activities.prize_edit');
$router->put('draw-activities/{draw_activity}/prizes/{prize}', 'DrawActivityPrizeController@update')->name('draw_activities.prize_update');
$router->delete('draw-activities/{draw_activity}/prizes/{prize}', 'DrawActivityPrizeController@destroy')->name('draw_activities.prize_delete');
$router->get('draw-activities/{draw_activity}/tickets', 'DrawActivityController@show')->name('draw_activities.ticket_list');
$router->get('draw-activities/{draw_activity}/logs', 'DrawActivityController@show')->name('draw_activities.log_list');
$router->put('draw-activities/{draw_activity}/logs/{log}', 'DrawLogController@update')->name('draw_activities.log_update');
$router->get('draw-activities/{draw_activity}/logs/{log}/edit', 'DrawLogController@edit')->name('draw_activities.log_edit');
$router->resource('draw-prizes', 'Draw\DrawPrizeController')->names('draw_prizes');
$router->resource('draw-activities', 'Draw\DrawActivityController')->names('draw_activities');
$router->get('draw-activities/{draw_activity}/prizes/create', 'Draw\DrawActivityPrizeController@create')->name('draw_activities.prize_create');
$router->post('draw-activities/{draw_activity}/prizes', 'Draw\DrawActivityPrizeController@store')->name('draw_activities.prize_store');
$router->get('draw-activities/{draw_activity}/prizes/{prize}/edit', 'Draw\DrawActivityPrizeController@edit')->name('draw_activities.prize_edit');
$router->put('draw-activities/{draw_activity}/prizes/{prize}', 'Draw\DrawActivityPrizeController@update')->name('draw_activities.prize_update');
$router->delete('draw-activities/{draw_activity}/prizes/{prize}', 'Draw\DrawActivityPrizeController@destroy')->name('draw_activities.prize_delete');
$router->get('draw-activities/{draw_activity}/tickets', 'Draw\DrawActivityController@show')->name('draw_activities.ticket_list');
$router->get('draw-activities/{draw_activity}/logs', 'Draw\DrawActivityController@show')->name('draw_activities.log_list');
$router->put('draw-activities/{draw_activity}/logs/{log}', 'Draw\DrawLogController@update')->name('draw_activities.log_update');
$router->get('draw-activities/{draw_activity}/logs/{log}/edit', 'Draw\DrawLogController@edit')->name('draw_activities.log_edit');
/** 调试接口 **/
// $router->get('test', 'HomeController@test');

View File

@ -7,9 +7,9 @@ use Dcat\Admin\Admin;
enum DrawPrizeType: int {
case None = 0;
case Goods = 1;
case Wallet = 2;
case Balance = 3;
case Point = 4;
// case Wallet = 2;
// case Balance = 3;
// case Point = 4;
case Money = 5;
public function label()
@ -17,9 +17,9 @@ enum DrawPrizeType: int {
$color = match ($this) {
static::None => 'warning',
static::Goods => 'primary',
static::Wallet => 'blue1',
static::Balance => 'pink',
static::Point => 'success',
// static::Wallet => 'blue1',
// static::Balance => 'pink',
// static::Point => 'success',
static::Money => 'danger',
};
@ -35,9 +35,9 @@ enum DrawPrizeType: int {
return [
self::None->value => '谢谢参与',
self::Goods->value => '实物',
self::Wallet->value => '可提',
self::Balance->value => '余额',
self::Point->value => '积分',
// self::Wallet->value => '可提',
// self::Balance->value => '余额',
// self::Point->value => '积分',
self::Money->value => '现金',
];
}

View File

@ -159,11 +159,13 @@ class ProductSku extends Model
*/
public function getSaleableStockAttribute(): int
{
if ($this->isOnline()) {
return $this->attributes['stock'];
}
// 因预售商品功能, 所以这里直接返回
return 1000000;
// if ($this->isOnline()) {
// return $this->attributes['stock'];
// }
return 0;
// return 0;
}
/**

View File

@ -54,7 +54,6 @@ class DrawActivityService
'draw_activity_prize_id' => $prize->id,
'status' => match ($prize->type) {
DrawPrizeType::None => DrawLogStatus::Completed,
DrawPrizeType::Wallet, DrawPrizeType::Balance, DrawPrizeType::Point => DrawLogStatus::Queuing,
default => DrawLogStatus::Pending,
},
]);

View File

@ -170,7 +170,7 @@ class OrderService
/**
* 添加店铺订单
*
*
*/
public function createOrderByPre(User $user, OrderPre $order_pre)
{
@ -191,7 +191,7 @@ class OrderService
if ($coupon_id) {
$coupon = $user->coupons()->onlyAvailable()->lockForUpdate()->findOrFail($coupon_id);
}
$mapProducts = $this->mapProducts($user, $products, $coupon);
list(
@ -248,7 +248,7 @@ class OrderService
* @param \App\Models\UserCoupon $coupon 使用的优惠券
* @param \App\Models\BargainOrder 砍价订单
* @param array 商品列表
*
*
* @return \App\Models\Order
*/
protected function storeOrder(
@ -384,10 +384,10 @@ class OrderService
*/
protected function deductProduct(ProductSku $sku, int $qty)
{
// 扣商品库存
$sku->update([
'sales' => DB::Raw("sales + {$qty}"),
'stock' => DB::raw("stock - {$qty}"), // 库存
// 扣商品库存
// 'stock' => DB::raw("stock - {$qty}"),
]);
$sku->spu?->increment('sales', $qty);
@ -1189,12 +1189,12 @@ class OrderService
// 返还店铺库存
} else {
$products = $order->products()->get();
foreach ($products->load(['sku', 'spu']) as $product) {
if ($product->sku === null) {
continue;
}
// 如果商品不是赠品,则直接增加商品库存
if (! $product->isGift()) {
$product->spu?->increment('sales', -$product->quantity);
@ -1204,17 +1204,17 @@ class OrderService
]);
continue;
}
//原赠品
if ($product->gift_for_sku_id) {
$gift = ProductGift::where('sku_id', $product->gift_for_sku_id)
->where('gift_sku_id', $product->sku_id)
->first();
if ($gift === null) {
continue;
}
if ($gift->isLimit()) {
$gift->update([
'remaining' => DB::raw("remaining+{$product->quantity}"),