|
@@ -27,7 +27,7 @@ class Trade extends Base{
|
|
|
"sequenceNo|关联订单编号"=>"require|max:255",
|
|
|
"trad_fee|关联订单金额"=>"require|float|min:0.01"]);
|
|
|
$assoc=[];
|
|
|
- $log_total = 0;
|
|
|
+ $log_total = "0";
|
|
|
$logInfo=[];
|
|
|
$qrdList = QrdInfo::where('sequenceNo','in',array_column($params['orderArr'],'sequenceNo'))
|
|
|
->column("id,sequenceNo,platform_type,wpay_fee,pay_fee,is_comon,pay_status,totalPrice,customerNo","sequenceNo");
|
|
@@ -36,8 +36,8 @@ class Trade extends Base{
|
|
|
if(!isset($qrdList[$order['sequenceNo']])) return error("关联订单信息不存在");
|
|
|
if($qrdList[$order['sequenceNo']]['wpay_fee']<$order['trad_fee']) return error("销售单{$order['sequenceNo']}未付款金额不足核销金额");
|
|
|
//if($qrdList[$order['sequenceNo']]['is_comon']==1) return error("{$order['sequenceNo']} 通用订单不可认领资金");
|
|
|
- $qrdList[$order['sequenceNo']]['wpay_fee']-=$order['trad_fee'];
|
|
|
- $log_total+=$order['trad_fee'];
|
|
|
+ $qrdList[$order['sequenceNo']]['wpay_fee']=bcsub($qrdList[$order['sequenceNo']]['wpay_fee'],$order['trad_fee'],2) ;
|
|
|
+ $log_total=bcadd($log_total,$order['trad_fee'],2);
|
|
|
$temp=[
|
|
|
'logNo'=>makeNo("TRC",str_pad($key+1,4,'0',STR_PAD_LEFT)),
|
|
|
'tradNo'=>$params['tradNo'],
|
|
@@ -556,11 +556,14 @@ class Trade extends Base{
|
|
|
if(!isset($orderArr[$value['orderCode']])) return error($value['orderCode'].'订单信息不存在');
|
|
|
if($orderArr[$value['orderCode']]['companyNo']!=$value['companyNo']) return error($value['orderCode'].'卖出方公司与订单业务公司不一致');
|
|
|
if($orderArr[$value['orderCode']]['wpay_fee']< $value['trad_fee']) return error($value['orderCode'].'销售单未付款金额不足核销金额');
|
|
|
- $orderArr[$value['orderCode']]['wpay_fee']-=$value['trad_fee'];
|
|
|
+ $orderArr[$value['orderCode']]['wpay_fee']=bcsub($orderArr[$value['orderCode']]['wpay_fee'], $value['trad_fee'],2);
|
|
|
if(!isset($tradeArr[$value['tradNo']])) return error($value['tradNo'].'资金流水信息不存在');
|
|
|
if($tradeArr[$value['tradNo']]['trade_type']!=1 && $orderArr[$value['orderCode']]['is_comon']==1) return error($value['orderCode'].'销售单类型与资金类型不匹配');
|
|
|
- if($tradeArr[$value['tradNo']]['balance']< $value['trad_fee']) return error($value['tradNo'].'资金流水余额不足核销金额');
|
|
|
- $tradeArr[$value['tradNo']]['balance']-=$value['trad_fee'];
|
|
|
+
|
|
|
+ if($tradeArr[$value['tradNo']]['balance']< $value['trad_fee']){
|
|
|
+ return error($value['tradNo'].'资金流水余额不足核销金额');
|
|
|
+ }
|
|
|
+ $tradeArr[$value['tradNo']]['balance']=bcsub($tradeArr[$value['tradNo']]['balance'], $value['trad_fee'],2);
|
|
|
if($tradeArr[$value['tradNo']]['companyNo']!=$value['companyNo']) return error($value['tradNo'].'资金流水业务公司与卖出方公司不一致');
|
|
|
$temp=['logNo' => makeNo('TRC',str_pad($key+1,4,'0',STR_PAD_LEFT)),
|
|
|
'tradNo' => $value['tradNo'],
|
|
@@ -598,8 +601,8 @@ class Trade extends Base{
|
|
|
->findOrEmpty();
|
|
|
if($trade->isEmpty()) throw new \Exception($value['tradNo'].'资金流水信息不存在');
|
|
|
if($trade->balance< $value['trad_fee']) throw new \Exception($value['tradNo'].'资金流水余额不足核销金额');
|
|
|
- $trade->balance-=$value['trad_fee'];
|
|
|
- $trade->used_fee+=$value['trad_fee'];
|
|
|
+ $trade->balance=bcsub($trade->balance, $value['trad_fee'],2);
|
|
|
+ $trade->used_fee=bcadd($trade->used_fee, $value['trad_fee'],2);
|
|
|
$trade->status=$trade->balance==0?3:2;
|
|
|
$tradSave=$trade->save();
|
|
|
if(!$tradSave) throw new \Exception($value['tradNo'].'资金流水更新失败');
|
|
@@ -609,8 +612,8 @@ class Trade extends Base{
|
|
|
->findOrEmpty();
|
|
|
if($order->isEmpty()) throw new \Exception($value['orderCode'].'订单信息不存在');
|
|
|
if($order->wpay_fee< $value['trad_fee']) throw new \Exception($value['orderCode'].'销售单未付款金额不足核销金额');
|
|
|
- $order->wpay_fee-=$value['trad_fee'];
|
|
|
- $order->apay_fee+=$value['trad_fee'];
|
|
|
+ $order->wpay_fee=bcsub($order->wpay_fee, $value['trad_fee'],2);
|
|
|
+ $order->apay_fee=bcadd( $order->apay_fee, $value['trad_fee'],2);
|
|
|
$order->pay_status=$order->wpay_fee==0 && $order->pay_fee==0?3:2;
|
|
|
$order->status=1;
|
|
|
$ordersave=$order->save();
|