线上商品忽略库存
parent
283f4510e1
commit
e489bce3d1
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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');
|
||||
|
|
|
|||
|
|
@ -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 => '现金',
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
},
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -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}"),
|
||||
|
|
|
|||
Loading…
Reference in New Issue