|
@@ -48,7 +48,7 @@ class paymentLogic
|
|
* @param int $member_id
|
|
* @param int $member_id
|
|
*/
|
|
*/
|
|
//add by stanley
|
|
//add by stanley
|
|
- public function payPredepositEx($pay_sn,$member_info)
|
|
|
|
|
|
+ public function payPredepositEx($pay_sn, $member_info)
|
|
{
|
|
{
|
|
//验证订单信息
|
|
//验证订单信息
|
|
$model_order = Model('order');
|
|
$model_order = Model('order');
|
|
@@ -64,26 +64,26 @@ class paymentLogic
|
|
$model_pd = Model('predeposit');
|
|
$model_pd = Model('predeposit');
|
|
$pred = new predeposit_helper($member_id);
|
|
$pred = new predeposit_helper($member_id);
|
|
|
|
|
|
- try
|
|
|
|
|
|
+
|
|
|
|
+ $pd_amount = intval($pd_amount * 100 + 0.5);
|
|
|
|
+ foreach ($order_list as $order_info)
|
|
{
|
|
{
|
|
- $pd_amount = intval($pd_amount * 100 + 0.5);
|
|
|
|
- foreach ($order_list as $order_info)
|
|
|
|
|
|
+ try
|
|
{
|
|
{
|
|
- $trans = new trans_wapper(null,__METHOD__);
|
|
|
|
-
|
|
|
|
- $order_pd_amount = $pred->calc_pred($order_info,$pd_amount,$no_cash,$rates);
|
|
|
|
- if(!empty($rates)) {
|
|
|
|
|
|
+ $trans = new trans_wapper(null, __METHOD__);
|
|
|
|
+ $order_pd_amount = $pred->calc_pred($order_info, $pd_amount, $no_cash, $rates);
|
|
|
|
+ if (!empty($rates)) {
|
|
Model()->table('order')->where(array('order_id' => $order_info['order_id']))->update(array('bonus_rate' => serialize($rates)));
|
|
Model()->table('order')->where(array('order_id' => $order_info['order_id']))->update(array('bonus_rate' => serialize($rates)));
|
|
}
|
|
}
|
|
$pd_amount -= $order_pd_amount;
|
|
$pd_amount -= $order_pd_amount;
|
|
$fEdit = true;
|
|
$fEdit = true;
|
|
- if($no_cash) {
|
|
|
|
|
|
+ if ($no_cash) {
|
|
$order_info['pd_amount'] += floatval($order_pd_amount) / 100; // 余额大于订单金额的情况
|
|
$order_info['pd_amount'] += floatval($order_pd_amount) / 100; // 余额大于订单金额的情况
|
|
$change_type = 'order_pay';
|
|
$change_type = 'order_pay';
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- if($order_pd_amount > 0) {
|
|
|
|
|
|
+ if ($order_pd_amount > 0) {
|
|
$order_info['pd_amount'] += floatval($order_pd_amount) / 100;
|
|
$order_info['pd_amount'] += floatval($order_pd_amount) / 100;
|
|
$change_type = 'order_freeze';
|
|
$change_type = 'order_freeze';
|
|
} else {
|
|
} else {
|
|
@@ -91,7 +91,7 @@ class paymentLogic
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- if($fEdit)
|
|
|
|
|
|
+ if ($fEdit)
|
|
{
|
|
{
|
|
$data_pd = array();
|
|
$data_pd = array();
|
|
$data_pd['member_id'] = $member_id;
|
|
$data_pd['member_id'] = $member_id;
|
|
@@ -104,25 +104,27 @@ class paymentLogic
|
|
if (0 == $ret) {
|
|
if (0 == $ret) {
|
|
throw new Exception("订单更新失败");
|
|
throw new Exception("订单更新失败");
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
// 修改订单
|
|
// 修改订单
|
|
$data_order = array('pd_amount' => $order_info['pd_amount']);
|
|
$data_order = array('pd_amount' => $order_info['pd_amount']);
|
|
$ret = $model_order->editOrder($data_order, array('order_id' => $order_info['order_id']));
|
|
$ret = $model_order->editOrder($data_order, array('order_id' => $order_info['order_id']));
|
|
if (0 == $ret) {
|
|
if (0 == $ret) {
|
|
throw new Exception("订单更新失败");
|
|
throw new Exception("订单更新失败");
|
|
}
|
|
}
|
|
- $trans->commit();
|
|
|
|
}
|
|
}
|
|
- QueueClient::push('onPredeposit',
|
|
|
|
- array('change_type' => $change_type,'buyer_id'=>$member_id,'order_sn'=>$order_info['order_sn']));
|
|
|
|
|
|
+ $trans->commit();
|
|
|
|
+ }
|
|
|
|
+ catch (Exception $e)
|
|
|
|
+ {
|
|
|
|
+ $trans->rollback();
|
|
|
|
+ return false;
|
|
}
|
|
}
|
|
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
- catch (Exception $e) {
|
|
|
|
- $trans->rollback();
|
|
|
|
- return false;
|
|
|
|
|
|
+ QueueClient::push('onPredeposit',['change_type' => $change_type, 'buyer_id' => $member_id, 'order_sn' => $order_info['order_sn']]);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ return true;
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|