perf: PayPal 每月费率

webht/payment
Lei OT 6 months ago
parent cce47f2111
commit 44db54a8a2

@ -138,6 +138,8 @@ class PaymentService extends CI_Controller {
if (empty($data['unsend_list'])) {
$data['unsend_list'] = $this->note_model->sendfail_note(20);
}
// var_dump($data['unsend_list']);
// die;
// 开始处理
foreach ($data['unsend_list'] as $key => $item) {
if ($item->OPN_accountMethod === 15002) {
@ -642,7 +644,10 @@ class PaymentService extends CI_Controller {
$data['group_accout_info'] =
$this->account_model->get_group_accout_info($order_sn, $pn_txn_id);
// var_dump($data);
echo json_encode($this->load->view('payment_gai_setting', $data, true));
$this->output
->set_content_type('application/json')
->set_output(json_encode($this->load->view('payment_gai_setting', $data, true)));
// echo json_encode($this->load->view('payment_gai_setting', $data, true), );
}
public function gai_modal_save()
@ -867,22 +872,30 @@ class PaymentService extends CI_Controller {
}
$list = $this->note_model->query_paypal_current_rate();
$has_gt_rate = array_some($list, function($ele) { return $ele['OPN_paymentSource'] === 'paypal' ? $ele['calc_rate'] > 0.032 : false; });
if (!$has_gt_rate) {
return false;
}
// if (!$has_gt_rate) {
// return false;
// }
$BCDC_I = array_search('paypal', array_column($list, 'OPN_paymentSource'));
$current_BCDC = $list[$BCDC_I]['calc_rate']*100;
$ACDC = array_values(array_filter($list, function($ele) { return $ele['OPN_paymentSource'] !== 'paypal'; }));
$current_ACDC = isset($ACDC[0]) ? $ACDC[0]['calc_rate']*100 : '';
// BCDC 钱包渠道大于 3.2%
$time_set = date('Y-m-d_H_i_s');
$today = date('Y-m-d');
if ($notify === '1') {
$fromName = 'PayPal 费率提醒';
$fromEmail = 'lyt@hainatravel.com';
$toName = 'LOT, fgy'; // 'fgy';
$toEmail = 'lyt@hainatravel.com, fgy@hainatravel.com'; // 'fgy@hainatravel.com';
$subject = $fromName;
$body = "PayPal费率高于3.2%,请及时处理. <br>当前费率: <br/>PayPal钱包渠道: {$current_BCDC}%<br/>PayPal ACDC渠道(GooglePay, ApplePay): {$current_ACDC}%<br/>------------<br/>支付系统自动发送<br>". date("Y-m-d H:i"). " <br>";
$feeTable = "<table><tr><th>账户</th><th>支付方式</th><th>费率</th></tr>";
foreach ($list as $key => $row) {
$feeTable .= "<tr><td>{$row['OPN_fundSource']}</td><td>{$row['OPN_paymentSource']}</td><td>{$row['calc_rate']}</td></tr>";
}
$feeTable .= "</table>";
$body = "本月费率: {$today}<br/>{$feeTable}------------<br/>支付系统自动发送<br>". date("Y-m-d H:i"). " <br>";
// PayPal费率高于3.2%,请及时处理. <br>
// PayPal钱包渠道: {$current_BCDC}%<br/>PayPal ACDC渠道(GooglePay, ApplePay, 信用卡收单): {$current_ACDC}%<br/>
$M_AddTime = $time_set;
$M_State = 0;
$this->account_model->save_automail($fromName, $fromEmail, $toName, $toEmail, $subject, $body, 0, $M_State, $M_AddTime, $fromName, $fromName);

@ -614,19 +614,26 @@ class Online_payment_note_model extends CI_Model {
}
public function query_paypal_current_rate() {
$sql = "SELECT TOP 10 opn.OPN_payFee
,opn.OPN_payAmount
,opn.OPN_netAmount
,opn.OPN_paymentSource
,opn.OPN_fundSource
,round(((0 - cast(opn_payfee AS FLOAT) - 0.3) / cast(OPN_payAmount AS FLOAT)), 4) AS calc_rate
-- ,opn.*
FROM OnlinePaymentNote AS opn
$sql = "SELECT *
FROM (
SELECT TOP 1000
row_number() OVER (PARTITION BY OPN_paymentSource,opn.OPN_fundSource ORDER BY OPN_completeTime ASC) AS rownum
,opn.OPN_fundSource
,opn.OPN_paymentSource
,round(((0 - cast(opn_payfee AS FLOAT) - 0.3) / cast(OPN_payAmount AS FLOAT)), 4) AS calc_rate
,OPN_completeTime
,opn.OPN_transactionId
FROM InfoManager.dbo.OnlinePaymentNote AS opn
WHERE OPN_accountMethod = 15002
AND opn.OPN_transactionResult = 'completed'
AND cast(OPN_payAmount AS FLOAT) > 100
AND opn.OPN_paymentSource IS NOT NULL
ORDER BY opn.OPN_completeTime DESC";
AND opn.OPN_transactionResult = 'completed'
AND opn.OPN_noticeType = 'pay'
AND cast(OPN_payAmount AS FLOAT) > 100
-- AND opn.OPN_paymentSource IS NOT NULL
AND isnull(opn.OPN_paymentSource, '') != ''
AND opn.OPN_completeTime >= DATEADD(month, DATEDIFF(month, 0, GETDATE()) + 0, 0)
) AS tt
WHERE tt.rownum = 1
ORDER BY OPN_fundSource,OPN_paymentSource";
$ret = $this->info->query($sql)->result_array();
return $ret;
}

Loading…
Cancel
Save