鲜花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\Services\Business\BusinessFactory;
use App\Utils\DateTimeUtils; use App\Utils\DateTimeUtils;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;
class KttOrderQuery extends Command class KttOrderQuery extends Command
{ {

View File

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

View File

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

View File

@ -41,7 +41,7 @@ class DailyStockRecordController extends Controller
$query->where('external_sku_id', '=', $request->external_sku_id); $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); return JsonResource::collection($dailyStockRecord);
} }

View File

@ -42,7 +42,7 @@ class LossRecordController extends Controller
$query->where('name', 'like', '%' . $request->title . '%'); $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); return JsonResource::collection($dailyStockRecord);
} }

View File

@ -44,7 +44,7 @@ class PurchaseRecordController extends Controller
$query->where('name', 'like', '%' . $request->title . '%'); $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); return JsonResource::collection($dailyStockRecord);
} }

View File

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

View File

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

View File

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

View File

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