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']]);
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| } |