find($where); } elseif ($spec_type == 3) { $sku = Dever::db('sku', $app)->find($where, ['order' => 'price asc,id desc']); } if (isset($sku) && $sku && $sku['key']) { $result['price'] = $sku['price']; $result['id'] = $sku['id']; if (isset($sku['unum'])) { $result['unum'] = $sku['unum']; } $result['key'] = str_replace(',', '_', $sku['key']); $result['name'] = $this->getName($sku['key'], $app); } else { Dever::error('价格传入错误'); } return $result; } # 多规格获取多个价格 public function getList($where, $sku_id, $app) { $result = []; $sku = Dever::db('sku', $app)->select($where); if ($sku) { $spec = []; $result['info'] = []; foreach ($sku as $k => $v) { $t = $where; $k = str_replace(',', '_', $v['key']); $t['id'] = $v['id']; $t['key'] = $k; $t['pic'] = $v['pic']; $t['price'] = $v['price']; if (isset($v['unum'])) { $t['unum'] = $v['unum']; } $t['name'] = $this->getName($v['key'], $app); $result['price'][$k] = $t; if ($sku_id && $sku_id == $v['id']) { $result['info'] = $t; $spec = explode(',', $v['key']); } } $result['spec'] = Dever::load('spec', 'api')->getList($where, $app, $spec); } return $result; } # 获取某个sku的名称 public function getName($key, $app) { if (!$key || $key == '-1') { return '默认规格'; } else { $name = []; $where['id'] = ['in', $key]; $data = Dever::db('spec_value', $app)->select($where, array('order' => 'field(id, '.$key.')')); if ($data) { foreach ($data as $k => $v) { $info = Dever::db('spec', $app)->find($v['spec_id']); //$name[] = $info['name'] . ':' . $v['value']; $name[] = $v['value']; } } return implode(' & ', $name); } } }