123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- <?php namespace Place\Lib;
- use Dever;
- use Place;
- class Price
- {
- public function get($info, $app, $type, $button)
- {
- $num = Dever::input('num', 'is_numeric', '数量', 1);
- $result = array();
- $result['status'] = 1;
- $result['text'] = '';
- $result['original'] = $info['price'];
- $result['value'] = $info['price'];
- $result['button'] = $button;
- $result['num'] = $num;
- $result['list'] = array();
- $order = Dever::db('order', 'place')->find(array('type' => $type, 'type_id' => $info['id'], 'uid' => Place::$uid, 'status' => 5));
- if ($order) {
- $result['value'] = $order['cash'];
- } else {
- $vip = Dever::load('vip', 'place')->getResourcePrice($info['price'], $info['id'], $app, $type);
- $agent = Dever::load('agent', 'place')->getResourcePrice($info['price'], $info['id'], $app, $type);
- if ($this->getAlone($vip, $agent, $result)) {
- return $result;
- }
- if ($info['price'] > 0) {
- $this->getList($vip, $agent, $result);
- $info['price'] = $this->getDiscount($info['price'], $vip['list'], $agent['list']);
- if ($info['price'] > 0) {
- if (isset($info['password'])) {
- $result['password'] = 2;
- if ($info['password']) {
- $result['password'] = 1;
- }
- }
- $result['status'] = 2;
- $result['value'] = $info['price'];
- }
- }
- }
- $result['value'] = $result['value'] * $result['num'];
- $result['text'] = $this->getText($result['value'], $type);
- return $result;
- }
- # 获取价格列表
- public function getList($vip, $agent, &$result)
- {
- if ($vip['list']) {
- $result['list'][] = array('name' => $vip['name'], 'list' => array_values($vip['list']));
- }
- if ($agent['list']) {
- $result['list'][] = array('name' => $agent['name'], 'list' => array_values($agent['list']));
- }
- }
- # 获取专享
- public function getAlone($vip, $agent, &$result)
- {
- $state = false;
- if ($vip['alone']) {
- if (isset($vip['alone'][Place::$user['vip_id']])) {
- $state = false;
- } else {
- $state = true;
- $result['list'][] = array('name' => $vip['name'], 'list' => array_values($vip['alone']));
- }
- }
- if ($agent['alone']) {
- if (isset($agent['alone'][Place::$user['agent_id']])) {
- $state = false;
- } else {
- $state = true;
- $result['list'][] = array('name' => $agent['name'], 'list' => array_values($agent['alone']));
- }
- }
- if ($state) {
- $result['status'] = 3;
- $result['text'] = '专享';
- }
- return $state;
- }
- # 获取折扣价
- public function getDiscount($price, $vip, $agent)
- {
- $result = array();
- # 获取会员价
- if ($vip && isset($vip[Place::$user['vip_id']])) {
- $price = $vip[Place::$user['vip_id']][1];
- }
- # 获取代理价
- if ($agent && isset($agent[Place::$user['agent_id']])) {
- $agent_price = $agent[Place::$user['agent_id']][1];
- if ($agent_price < $price) {
- $price = $agent_price;
- }
- }
- # 获取折扣+代金券的价格,暂时没有
- return $price;
- }
- public function getText($price, $type = 1)
- {
- if ($price > 0) {
- if ($type == 3) {
- $price = Place::$info['money_name'] . $price;
- } else {
- $price = $price . Place::$info['score_name'];
- }
- } else {
- $price = '免费';
- }
- return $price;
- }
- public function getValue($value, $price, $type)
- {
- if ($type == 3) {
- return number_format($price * ($value/100), 2);
- } elseif ($value || $value === '0') {
- return number_format($value, 2);
- }
- return $price;
- }
- }
|