57 lines
1.8 KiB
PHP
57 lines
1.8 KiB
PHP
<?php
|
|
declare (strict_types=1);
|
|
|
|
namespace app\service;
|
|
|
|
use app\exception\BusinessException;
|
|
use app\model\Product;
|
|
use app\service\util\BlueBrothersClientUtil;
|
|
use BlueBrothers\Openapi\OpenapiException;
|
|
|
|
/**
|
|
* @author canny
|
|
* @date 2024/2/23 16:51
|
|
**/
|
|
class ProductService extends BaseService
|
|
{
|
|
public function __construct()
|
|
{
|
|
$this->model = app()->make(Product::class);
|
|
}
|
|
|
|
public function updateProductSaleNum($productId, $saleNum)
|
|
{
|
|
$product = $this->detailById($productId);
|
|
$this->updateOne([['id', '=', $productId]], ['sale_num' => $product['sale_num'] + $saleNum]);
|
|
}
|
|
|
|
/**
|
|
* @throws OpenapiException
|
|
* @throws BusinessException
|
|
*/
|
|
public function sync()
|
|
{
|
|
$list = BlueBrothersClientUtil::getClient()->RechargeProduct();
|
|
if (empty($list['products'])) {
|
|
throw new BusinessException('未查询到关联商品.');
|
|
}
|
|
// $productMapService = app()->make(ProductMapService::class);
|
|
foreach ($list['products'] as $product) {
|
|
$supplierProduct = Product::getBySupplierProductId($product['product_id']);
|
|
if ($supplierProduct->isEmpty()) {
|
|
Product::create([
|
|
'name' => $product['item_name'],
|
|
'face_amount' => $product['original_price'],
|
|
'price' => $product['channel_price'],
|
|
'supplier_product_id' => $product['product_id']
|
|
]);
|
|
} else {
|
|
Product::update([
|
|
'name' => $product['item_name'],
|
|
'face_amount' => $product['original_price'],
|
|
'price' => $product['channel_price']],
|
|
['supplier_product_id' => $product['product_id']]);
|
|
}
|
|
}
|
|
}
|
|
} |