You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ymww_backend/application/admin/model/shopro/activity/SkuPrice.php

129 lines
2.9 KiB

1 year ago
<?php
namespace app\admin\model\shopro\activity;
use app\admin\model\shopro\Common;
class SkuPrice extends Common
{
protected $name = 'shopro_activity_sku_price';
protected $type = [
'ext' => 'json',
];
// 追加属性
protected $append = [
'status_text',
];
/**
* 普通拼团,团长价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLeaderPriceAttr($value, $data)
{
$ext = $data['ext'];
$is_leader_discount = $ext['is_leader_discount'] ?? 0;
$leader_price = $ext['leader_price'] ?? 0;
$leader_price = $is_leader_discount ? $leader_price : $data['price'];
return $leader_price;
}
private function currentLadder($data, $level, $is_leader = false)
{
$ext = $data['ext'];
$is_leader_discount = $ext['is_leader_discount'] ?? 0;
$ladders = $ext['ladders'] ?? [];
$ladders = array_column($ladders, null, 'ladder_level');
$currentLadder = $ladders[$level] ?? []; // 当前阶梯的 价格数据
$key = ($is_leader && $is_leader_discount) ? 'leader_ladder_price' : 'ladder_price';
return $currentLadder[$key] ?? 0;
}
/**
* 阶梯拼团,第一阶梯价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLadderOneAttr($value, $data)
{
return $this->currentLadder($data, 'ladder_one');
}
/**
* 阶梯拼团,第二阶梯价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLadderTwoAttr($value, $data)
{
return $this->currentLadder($data, 'ladder_two');
}
/**
* 阶梯拼团,第二阶梯价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLadderThreeAttr($value, $data)
{
return $this->currentLadder($data, 'ladder_three');
}
/**
* 阶梯拼团,第一阶梯团长价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLadderOneLeaderAttr($value, $data)
{
return $this->currentLadder($data, 'ladder_one', true);
}
/**
* 阶梯拼团,第二阶团长梯价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLadderTwoLeaderAttr($value, $data)
{
return $this->currentLadder($data, 'ladder_two', true);
}
/**
* 阶梯拼团,第二阶团长梯价
*
* @param string $value
* @param array $data
* @return string
*/
public function getLadderThreeLeaderAttr($value, $data)
{
return $this->currentLadder($data, 'ladder_three', true);
}
}