diff --git a/crmeb/app/jobs/ProductCopyJob.php b/crmeb/app/jobs/ProductCopyJob.php
index f06025700..c44cca052 100644
--- a/crmeb/app/jobs/ProductCopyJob.php
+++ b/crmeb/app/jobs/ProductCopyJob.php
@@ -13,7 +13,11 @@ namespace app\jobs;
use app\services\product\product\CopyTaobaoServices;
+use app\services\product\product\StoreDescriptionServices;
+use app\services\product\product\StoreProductServices;
+use app\services\product\sku\StoreProductAttrValueServices;
use crmeb\basic\BaseJobs;
+use crmeb\services\CacheService;
use crmeb\traits\QueueTrait;
use think\facade\Log;
@@ -31,12 +35,34 @@ class ProductCopyJob extends BaseJobs
* @param $id
* @return bool
*/
- public function copyDescriptionImage($id)
+ public function copyDescriptionImage($id, $description, $image, $count)
{
try {
/** @var CopyTaobaoServices $copyTaobao */
$copyTaobao = app()->make(CopyTaobaoServices::class);
- $copyTaobao->uploadDescriptionImage((int)$id);
+ /** @var StoreDescriptionServices $storeDescriptionServices */
+ $storeDescriptionServices = app()->make(StoreDescriptionServices::class);
+ if (is_int(strpos($image, 'http'))) {
+ $d_image = $image;
+ } else {
+ $d_image = 'http://' . ltrim($image, '\//');
+ }
+ $description_cache = CacheService::getTokenBucket('desc_images_' . $id);
+ if ($description_cache === null) {
+ $description_cache = $description;
+ CacheService::setTokenBucket('desc_images_count' . $id, 0);
+ }
+ $res = $copyTaobao->downloadCopyImage($d_image);
+ $description_cache = str_replace($image, $res, $description_cache);
+ $desc_count = CacheService::getTokenBucket('desc_images_count' . $id) + 1;
+ if ($desc_count == $count) {
+ CacheService::clearToken('desc_images_' . $id);
+ CacheService::clearToken('desc_images_count' . $id);
+ $storeDescriptionServices->saveDescription((int)$id, $description_cache);
+ } else {
+ CacheService::setTokenBucket('desc_images_' . $id, $description_cache);
+ CacheService::setTokenBucket('desc_images_count' . $id, $desc_count);
+ }
} catch (\Throwable $e) {
Log::error('下载商品详情图片失败,失败原因:' . $e->getMessage());
}
@@ -48,12 +74,33 @@ class ProductCopyJob extends BaseJobs
* @param $id
* @return bool
*/
- public function copySliderImage($id)
+ public function copySliderImage($id, $image, $count)
{
try {
/** @var CopyTaobaoServices $copyTaobao */
$copyTaobao = app()->make(CopyTaobaoServices::class);
- $copyTaobao->uploadSliderImage((int)$id);
+ /** @var StoreProductServices $StoreProductServices */
+ $StoreProductServices = app()->make(StoreProductServices::class);
+ /** @var StoreProductAttrValueServices $StoreProductAttrValueServices */
+ $StoreProductAttrValueServices = app()->make(StoreProductAttrValueServices::class);
+ //下载图片
+ $res = $copyTaobao->downloadCopyImage($image);
+ //获取缓存中的轮播图
+ $slider_images = CacheService::getTokenBucket('slider_images_' . $id);
+ //缓存为null则赋值[]
+ if ($slider_images === null) $slider_images = [];
+ //将下载的图片插入数组
+ array_push($slider_images, $res);
+ //如果$slider_images中图片数量和传入的$count相等,说明已经下载完成,写入商品表,如果不等则继续插入缓存
+ if (count($slider_images) == $count) {
+ CacheService::clearToken('slider_images_' . $id);
+ $image = $slider_images[0];
+ $slider_images = $slider_images ? json_encode($slider_images) : '';
+ $StoreProductServices->update($id, ['slider_image' => $slider_images, 'image' => $image]);
+ $StoreProductAttrValueServices->update(['product_id' => $id], ['image' => $image]);
+ } else {
+ CacheService::setTokenBucket('slider_images_' . $id, $slider_images);
+ }
} catch (\Throwable $e) {
Log::error('下载商品轮播图片失败,失败原因:' . $e->getMessage());
}
diff --git a/crmeb/app/services/activity/integral/StoreIntegralServices.php b/crmeb/app/services/activity/integral/StoreIntegralServices.php
index 97d52c79a..05af5f9a4 100644
--- a/crmeb/app/services/activity/integral/StoreIntegralServices.php
+++ b/crmeb/app/services/activity/integral/StoreIntegralServices.php
@@ -214,7 +214,7 @@ class StoreIntegralServices extends BaseServices
$header[] = ['title' => $item['value'], 'key' => 'value' . ($key + 1), 'align' => 'center', 'minWidth' => 80];
}
$header[] = ['title' => '图片', 'slot' => 'pic', 'align' => 'center', 'minWidth' => 120];
- $header[] = ['title' => '兑换积分', 'slot' => 'price', 'align' => 'center', 'minWidth' => 80];
+ $header[] = ['title' => '兑换积分', 'key' => 'price', 'type' => 1, 'align' => 'center', 'minWidth' => 80];
$header[] = ['title' => '库存', 'key' => 'stock', 'align' => 'center', 'minWidth' => 80];
$header[] = ['title' => '兑换次数', 'key' => 'quota', 'type' => 1, 'align' => 'center', 'minWidth' => 80];
$header[] = ['title' => '重量(KG)', 'key' => 'weight', 'align' => 'center', 'minWidth' => 80];
@@ -245,7 +245,7 @@ class StoreIntegralServices extends BaseServices
foreach ($detail as $k => $v) {
$valueNew[$count]['value' . ($k + 1)] = $v;
}
- $valueNew[$count]['detail'] = json_encode(array_combine($head,$detail));
+ $valueNew[$count]['detail'] = json_encode(array_combine($head, $detail));
$valueNew[$count]['pic'] = $sukValue[$suk]['pic'] ?? '';
$valueNew[$count]['price'] = $sukValue[$suk]['price'] ? floatval($sukValue[$suk]['price']) : 0;
$valueNew[$count]['cost'] = $sukValue[$suk]['cost'] ? floatval($sukValue[$suk]['cost']) : 0;
diff --git a/crmeb/app/services/order/StoreCartServices.php b/crmeb/app/services/order/StoreCartServices.php
index 74c241909..d67e68230 100644
--- a/crmeb/app/services/order/StoreCartServices.php
+++ b/crmeb/app/services/order/StoreCartServices.php
@@ -259,6 +259,7 @@ class StoreCartServices extends BaseServices
$info['cart_num'] = $cart_num;
$info['productInfo'] = $productInfo ? $productInfo->toArray() : [];
$info['productInfo']['attrInfo'] = $attrInfo->toArray();
+ $info['attrInfo'] = $attrInfo->toArray();
$info['sum_price'] = $info['productInfo']['attrInfo']['price'];
//砍价
if ($bargain_id) {
diff --git a/crmeb/app/services/order/StoreOrderComputedServices.php b/crmeb/app/services/order/StoreOrderComputedServices.php
index 6d06e758f..9d37814d1 100644
--- a/crmeb/app/services/order/StoreOrderComputedServices.php
+++ b/crmeb/app/services/order/StoreOrderComputedServices.php
@@ -474,22 +474,26 @@ class StoreOrderComputedServices extends BaseServices
}
$tempId = $item['productInfo']['temp_id'] ?? 0;
$tempPostage = $truePostageArr[$tempId] ?? 0;
+ $type = $temp_num[$tempId]['type'];
$tempNumber = $temp_num[$tempId]['number'] ?? 0;
if (!$tempId || !$tempPostage || !$tempNumber) continue;
$cartNumber = $item['cart_num'];
-
if ((($cartAlready[$tempId]['number'] ?? 0) + $cartNumber) >= $tempNumber) {
$price = isset($cartAlready[$tempId]['price']) ? bcsub((string)$tempPostage, (string)$cartAlready[$tempId]['price'], 6) : $tempPostage;
} else {
$price = bcmul((string)$tempPostage, bcdiv((string)$cartNumber, (string)$tempNumber, 6), 6);
}
-
$cartAlready[$tempId]['number'] = bcadd((string)($cartNumber[$tempId]['number'] ?? 0), (string)$cartNumber, 4);
$cartAlready[$tempId]['price'] = bcadd((string)($cartNumber[$tempId]['price'] ?? 0.00), (string)$price, 4);
if ($express_rule_number && $express_rule_number < 100) {
$price = bcmul($price, bcdiv($express_rule_number, 100, 4), 4);
}
+ if ($type == 2) {
+ $price = bcmul($price, $item['productInfo']['attrInfo']['weight'], 6);
+ } elseif ($type == 3) {
+ $price = bcmul($price, $item['productInfo']['attrInfo']['volume'], 6);
+ }
$price = sprintf("%.2f", $price);
$item['postage_price'] = $price;
}
diff --git a/crmeb/app/services/product/product/CopyTaobaoServices.php b/crmeb/app/services/product/product/CopyTaobaoServices.php
index c04530d84..2a1c54e17 100644
--- a/crmeb/app/services/product/product/CopyTaobaoServices.php
+++ b/crmeb/app/services/product/product/CopyTaobaoServices.php
@@ -232,181 +232,6 @@ class CopyTaobaoServices extends BaseServices
return true;
}
- /**
- * 下载商品轮播图片
- * @param int $id
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function uploadSliderImage(int $id)
- {
- //查询附件分类
- /** @var SystemAttachmentCategoryServices $systemAttachmentCategoryService */
- $systemAttachmentCategoryService = app()->make(SystemAttachmentCategoryServices::class);
- /** @var StoreProductServices $StoreProductServices */
- $StoreProductServices = app()->make(StoreProductServices::class);
- /** @var StoreProductAttrValueServices $StoreProductAttrValueServices */
- $StoreProductAttrValueServices = app()->make(StoreProductAttrValueServices::class);
- $AttachmentCategory = $systemAttachmentCategoryService->getOne(['name' => $this->AttachmentCategoryName]);
- //不存在则创建
- if (!$AttachmentCategory) $AttachmentCategory = $systemAttachmentCategoryService->save(['pid' => '0', 'name' => $this->AttachmentCategoryName, 'enname' => '']);
- //生成附件目录
- try {
- if (make_path('attach', 3, true) === '')
- throw new AdminException('无法创建文件夹,请检查您的上传目录权限:' . app()->getRootPath() . 'public' . DS . 'uploads' . DS . 'attach' . DS);
- } catch (\Exception $e) {
- throw new AdminException($e->getMessage() . '或无法创建文件夹,请检查您的上传目录权限:' . app()->getRootPath() . 'public' . DS . 'uploads' . DS . 'attach' . DS);
- }
- $slider_image = $StoreProductServices->value(['id' => $id], 'slider_image');
- $slider_image = $slider_image ? json_decode($slider_image, true) : [];
- $images = [];
- //放入轮播图
- foreach ($slider_image as $item) {
- $value = ['w' => 640, 'h' => 640, 'line' => $item, 'valuename' => 'slider_image', 'isTwoArray' => true];
- array_push($images, $value);
- }
- $res = $this->uploadImage($images, false, 0, $AttachmentCategory['id']);
- if (!is_array($res)) throw new AdminException($this->errorInfo ? $this->errorInfo : '保存图片失败');
- if (isset($res['slider_image'])) $slider_images = $res['slider_image'];
- if (count($slider_images)) {
- $slider_images = array_map(function ($item) {
- $item = str_replace('\\', '/', $item);
- return $item;
- }, $slider_images);
- }
- $image = $slider_images[0];
- $slider_images = $slider_images ? json_encode($slider_images) : '';
- $StoreProductServices->update($id, ['slider_image' => $slider_images, 'image' => $image]);
- $StoreProductAttrValueServices->update(['product_id' => $id], ['image' => $image]);
- return true;
- }
-
-// /**
-// * 保存数据
-// * @param array $data
-// * @throws \think\db\exception\DataNotFoundException
-// * @throws \think\db\exception\DbException
-// * @throws \think\db\exception\ModelNotFoundException
-// */
-// public function save(array $data)
-// {
-// $detail = $data['attrs'];
-// $attrs = $data['items'];
-// $data['spec_type'] = $data['attrs'] ? 1 : 0;
-// if (count($detail)) {
-// $data['price'] = min(array_column($detail, 'price'));
-// $data['ot_price'] = min(array_column($detail, 'ot_price'));
-// $data['cost'] = min(array_column($detail, 'cost'));
-// $data['stock'] = array_sum(array_column($detail, 'stock'));
-// }
-// unset($data['attrs'], $data['items'], $data['info']);
-// if (!$data['cate_id']) throw new AdminException('请选择分类!');
-// if (!$data['store_name']) throw new AdminException('请填写商品名称');
-// if (!$data['unit_name']) throw new AdminException('请填写商品单位');
-// if (!$data['temp_id']) throw new AdminException('请选择运费模板');
-// //查询附件分类
-// /** @var SystemAttachmentCategoryServices $systemAttachmentCategoryService */
-// $systemAttachmentCategoryService = app()->make(SystemAttachmentCategoryServices::class);
-// $AttachmentCategory = $systemAttachmentCategoryService->getOne(['name' => $this->AttachmentCategoryName]);
-// //不存在则创建
-// if (!$AttachmentCategory) $AttachmentCategory = $systemAttachmentCategoryService->save(['pid' => '0', 'name' => $this->AttachmentCategoryName, 'enname' => '']);
-// //生成附件目录
-// try {
-// if (make_path('attach', 3, true) === '')
-// throw new AdminException('无法创建文件夹,请检查您的上传目录权限:' . app()->getRootPath() . 'public' . DS . 'uploads' . DS . 'attach' . DS);
-//
-// } catch (\Exception $e) {
-// throw new AdminException($e->getMessage() . '或无法创建文件夹,请检查您的上传目录权限:' . app()->getRootPath() . 'public' . DS . 'uploads' . DS . 'attach' . DS);
-// }
-// ini_set("max_execution_time", '600');
-// /** @var StoreProductServices $storeProductServices */
-// $storeProductServices = app()->make(StoreProductServices::class);
-// /** @var StoreDescriptionServices $storeDescriptionServices */
-// $storeDescriptionServices = app()->make(StoreDescriptionServices::class);
-// /** @var StoreProductCateServices $storeProductCateServices */
-// $storeProductCateServices = app()->make(StoreProductCateServices::class);
-// /** @var StoreProductAttrServices $storeProductAttrServices */
-// $storeProductAttrServices = app()->make(StoreProductAttrServices::class);
-// /** @var StoreProductCouponServices $storeProductCouponServices */
-// $storeProductCouponServices = app()->make(StoreProductCouponServices::class);
-// /** @var StoreCategoryServices $storeCategoryServices */
-// $storeCategoryServices = app()->make(StoreCategoryServices::class);
-// //开始图片下载处理
-// $this->transaction(function () use ($attrs, $detail, $data, $AttachmentCategory, $storeCategoryServices, $storeProductServices, $storeDescriptionServices, $storeProductCateServices, $storeProductAttrServices, $storeProductCouponServices) {
-// //放入主图
-// $images = [
-// ['w' => 305, 'h' => 305, 'line' => $data['image'], 'valuename' => 'image']
-// ];
-// //放入轮播图
-// foreach ($data['slider_image'] as $item) {
-// $value = ['w' => 640, 'h' => 640, 'line' => $item, 'valuename' => 'slider_image', 'isTwoArray' => true];
-// array_push($images, $value);
-// }
-// //执行下载
-// $res = $this->uploadImage($images, false, 0, $AttachmentCategory['id']);
-// if (!is_array($res)) throw new AdminException($this->errorInfo ?: '保存图片失败');
-// if (isset($res['image'])) $data['image'] = $res['image'];
-// if (isset($res['slider_image'])) $data['slider_image'] = $res['slider_image'];
-// $data['image'] = str_replace('\\', '/', $data['image']);
-// if (count($data['slider_image'])) {
-// $data['slider_image'] = array_map(function ($item) {
-// $item = str_replace('\\', '/', $item);
-// return $item;
-// }, $data['slider_image']);
-// }
-// $data['slider_image'] = count($data['slider_image']) ? json_encode($data['slider_image']) : '';
-// //替换并下载详情里面的图片默认下载全部图片
-// $data['description'] = preg_replace('##is', '', $data['description']);
-// $data['description'] = $this->uploadImage($data['description_images'], $data['description'], 1, $AttachmentCategory['id']);
-// unset($data['description_images']);
-// $description = $data['description'];
-// unset($data['description']);
-// $data['add_time'] = time();
-// $cate_id = $data['cate_id'];
-// $data['cate_id'] = implode(',', $data['cate_id']);
-// $productInfo = $storeProductServices->getOne(['soure_link' => $data['soure_link']]);
-// if ($productInfo) {
-// $productInfo->slider_image = $data['slider_image'];
-// $productInfo->image = $data['image'];
-// $productInfo->store_name = $data['store_name'];
-// $res = $storeProductServices->update($productInfo->id, $data);
-// if (!$res) throw new AdminException('保存失败');
-// $storeDescriptionServices->saveDescription($productInfo->id, $description);
-// } else {
-// $data['code_path'] = '';
-// $data['spu'] = $this->createSpu();
-// if ($data['spec_type'] == 0) {
-// $attrs = [
-// [
-// 'value' => '规格',
-// 'detailValue' => '',
-// 'attrHidden' => '',
-// 'detail' => ['默认']
-// ]
-// ];
-// $detail[0]['value1'] = '规格';
-// $detail[0]['detail'] = ['规格' => '默认'];
-// }
-// $res = $storeProductServices->create($data);
-// $storeDescriptionServices->saveDescription((int)$res['id'], $description);
-// $cateData = [];
-// $time = time();
-// $cateGory = $storeCategoryServices->getColumn([['id', 'IN', $cate_id]], 'id,pid', 'id');
-// foreach ($cate_id as $cid) {
-// if ($cid && isset($cateGory[$cid]['pid'])) {
-// $cateData[] = ['product_id' => $res['id'], 'cate_id' => $cid, 'cate_pid' => $cateGory[$cid]['pid'], 'status' => $data['is_show'], 'add_time' => $time];
-// }
-// }
-// $storeProductCateServices->change($res['id'], $cateData);
-// $skuList = $storeProductServices->validateProductAttr($attrs, $detail, (int)$res['id']);
-// $attrRes = $storeProductAttrServices->saveProductAttr($skuList, (int)$res['id'], 0);
-// if (!empty($coupon_ids)) $storeProductCouponServices->setCoupon((int)$res['id'], $coupon_ids);
-// if (!$attrRes) throw new AdminException('添加失败!');
-// }
-// });
-// }
-
/**
* 上传图片处理
* @param array $images
@@ -599,4 +424,58 @@ class CopyTaobaoServices extends BaseServices
{
return substr(implode(NULL, array_map('ord', str_split(substr(uniqid(), 7, 13), 1))), 0, 8) . str_pad((string)mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);
}
+
+ /**
+ * 下载远程图片并上传
+ * @param $image
+ * @return false|mixed|string
+ * @throws \Exception
+ */
+ public function downloadCopyImage($image)
+ {
+ //查询附件分类
+ /** @var SystemAttachmentCategoryServices $systemAttachmentCategoryService */
+ $attachmentCategoryService = app()->make(SystemAttachmentCategoryServices::class);
+ $AttachmentCategory = $attachmentCategoryService->getOne(['name' => '远程下载']);
+ //不存在则创建
+ if (!$AttachmentCategory) {
+ $AttachmentCategory = $systemAttachmentCategoryService->save(['pid' => '0', 'name' => '远程下载', 'enname' => '']);
+ }
+
+ //生成附件目录
+ if (make_path('attach', 3, true) === '') {
+ throw new AdminException('无法创建文件夹,请检查您的上传目录权限:' . app()->getRootPath() . 'public' . DS . 'uploads' . DS . 'attach' . DS);
+ }
+
+ //上传图片
+ /** @var SystemAttachmentServices $systemAttachmentService */
+ $systemAttachmentService = app()->make(SystemAttachmentServices::class);
+ $siteUrl = sys_config('site_url');
+ $uploadValue = $this->downloadImage($image);
+ if (is_array($uploadValue)) {
+ //TODO 拼接图片地址
+ if ($uploadValue['image_type'] == 1) {
+ $imagePath = $siteUrl . $uploadValue['path'];
+ } else {
+ $imagePath = $uploadValue['path'];
+ }
+ //写入数据库
+ if (!$uploadValue['is_exists'] && $AttachmentCategory['id']) {
+ $systemAttachmentService->save([
+ 'name' => $uploadValue['name'],
+ 'real_name' => $uploadValue['name'],
+ 'att_dir' => $imagePath,
+ 'satt_dir' => $imagePath,
+ 'att_size' => $uploadValue['size'],
+ 'att_type' => $uploadValue['mime'],
+ 'image_type' => $uploadValue['image_type'],
+ 'module_type' => 1,
+ 'time' => time(),
+ 'pid' => $AttachmentCategory['id']
+ ]);
+ }
+ return $imagePath;
+ }
+ return false;
+ }
}
diff --git a/crmeb/app/services/product/product/StoreProductServices.php b/crmeb/app/services/product/product/StoreProductServices.php
index 649531f3b..3a5eca875 100644
--- a/crmeb/app/services/product/product/StoreProductServices.php
+++ b/crmeb/app/services/product/product/StoreProductServices.php
@@ -377,8 +377,8 @@ class StoreProductServices extends BaseServices
$valueNew = [];
$count = 0;
- foreach ($value as $suk) {
- $detail = explode(',', $suk);
+ foreach ($value as $suk) {
+ $detail = explode(',', $suk);
$types = 1;
if ($id) {
@@ -423,7 +423,7 @@ class StoreProductServices extends BaseServices
$sukValue[$suk]['brokerage_two'] = 0;
}
if ($types) { //编辑商品时,将没有规格的数据不生成默认值
- foreach ($head as $k => $title) {
+ foreach ($head as $k => $title) {
$header[$k]['title'] = $title;
$header[$k]['align'] = 'center';
$header[$k]['minWidth'] = 130;
@@ -432,7 +432,7 @@ class StoreProductServices extends BaseServices
$valueNew[$count]['value' . ($k + 1)] = $v;
$header[$k]['key'] = 'value' . ($k + 1);
}
- $valueNew[$count]['detail'] = array_combine($head,$detail);
+ $valueNew[$count]['detail'] = array_combine($head, $detail);
$valueNew[$count]['pic'] = $sukValue[$suk]['pic'] ?? '';
$valueNew[$count]['price'] = $sukValue[$suk]['price'] ? floatval($sukValue[$suk]['price']) : 0;
$valueNew[$count]['cost'] = $sukValue[$suk]['cost'] ? floatval($sukValue[$suk]['cost']) : 0;
@@ -555,6 +555,7 @@ class StoreProductServices extends BaseServices
}
$data['cate_id'] = implode(',', $data['cate_id']);
$data['label_id'] = implode(',', $data['label_id']);
+ $slider_image = $data['slider_image'];
$data['image'] = $data['slider_image'][0];
$data['slider_image'] = json_encode($data['slider_image']);
$data['stock'] = array_sum(array_column($detail, 'stock'));
@@ -575,7 +576,7 @@ class StoreProductServices extends BaseServices
if (isset($data['description_images'])) {
$descriptionImages = $data['description_images'];
}
- $this->transaction(function () use ($id, $is_copy, $data, $descriptionImages, $description, $cate_id, $storeDescriptionServices, $storeProductCateServices, $storeProductAttrServices, $storeProductCouponServices, $storeCategoryServices, $detail, $attr, $coupon_ids, $type) {
+ $this->transaction(function () use ($id, $is_copy, $data, $descriptionImages, $description, $cate_id, $storeDescriptionServices, $storeProductCateServices, $storeProductAttrServices, $storeProductCouponServices, $storeCategoryServices, $detail, $attr, $coupon_ids, $type, $slider_image) {
if ($data['spec_type'] == 0) {
$attr = [
[
@@ -639,11 +640,18 @@ class StoreProductServices extends BaseServices
$attrRes = $storeProductAttrServices->saveProductAttr($skuList, $res->id, 0, $data['is_vip'], $data['virtual_type']);
if (!empty($coupon_ids)) $storeProductCouponServices->setCoupon($res->id, $coupon_ids);
if (!$attrRes) throw new AdminException('添加失败!');
+
+ //采集商品下载图片
if ($type == -1) {
- //下载商品详情图片
- ProductCopyJob::dispatchDo('copyDescriptionImage', [$res->id]);
- //下载商品轮播图片
- ProductCopyJob::dispatchDo('copySliderImage', [$res->id]);
+ //下载商品轮播图
+ foreach ($slider_image as $s_image) {
+ ProductCopyJob::dispatchDo('copySliderImage', [$res->id, $s_image, count($slider_image)]);
+ }
+ preg_match_all('#]*>#i', $description, $match);
+ foreach ($match[1] as $d_image) {
+ ProductCopyJob::dispatchDo('copyDescriptionImage', [$res->id, $description, $d_image, count($match[1])]);
+ }
+
}
}
});
@@ -921,7 +929,7 @@ class StoreProductServices extends BaseServices
$header[] = ['title' => '成本价', 'key' => 'cost', 'align' => 'center', 'minWidth' => 80];
$header[] = ['title' => '日常售价', 'key' => 'r_price', 'align' => 'center', 'minWidth' => 80];
} elseif ($type == 4) {
- $header[] = ['title' => '兑换积分', 'slot' => 'price', 'align' => 'center', 'minWidth' => 80];
+ $header[] = ['title' => '兑换积分', 'key' => 'price', 'type' => 1, 'align' => 'center', 'minWidth' => 80];
} elseif ($type == 6) {
$header[] = ['title' => '预售价', 'key' => 'price', 'type' => 1, 'align' => 'center', 'minWidth' => 80];
$header[] = ['title' => '成本价', 'key' => 'cost', 'align' => 'center', 'minWidth' => 80];
@@ -1258,7 +1266,7 @@ class StoreProductServices extends BaseServices
$storeInfo['userCollect'] = $storeProductRelationServices->isProductRelation(['uid' => $uid, 'product_id' => $id, 'type' => 'collect', 'category' => 'product']);
$storeInfo['userLike'] = false;
$storeInfo['small_image'] = $storeInfo['image'];
- $storeInfo = get_thumb_water($storeInfo, 'big', ['image', 'slider_image', 'small_image']);
+ $storeInfo = get_thumb_water($storeInfo, 'small', ['small_image']);
//预售相关
if ($storeInfo['presale']) {
@@ -1322,6 +1330,7 @@ class StoreProductServices extends BaseServices
/** @var MemberCardServices $memberCardService */
$memberCardService = app()->make(MemberCardServices::class);
$data['svip_open'] = $vipStatus = $memberCardService->isOpenMemberCard('vip_price');
+ $data['svip_price_open'] = (int)sys_config('member_price_status');
$data['storeInfo']['svip_economize_price'] = bcsub((string)$data['storeInfo']['price'], (string)$data['storeInfo']['vip_price'], 2);
if (!$this->vipIsOpen(!!$storeInfo['is_vip'], $vipStatus)) {
$data['storeInfo']['vip_price'] = 0;