|
@@ -559,103 +559,90 @@ class Sell
|
|
|
|
|
|
$card_code = Dever::db('card/code')->find($card);
|
|
|
if ($card_code['dh_uid'] == $data['uid']) {
|
|
|
- $card_info = Dever::db('card/info')->find($card_code['card_id']);
|
|
|
- $card_state = true;
|
|
|
- if (!$card_info) {
|
|
|
- $card_state = false;
|
|
|
- }
|
|
|
- if ($card_info['end_dh_day'] && $card_info['end_dh_day'] > 0) {
|
|
|
- $card_code['eddate'] = ($card_code['bdate'] ? $card_code['bdate'] : $card_code['cdate']) + ($card_info['end_dh_day'] * 86400);
|
|
|
- }
|
|
|
-
|
|
|
- if (isset($card_code['eddate']) && $card_code['eddate'] && $card_code['eddate'] > 0) {
|
|
|
- $time = time();
|
|
|
- if ($card_code['eddate'] <= $time) {
|
|
|
- $card_state = false;
|
|
|
+ $card_state = Dever::load('card/lib/code')->check($card_code);
|
|
|
+ if ($card_state == 1) {
|
|
|
+ if (!$card_code['total_cash']) {
|
|
|
+ $card_code['total_cash'] = $card_code['info']['value'];
|
|
|
}
|
|
|
- }
|
|
|
+ if (!$card_code['use_cash']) {
|
|
|
+ $card_code['use_cash'] = 0;
|
|
|
+ }
|
|
|
+ $card_cash = $card_code['total_cash'] - $card_code['use_cash'];
|
|
|
|
|
|
- if (!$card_code['total_cash']) {
|
|
|
- $card_code['total_cash'] = $card_info['value'];
|
|
|
- }
|
|
|
- if (!$card_code['use_cash']) {
|
|
|
- $card_code['use_cash'] = 0;
|
|
|
- }
|
|
|
- $card_cash = $card_code['total_cash'] - $card_code['use_cash'];
|
|
|
-
|
|
|
- if ($card_state && $card_cash > 0) {
|
|
|
- $data['card'] = array();
|
|
|
- $card_goods = array();
|
|
|
- $check = false;
|
|
|
- $xian = false;
|
|
|
- if ($data['shop']['type'] == 1 && $card_info['shop_set'] == 1) {
|
|
|
+ if ($card_cash > 0) {
|
|
|
+ $data['card'] = array();
|
|
|
+ $card_goods = array();
|
|
|
$check = false;
|
|
|
$xian = false;
|
|
|
- } else {
|
|
|
- $xian = true;
|
|
|
- $goods = Dever::db('card/info_goods')->getData(array('card_id' => $card_info['id']));
|
|
|
- if ($goods || $card_info['category']) {
|
|
|
- $check = true;
|
|
|
+ if ($data['shop']['type'] == 1 && $card_code['info']['shop_set'] == 1) {
|
|
|
+ $check = false;
|
|
|
+ $xian = false;
|
|
|
+ } else {
|
|
|
+ $xian = true;
|
|
|
+ $goods = Dever::db('card/info_goods')->getData(array('card_id' => $card_code['info'['id']));
|
|
|
+ if ($goods || $card_code['info'['category']) {
|
|
|
+ $check = true;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if ($check) {
|
|
|
- $price = 0;
|
|
|
- $card_info['category'] = explode(',', $card_info['category']);
|
|
|
- if ($goods) {
|
|
|
- $goods = array_keys($goods);
|
|
|
- }
|
|
|
-
|
|
|
- foreach ($data['list'] as $k => $v) {
|
|
|
- if (!isset($v['cash'])) {
|
|
|
- $v['cash'] = $v['price'];
|
|
|
- }
|
|
|
+ if ($check) {
|
|
|
+ $price = 0;
|
|
|
+ $card_code['info'['category'] = explode(',', $card_code['info'['category']);
|
|
|
if ($goods) {
|
|
|
- if (in_array($v['id'], $goods)) {
|
|
|
- if ($card_info['category']) {
|
|
|
- if (in_array($v['top_category_id'], $card_info['category'])) {
|
|
|
+ $goods = array_keys($goods);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach ($data['list'] as $k => $v) {
|
|
|
+ if (!isset($v['cash'])) {
|
|
|
+ $v['cash'] = $v['price'];
|
|
|
+ }
|
|
|
+ if ($goods) {
|
|
|
+ if (in_array($v['id'], $goods)) {
|
|
|
+ if ($card_code['info'['category']) {
|
|
|
+ if (in_array($v['top_category_id'], $card_code['info'['category'])) {
|
|
|
+ $price += ($v['cash'] * $v['num']);
|
|
|
+ $card_goods[] = $v;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
$price += ($v['cash'] * $v['num']);
|
|
|
$card_goods[] = $v;
|
|
|
}
|
|
|
- } else {
|
|
|
+ }
|
|
|
+ } elseif ($card_code['info'['category']) {
|
|
|
+ if (in_array($v['top_category_id'], $card_code['info'['category'])) {
|
|
|
$price += ($v['cash'] * $v['num']);
|
|
|
$card_goods[] = $v;
|
|
|
}
|
|
|
}
|
|
|
- } elseif ($card_info['category']) {
|
|
|
- if (in_array($v['top_category_id'], $card_info['category'])) {
|
|
|
- $price += ($v['cash'] * $v['num']);
|
|
|
- $card_goods[] = $v;
|
|
|
- }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ $price = $data['price'];
|
|
|
}
|
|
|
- } else {
|
|
|
- $price = $data['price'];
|
|
|
- }
|
|
|
|
|
|
- if ($card_cash >= $price) {
|
|
|
- $data['card']['cash'] = $price;
|
|
|
- $data['price'] = 0;
|
|
|
- } else {
|
|
|
- $data['card']['cash'] = $card_cash;
|
|
|
- $data['price'] -= $data['card']['cash'];
|
|
|
- }
|
|
|
+ if ($card_cash >= $price) {
|
|
|
+ $data['card']['cash'] = $price;
|
|
|
+ $data['price'] = 0;
|
|
|
+ } else {
|
|
|
+ $data['card']['cash'] = $card_cash;
|
|
|
+ $data['price'] -= $data['card']['cash'];
|
|
|
+ }
|
|
|
|
|
|
- if ($xian && ($price <= 0 || ($card_info['min'] > 0 && $price < $card_info['min']))) {
|
|
|
-
|
|
|
- unset($data['card']);
|
|
|
- } else {
|
|
|
- $data['card']['info'] = $card_info;
|
|
|
- $data['card']['goods'] = $card_goods;
|
|
|
- $data['card']['id'] = $card_code['id'];
|
|
|
- $data['card']['card'] = $card_code['card'];
|
|
|
-
|
|
|
- $data['card']['cash'] = round($data['card']['cash'], 2);
|
|
|
- $config = Dever::db('main/sell_config')->find();
|
|
|
- $card_type = Dever::db('card/type')->find($card_info['type_id']);
|
|
|
- $data['card']['name'] = $config['card_name'];
|
|
|
- $card = substr($card_code['card'], -4);
|
|
|
- $data['card']['name'] .= '('.$card_type['name'].$card.')';
|
|
|
+ if ($xian && ($price <= 0 || ($card_code['info'['min'] > 0 && $price < $card_code['info'['min']))) {
|
|
|
+
|
|
|
+ unset($data['card']);
|
|
|
+ } else {
|
|
|
+ $data['card']['info'] = $card_code['info';
|
|
|
+ $data['card']['goods'] = $card_goods;
|
|
|
+ $data['card']['id'] = $card_code['id'];
|
|
|
+ $data['card']['card'] = $card_code['card'];
|
|
|
+
|
|
|
+ $data['card']['cash'] = round($data['card']['cash'], 2);
|
|
|
+ $config = Dever::db('main/sell_config')->find();
|
|
|
+ $card_type = Dever::db('card/type')->find($card_code['info'['type_id']);
|
|
|
+ $data['card']['name'] = $config['card_name'];
|
|
|
+ $card = substr($card_code['card'], -4);
|
|
|
+ $data['card']['name'] .= '('.$card_type['name'].$card.')';
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|