|
@@ -119,6 +119,60 @@ class Goods extends Common
|
|
|
return isset($list[$value]) ? $list[$value] : '';
|
|
|
}
|
|
|
|
|
|
+ //最低价格,金钱格式,而不是数组格式
|
|
|
+ public function getPriceminAttr($value, $data)
|
|
|
+ {
|
|
|
+ // 前端传入的 session_id
|
|
|
+ $activity_id = session('goods-activity_id:' . $data['id']);
|
|
|
+ if ($activity_id && $this->activity) {
|
|
|
+ // 活动商品的价格
|
|
|
+ $skuPrices = $data['new_sku_prices'] ?? [];
|
|
|
+ $prices = $skuPrices instanceof \think\Collection ? $skuPrices->column('min_price') : array_column($skuPrices, 'min_price');
|
|
|
+ $maxPrices = $skuPrices instanceof \think\Collection ? $skuPrices->column('max_price') : array_column($skuPrices, 'max_price');
|
|
|
+ $min_price = $prices ? min($prices) : $data['price'];
|
|
|
+ $max_price = $maxPrices ? max($maxPrices) : $data['price'];
|
|
|
+
|
|
|
+ //原版
|
|
|
+ /*$priceArr[] = $min_price;
|
|
|
+ if ($min_price < $max_price) {
|
|
|
+ $priceArr[] = $max_price;
|
|
|
+ }*/
|
|
|
+ //新的
|
|
|
+ $priceArr = $min_price;
|
|
|
+ } else if (isset($data['show_score_shop'])) {
|
|
|
+ // 积分商品价格
|
|
|
+ $skuPrices = $data['new_sku_prices'] ?? [];
|
|
|
+ $skuPrices = $skuPrices instanceof \think\Collection ? $skuPrices->column(null, 'score') : array_column($skuPrices, null, 'score');
|
|
|
+ ksort($skuPrices);
|
|
|
+ $skuPrice = current($skuPrices); // 需要积分最少的规格
|
|
|
+ if ($skuPrice) {
|
|
|
+ // 不自动拼接积分
|
|
|
+ // $price = $skuPrice['score'] . '积分';
|
|
|
+ // if ($skuPrice['price'] > 0) {
|
|
|
+ // $price .= '+¥' . $skuPrice['price'];
|
|
|
+ // }
|
|
|
+ // $priceArr[] = $price;
|
|
|
+ $priceArr[] = $skuPrice['price'];
|
|
|
+ } else {
|
|
|
+ // 防止没有规格
|
|
|
+ $priceArr[] = $data['price'];
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 普通商品的价格区间
|
|
|
+ $price = $value ? $value : ($data['price'] ?? 0);
|
|
|
+ //原版
|
|
|
+ /*$priceArr = [$price];
|
|
|
+ if ($price && isset($data['is_sku']) && $data['is_sku']) {
|
|
|
+ $max_price = $this->max_sku_price->price;
|
|
|
+ if ($price < $max_price) {
|
|
|
+ $priceArr[] = $max_price;
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+ $priceArr = $price;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $priceArr;
|
|
|
+ }
|
|
|
|
|
|
public function getPriceAttr($value, $data)
|
|
|
{
|
|
@@ -131,6 +185,7 @@ class Goods extends Common
|
|
|
$maxPrices = $skuPrices instanceof \think\Collection ? $skuPrices->column('max_price') : array_column($skuPrices, 'max_price');
|
|
|
$min_price = $prices ? min($prices) : $data['price'];
|
|
|
$max_price = $maxPrices ? max($maxPrices) : $data['price'];
|
|
|
+
|
|
|
$priceArr[] = $min_price;
|
|
|
if ($min_price < $max_price) {
|
|
|
$priceArr[] = $max_price;
|
|
@@ -156,6 +211,7 @@ class Goods extends Common
|
|
|
} else {
|
|
|
// 普通商品的价格区间
|
|
|
$price = $value ? $value : ($data['price'] ?? 0);
|
|
|
+
|
|
|
$priceArr = [$price];
|
|
|
if ($price && isset($data['is_sku']) && $data['is_sku']) {
|
|
|
$max_price = $this->max_sku_price->price;
|