place = $place;
}
# 获取价格
public function get($info, $set, $buy_num = 1, $rebate = [])
{
# 生成范围
$info['scope'] = $set['scope'] . ',' . $info['id'];
# 查看库存
if (isset($info['sku_id'])) {
# 这种是资源传过来的
$info['stock'] = Dever::load(\Pstock\Lib\Info::class)->yue($info['id'], $info['sku_id']);
# 检测scope是否包含有parent_id
if (isset($set['parent_id']) && $set['parent_id'] <= 0 && $info['cate_child_id']) {
$info['scope'] = $set['scope'] . ',' . $info['cate_child_id'] . ',' . $info['id'];
} else {
$info['scope'] = $set['scope'] . ',' . $info['id'];
}
} elseif (isset($info['info_id'])) {
# 这种是sku传过来的
$info['stock'] = Dever::load(\Pstock\Lib\Info::class)->yue($info['info_id'], $info['id']);
$info['scope'] = $set['scope'] . ',' . $info['info_id'];
}
# 原价
$info['m_price'] = Dever::number($info['price']);
# 促销 必须登录才有
$info['promotion'] = $info['rebate'] = [];
if ($this->place->uid) {
$info['promotion'] = Dever::load(\Pbenefit\Lib\Item::class)->load('promotion')->get($this->place->uid, $info['scope'], $info['price'], $set['score']['exp']);
if ($info['promotion']) {
$info['price'] = $info['promotion']['price'];
}
}
if ($info['price'] <= 0) {
$info['price'] = 0;
}
if ($info['price'] == $info['m_price']) {
$info['m_price'] = 0;
}
list($info['price_text'], $info['m_price_text']) = Dever::load(\Pscore\Lib\Info::class)->getText([$info['price'], $info['m_price']], $set['score']);
# 获取促销描述
$info['promotion_text'] = '';
if ($info['promotion']) {
$info['promotion_text'] = '
';
$info['promotion_text'] .= '原价 | | '.$info['m_price_text'].' |
';
$promotion = [$info['promotion']];
foreach ($promotion as $k => $v) {
$text = Dever::load(\Pscore\Lib\Info::class)->getText($v['price'], $set['score']);
$type = ' | ';
if ($v['type'] != 3) {
$type = ''.$v['value'].' | ';
}
$info['promotion_text'] .= ''.$v['name'].' | '.$type.''.$text.' |
';
}
$info['promotion_text'] .= '
';
}
# 购买数量
$info['total_price'] = $info['price'];
if ($buy_num >= 0) {
if ($info['stock']['num'] >= 0 && $info['stock']['num'] <= $buy_num) {
$buy_num = $info['stock']['num'];
}
$info['buy_num'] = Dever::number($buy_num);
$info['total_price'] = Dever::math('mul', $info['price'], $buy_num);
/*
if (isset($info['unum'])) {
$info['total_unum'] = Dever::math('mul', $info['unum'], $buy_num);
}
*/
} else {
# 返利
if ($this->place->uid) {
$info['money'] = Dever::math('mul', $info['total_price'], $set['score']['exp']);
$info['rebate'] = Dever::load(\Pbenefit\Lib\Item::class)->load('rebate')->get($this->place->uid, $info['scope'], $info['money'], $rebate);
}
# 获取促销标签
$info['promotion_tag'] = Dever::load(\Pbenefit\Lib\Item::class)->load('promotion')->getInfoByTag($info['scope']);
}
return $info;
}
# 获取专享
public function getHave($info)
{
$result['status'] = 1;
if ($info['have_vip']) {
$result['status'] = 2;
$result['list'] = [];
$where['id'] = ['in', $info['have_vip']];
$level = Dever::db('prole/level')->select($where, ['col' => 'id,name,info_id']);
if ($level) {
if ($this->place->uid && !isset($this->place->user['role_level'])) {
$this->place->user['role_level'] = Dever::db('puser/role')->getLevel($this->place->uid);
}
$role = [];
foreach ($level as $v) {
if (empty($role[$v['info_id']])) {
$role[$v['info_id']] = Dever::db('prole/info')->find(['id' => $v['info_id']], ['col' => 'id,name']);
$role[$v['info_id']]['list'] = [];
}
$role[$v['info_id']]['list'][] = $v;
if ($this->place->user['role_level'] && in_array($v['id'], $this->place->user['role_level'])) {
$result['status'] = 1;
}
}
$result['list'] = array_values($role);
}
}
return $result;
}
}