diff --git a/Application/Admin/Controller/AutoController.class.php b/Application/Admin/Controller/AutoController.class.php index c7b44a39d..85c84dabf 100644 --- a/Application/Admin/Controller/AutoController.class.php +++ b/Application/Admin/Controller/AutoController.class.php @@ -1094,6 +1094,17 @@ public function auto_rrdae(){ echo "success:{$success} error_withdraw:{$error_withdraw} error_spend:{$error_spend} error_balance:{$error_balance}"; } + private function promoteWithdrawWeeklyByPromote($promote, $initial = false) + { + $promoteMap['chain'] = ['like', "{$promote['chain']}{$promote['id']}/%"]; + $promoteIds = M('promote', 'tab_')->where($promoteMap)->getField('id', true); + $promoteIds[] = $promote['id']; + $settlementType = $promote['settlement_type']; + $settlementEndTime = strtotime(date('Y-m-d')) - 1; + + + } + private function promoteWithdrawByPromote($promote, $initial = false) { $promoteMap['chain'] = ['like', "{$promote['chain']}{$promote['id']}/%"]; @@ -1121,9 +1132,49 @@ public function auto_rrdae(){ $spendMap['promote_id'] = ['in', $promoteIds]; $spendMap['pay_time'] = ['between', [$settlementBeginTime, $settlementEndTime]]; $spendModel = M('spend', 'tab_'); - $balance = $spendModel->field("sum(if(selle_ratio > 0, pay_amount * selle_ratio, 0)) as balance") - ->where($spendMap) - ->find()['balance']; + + $promoteGameRatioMap['status'] = 1; + $promoteGameRatioMap['promote_id'] = $promote['id']; + $promoteGameRatios = D('promote_game_ratio')->field('game_id, ratio, turnover_ratio, begin_time, end_time') + ->where($promoteGameRatioMap) + ->select(); + if (empty($promoteGameRatios)) { + $balance = $spendModel->field("sum(if(selle_ratio > 0, pay_amount * selle_ratio, 0)) as balance") + ->where($spendMap) + ->find()['balance']; + } else { + $balance = 0; + foreach ($promoteGameRatios as $promoteGameRatio) { + if ($settlementType == 1) { + $thisSettlementBeginTime = $settlementBeginTime; + $thisSettlementEndTime = $settlementEndTime; + if ($promoteGameRatio['begin_time'] > $settlementBeginTime) { + $thisSettlementBeginTime = $promoteGameRatio['begin_time']; + } elseif (!empty($promoteGameRatio['end_time']) && $promoteGameRatio['end_time'] < $settlementEndTime) { + $thisSettlementEndTime = $promoteGameRatio['end_time']; + } + $spendMap['pay_time'] = ['between', [$thisSettlementBeginTime, $thisSettlementEndTime]]; + $balance += $spendModel->field("sum(if(selle_ratio > 0, pay_amount * selle_ratio, 0)) as balance") + ->where($spendMap) + ->find()['balance']; + } elseif ($settlementType == 2) { + if ($promoteGameRatio['begin_time'] > $settlementBeginTime || (!empty($promoteGameRatio['end_time']) && $promoteGameRatio['end_time'] < $thisTime) || empty($promoteGameRatio['turnover_ratio'])) { + $spendMap['game_id'] = $promoteGameRatio['game_id']; + $balance += $spendModel->field("sum(if(selle_ratio > 0, pay_amount * selle_ratio, 0)) as balance") + ->where($spendMap) + ->find()['balance']; + } + if (empty($promoteGameRatio['turnover_ratio'])) { + + } + } + } + + $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount") + ->where($spendMap) + ->find()['sum_amount']; + } + $balance = bcdiv($balance, 100, 2); if ($balance < 100) { return -2;//余额不足 diff --git a/Application/Admin/Controller/PromoteGameRatioController.class.php b/Application/Admin/Controller/PromoteGameRatioController.class.php index fae9c3e32..6b5793357 100644 --- a/Application/Admin/Controller/PromoteGameRatioController.class.php +++ b/Application/Admin/Controller/PromoteGameRatioController.class.php @@ -218,7 +218,7 @@ class PromoteGameRatioController extends ThinkController $save['ratio'] = $params['ratio'] ?? 0; $save['begin_time'] = strtotime($params['begin_time']); - $save['end_time'] = $params['end_time'] ? strtotime($params['end_time']) : 0; + $save['end_time'] = $params['end_time'] ? (strtotime('+1 month', strtotime($params['end_time'])) - 1) : 0; $save['remark'] = $params['remark'] ?? ''; $save['status'] = 0; $save['update_time'] = $time; diff --git a/Application/Admin/Controller/QueryController.class.php b/Application/Admin/Controller/QueryController.class.php index ba364e38e..cc2f10264 100644 --- a/Application/Admin/Controller/QueryController.class.php +++ b/Application/Admin/Controller/QueryController.class.php @@ -345,6 +345,7 @@ class QueryController extends ThinkController $add['last_op_id'] = $add['op_id']; $add['last_op_type'] = 2; $add['settlement_type'] = 3; + $add['game_ratio'] = ''; M()->startTrans();//开启事物 $withdrawId = M('withdraw', 'tab_')->add($add);