|
@@ -2,36 +2,44 @@
|
|
|
use Dever;
|
|
|
class Sku
|
|
|
{
|
|
|
- # 获取价格
|
|
|
- public function getPrice($where, $spec_type, $score, $app)
|
|
|
+ # 获取当前价格
|
|
|
+ public function getPrice($where, $spec_type, $app)
|
|
|
{
|
|
|
- $result = array();
|
|
|
- $result['value'] = 0;
|
|
|
- $result['text'] = '免费';
|
|
|
- $result['spec'] = array();
|
|
|
- $result['list'] = array();
|
|
|
+ $result['price'] = 0;
|
|
|
+ $result['id'] = 0;
|
|
|
+ $result['name'] = '';
|
|
|
if ($spec_type == 2) {
|
|
|
$where['key'] = '-1';
|
|
|
$sku = Dever::db('sku', $app)->find($where);
|
|
|
- if ($sku) {
|
|
|
- $result['value'] = $sku['price'];
|
|
|
- $result['text'] = $sku['price'] . $score;
|
|
|
- }
|
|
|
} elseif ($spec_type == 3) {
|
|
|
- $sku = Dever::db('sku', $app)->select($where, array('order' => 'price asc,id desc'));
|
|
|
- if ($sku) {
|
|
|
- $min = $sku[0];
|
|
|
- #$max = $sku[count($sku)-1];
|
|
|
- $result['value'] = $min['price'];
|
|
|
- $result['text'] = $min['price'] . $score;
|
|
|
- $result['spec'] = Dever::load('spec', 'api')->getList($app, $where);
|
|
|
- foreach ($sku as $k => $v) {
|
|
|
- $t = array();
|
|
|
- $k = $v['key'];
|
|
|
- $t['pic'] = $v['pic'];
|
|
|
- $t['value'] = $v['price'];
|
|
|
- $t['text'] = $v['price'] . $score;
|
|
|
- $result['list'][$k] = $t;
|
|
|
+ $sku = Dever::db('sku', $app)->find($where, array('order' => 'price asc,id desc'));
|
|
|
+ }
|
|
|
+ if (isset($sku) && $sku) {
|
|
|
+ $result['price'] = $sku['price'];
|
|
|
+ $result['id'] = $sku['id'];
|
|
|
+ $result['name'] = $this->getName($sku['key'], $app);
|
|
|
+ }
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ # 多规格获取多个价格
|
|
|
+ public function getList($where, $sku_id, $app)
|
|
|
+ {
|
|
|
+ $result = array();
|
|
|
+ $sku = Dever::db('sku', $app)->select($where, array('order' => 'price asc,id desc'));
|
|
|
+ if ($sku) {
|
|
|
+ $result['info'] = array();
|
|
|
+ $result['spec'] = Dever::load('spec', 'api')->getList($where, $app);
|
|
|
+ foreach ($sku as $k => $v) {
|
|
|
+ $t = array();
|
|
|
+ $k = str_replace(',', '_', $v['key']);
|
|
|
+ $t['id'] = $v['id'];
|
|
|
+ $t['pic'] = $v['pic'];
|
|
|
+ $t['value'] = $v['price'];
|
|
|
+ $result['price'][$k] = $t;
|
|
|
+ if ($sku_id && $sku_id == $v['id']) {
|
|
|
+ $t['name'] = $this->getName($v['key'], $app);
|
|
|
+ $result['info'] = $t;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -41,7 +49,19 @@ class Sku
|
|
|
# 获取某个sku的名称
|
|
|
public function getName($key, $app)
|
|
|
{
|
|
|
- $where['id'] = array('in', $key);
|
|
|
- $data = Dever::db('spec_value', $app)->kv($where);
|
|
|
+ if (!$key || $key == '-1') {
|
|
|
+ return '';
|
|
|
+ } else {
|
|
|
+ $name = array();
|
|
|
+ $where['id'] = array('in', $key);
|
|
|
+ $data = Dever::db('spec_value', $app)->select($where);
|
|
|
+ if ($data) {
|
|
|
+ foreach ($data as $k => $v) {
|
|
|
+ $info = Dever::db('spec', $app)->find($v['spec_id']);
|
|
|
+ $name[] = $info['name'] . ':' . $v['value'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return implode(',', $name);
|
|
|
+ }
|
|
|
}
|
|
|
}
|