鲜花2.0-接口测试bug修复

This commit is contained in:
杨建炊 2024-08-06 13:53:22 +08:00
parent 45882b4a72
commit 5734c08ba4
10 changed files with 39 additions and 33 deletions

View File

@ -6,6 +6,7 @@ use App\Models\Shop;
use App\Services\Business\BusinessFactory;
use App\Utils\DateTimeUtils;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class KttOrderQuery extends Command
{

View File

@ -47,19 +47,18 @@ class BusinessOrdersUpdate
Log::error("sku 业务更新失败", (array)$this->businessGoodSku);
}
} catch (\Exception $exception) {
Log::error("库存告警发生异常", ["error" => $exception->getMessage()]);
Log::error("sku 业务更新发生异常", ["error" => $exception->getMessage()]);
}
}
private
function updateStock()
private function updateStock()
{
$this->goodsSku = GoodsSku::query()
->where('external_sku_id', $this->businessGoodSku['external_sku_id'])
->first();
if (is_null($this->goodsSku)) {
return false;
return true;
}
$oldStock = $this->goodsSku->stock;
$stock = $this->goodsSku->stock + $this->num;
@ -82,8 +81,7 @@ class BusinessOrdersUpdate
*
* @return \Illuminate\Broadcasting\Channel|array
*/
public
function broadcastOn()
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}

View File

@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
use App\Models\Log as LogModel;
use App\Utils\ArrayUtils;
use App\Utils\FormatUtils;
use Illuminate\Support\Facades\Log;
use Spatie\Permission\Models\Permission;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

View File

@ -41,7 +41,7 @@ class DailyStockRecordController extends Controller
$query->where('external_sku_id', '=', $request->external_sku_id);
});
}
$dailyStockRecord = $build->paginate($request->get('per_page'));
$dailyStockRecord = $build->orderByDesc("id")->paginate($request->get('per_page'));
return JsonResource::collection($dailyStockRecord);
}

View File

@ -42,7 +42,7 @@ class LossRecordController extends Controller
$query->where('name', 'like', '%' . $request->title . '%');
});
}
$dailyStockRecord = $builder->paginate($request->get('per_page'));
$dailyStockRecord = $builder->orderByDesc("id")->paginate($request->get('per_page'));
return JsonResource::collection($dailyStockRecord);
}

View File

@ -44,7 +44,7 @@ class PurchaseRecordController extends Controller
$query->where('name', 'like', '%' . $request->title . '%');
});
}
$dailyStockRecord = $builder->paginate($request->get('per_page'));
$dailyStockRecord = $builder->orderByDesc("id")->paginate($request->get('per_page'));
return JsonResource::collection($dailyStockRecord);
}

View File

@ -42,22 +42,26 @@ class BusinessOrderUpdateListener implements ShouldQueue
public function handle(BusinessOrdersUpdate $event)
{
try {
//查询库存是否满足告警规则
$skuId = $event->goodsSku->id;
$nowTime = Carbon::now()->toDateTimeString();
//查找最后一次盘点数据
$dailyStockRecord = DailyStockRecord::query()->where("sku_id", '=', $skuId)->
where("inventory_time", '<', $nowTime)->orderByDesc('id')->first();
$inventory = $dailyStockRecord['inventory'] ?? 0;
$expireTime = Carbon::now()->addMinutes(30)->toDateTimeString();
$proportion = Cache::remember(CacheKeyEnum::STOCK_RULE_PROPORTION, $expireTime, function () {
$developerConfig = DeveloperConfig::query()->where("key", "=", DevConfigKeyEnum::STOCK_RULE_PROPORTION)->first();
return $developerConfig['value'] ?? DevConfigKeyEnum::DEFAULT_STOCK_RULE_PROPORTION;
});
//库存比例小于最近盘点多少告警 一天也只是告警一次
if ($inventory > 10 && $inventory * $proportion > $event->goodsSku->stock) {
$messageService = new MessageService();
$messageService->createLowerStockNoticeMessage($inventory, $event->goodsSku->toArray());
if(!empty($event->goodsSku)){
//查询库存是否满足告警规则
$skuId = $event->goodsSku->id;
$nowTime = Carbon::now()->toDateTimeString();
//查找最后一次盘点数据
$dailyStockRecord = DailyStockRecord::query()->where("sku_id", '=', $skuId)->
where("inventory_time", '<', $nowTime)->orderByDesc('id')->first();
$inventory = $dailyStockRecord['inventory'] ?? 0;
$expireTime = Carbon::now()->addMinutes(30)->toDateTimeString();
$proportion = Cache::remember(CacheKeyEnum::STOCK_RULE_PROPORTION, $expireTime, function () {
$developerConfig = DeveloperConfig::query()->where("key", "=", DevConfigKeyEnum::STOCK_RULE_PROPORTION)->first();
return $developerConfig['value'] ?? DevConfigKeyEnum::DEFAULT_STOCK_RULE_PROPORTION;
});
//库存比例小于最近盘点多少告警 一天也只是告警一次
if ($inventory > 10 && $inventory * $proportion > $event->goodsSku->stock) {
$messageService = new MessageService();
$messageService->createLowerStockNoticeMessage($inventory, $event->goodsSku->toArray());
}
}
}catch(\Exception $exception) {
Log::error("库存告警发生异常",["error"=>$exception->getMessage()]);

View File

@ -77,6 +77,7 @@ class CombinationGoodsStockUpdateListener implements ShouldQueue
$updateIds[] = $goodsSku->id;
}
}
Log::info("updateIds:", $updateIds);
// 计算主商品库存
if ($combinationGoodsItemIds) {
$goodsSkuIds = CombinationGood::query()

View File

@ -94,6 +94,7 @@ abstract class BusinessClient
}
$orderItem->update($item);
}
// 增量更新库存
if ($num && $item['external_sku_id']) {
event(new BusinessOrdersUpdate($orderItem, $num));

View File

@ -20,14 +20,14 @@ class BusinessOrderUpdateTest extends TestCase
*/
public function testBasicTest()
{
/* $shop = new \App\Models\Shop();
$shop->id = 19;
$shop->plat_id = 1;
$shop->name = "test";
$shop->access_token = "7e00e77428cf45348cb1ca190dc769670377bd0c";
$endTime = DateTimeUtils::getMicroTime();
$beginTime = $endTime - 2*60*60*1000;
BusinessFactory::init()->make("快团团")->setShop($shop)->downloadAfterSaleOrdersAndSave($beginTime, $endTime, 1);*/
// $shop = new \App\Models\Shop();
// $shop->id = 19;
// $shop->plat_id = 1;
// $shop->name = "test";
// $shop->access_token = "7e00e77428cf45348cb1ca190dc769670377bd0c";
// $endTime = DateTimeUtils::getMicroTime();
// $beginTime = $endTime - 2*60*60*1000;
// BusinessFactory::init()->make("快团团")->setShop($shop)->downloadOrdersAndSave($beginTime, $endTime);
}
}