From 258e10c9d1f26efaa4ed740f2423e82836a869fc Mon Sep 17 00:00:00 2001
From: chenxiaojun <956334972@qq.com>
Date: Tue, 14 Jan 2020 16:14:36 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E7=BB=93=E7=AE=97=E7=AE=A1=E7=90=86--?=
=?UTF-8?q?=E6=9B=B4=E6=96=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Application/Admin/Common/function.php | 2 +-
.../PromoteGameRatioController.class.php | 11 +-
.../Admin/Model/WithdrawModel.class.php | 202 ++++++++++--------
.../View/PromoteGameRatio/applyRatio.html | 4 +-
Application/Common/Common/extend.php | 4 +
5 files changed, 125 insertions(+), 98 deletions(-)
diff --git a/Application/Admin/Common/function.php b/Application/Admin/Common/function.php
index d34964caf..59f7e8482 100644
--- a/Application/Admin/Common/function.php
+++ b/Application/Admin/Common/function.php
@@ -724,7 +724,7 @@ function getAllGameList($groupByRelation = false)
{
$field = 'id, game_name, relation_game_id, relation_game_name';
if ($groupByRelation) {
- $games = M('game', 'tab_')->field($field)->group('relation_game_id')->select();
+ $games = M('game', 'tab_')->field($field)->where('id = relation_game_id')->group('relation_game_id')->select();
} else {
$games = M('game', 'tab_')->field($field)->select();
}
diff --git a/Application/Admin/Controller/PromoteGameRatioController.class.php b/Application/Admin/Controller/PromoteGameRatioController.class.php
index 0d08c400c..ca672fba3 100644
--- a/Application/Admin/Controller/PromoteGameRatioController.class.php
+++ b/Application/Admin/Controller/PromoteGameRatioController.class.php
@@ -64,7 +64,7 @@ class PromoteGameRatioController extends ThinkController
$promoteIds = array_column($promoteGameRatios, 'promote_id');
$gameIds = array_column($promoteGameRatios, 'game_id');
$promoteFiled = 'id, account, mobile_phone, create_time, status, ver_status';
- $gameFiled = 'id, game_name, ratio';
+ $gameFiled = 'id, relation_game_name, ratio';
$promotes = M('promote', 'tab_')->where(array('id' => ['in', $promoteIds]))->getField($promoteFiled, true);
$games = M('game', 'tab_')->where(array('id' => ['in', $gameIds]))->getField($gameFiled, true);
@@ -103,7 +103,7 @@ class PromoteGameRatioController extends ThinkController
$thisPromoteVerStatus = getPromoteVerStatus($promotes[$thisPromoteId]['ver_status'], 2);
}
if ($issetGame) {
- $thisGameName = $games[$thisGameId]['game_name'];
+ $thisGameName = $games[$thisGameId]['relation_game_name'];
$thisGameRatio = $games[$thisGameId]['ratio'];
$thisGameRatio = ($thisGameRatio ?? '0.00') . '%';
}
@@ -326,7 +326,7 @@ class PromoteGameRatioController extends ThinkController
$this->assign('lastRatio', $lastRatio);
}
- $this->assign('gameList', getAllGameList());
+ $this->assign('gameList', getAllGameList(true));
$this->assign('promoteList', getPromoteByLevel(1));
$this->meta_title = $metaTitle;
$this->display();
@@ -389,8 +389,11 @@ class PromoteGameRatioController extends ThinkController
$promoteIds = M('promote', 'tab_')->where($promoteMap)->getField('id', true);
$promoteIds[] = $promoteId;
+ $gameIds = D('game')->where(array('relation_game_id' => $promoteGameRatio['game_id']))->getField('id', true);
+ $gameIds = $gameIds ?? [-1];
+
$spendMap['promote_id'] = ['in', $promoteIds];
- $spendMap['game_id'] = $promoteGameRatio['game_id'];
+ $spendMap['game_id'] = ['in', $gameIds];
if ($promoteGameRatio['end_time'] > 0) {
$spendMap['pay_time'] = ['between', [$promoteGameRatio['begin_time'], $promoteGameRatio['end_time'] + 3600 * 24 - 1]];
} else {
diff --git a/Application/Admin/Model/WithdrawModel.class.php b/Application/Admin/Model/WithdrawModel.class.php
index ea73951c1..e01e83bc1 100644
--- a/Application/Admin/Model/WithdrawModel.class.php
+++ b/Application/Admin/Model/WithdrawModel.class.php
@@ -268,37 +268,42 @@ class WithdrawModel extends Model{
$balance = 0;
$notInGameIds = [-1];
foreach ($promoteGameRatios as $promoteGameRatio) {
- $spendWhere['game_id'] = $promoteGameRatio['game_id'];
if (!empty($promoteGameRatio['turnover_ratio']) && $promoteGameRatio['begin_time'] <= $settlementBeginTime && (empty($promoteGameRatio['end_time']) || $promoteGameRatio['end_time'] >= $settlementEndTime)) {
- $notInGameIds[] = $promoteGameRatio['game_id'];
- $ratio = $promoteGameRatio['ratio'];
- $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
- $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
- $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
- ->where($spendWhere)
- ->find()['sum_amount'];
- $sumAmount = $sumAmount ?? 0;
- foreach ($turnoverRatios as $turnoverRatio) {
- if ($sumAmount >= $turnoverRatio['turnover']) {
- $ratio = $turnoverRatio['ratio'];
- break;
+ $gameIds = D('game')->where(array('relation_game_id' => $promoteGameRatio['game_id']))->getField('id', true);
+ if (!empty($gameIds)) {
+ foreach ($gameIds as $gameId) {
+ $spendWhere['game_id'] = $gameId;
+ $notInGameIds[] = $gameId;
+ $ratio = $promoteGameRatio['ratio'];
+ $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
+ $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
+ $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
+ ->where($spendWhere)
+ ->find()['sum_amount'];
+ $sumAmount = $sumAmount ?? 0;
+ foreach ($turnoverRatios as $turnoverRatio) {
+ if ($sumAmount >= $turnoverRatio['turnover']) {
+ $ratio = $turnoverRatio['ratio'];
+ break;
+ }
+ }
+
+ $thisBalance = $spendModel->field("sum(pay_amount * {$ratio}) as balance")
+ ->where($spendWhere)
+ ->find()['balance'];
+ $thisBalance = $thisBalance ?? 0;
+ $balance = bcadd($balance, $thisBalance, 2);
+
+ $gameRatios[$gameId] = [];
+ $gameRatios[$gameId][] = [
+ 'selle_ratio' => $ratio,
+ 'default_ratio' => $promoteGameRatio['ratio'],
+ 'sum_amount' => $sumAmount,
+ 'begin_time' => $beginTime,
+ 'end_time' => $endTime,
+ ];
}
}
-
- $thisBalance = $spendModel->field("sum(pay_amount * {$ratio}) as balance")
- ->where($spendWhere)
- ->find()['balance'];
- $thisBalance = $thisBalance ?? 0;
- $balance = bcadd($balance, $thisBalance, 2);
-
- $gameRatios[$promoteGameRatio['game_id']] = [];
- $gameRatios[$promoteGameRatio['game_id']][] = [
- 'selle_ratio' => $ratio,
- 'default_ratio' => $promoteGameRatio['ratio'],
- 'sum_amount' => $sumAmount,
- 'begin_time' => $beginTime,
- 'end_time' => $endTime,
- ];
}
}
@@ -391,33 +396,38 @@ class WithdrawModel extends Model{
$gameRatios = [];
foreach ($promoteGameRatios as $promoteGameRatio) {
if (!empty($promoteGameRatio['turnover_ratio']) && $promoteGameRatio['begin_time'] <= $settlementBeginTime && (empty($promoteGameRatio['end_time']) || $promoteGameRatio['end_time'] >= $settlementEndTime)) {
- $spendMap['game_id'] = $promoteGameRatio['game_id'];
- $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
- $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
- $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
- ->where($spendMap)
- ->find()['sum_amount'];
- $sumAmount = $sumAmount ?? 0;
- $ratio = 0;
- foreach ($turnoverRatios as $turnoverRatio) {
- if ($sumAmount >= $turnoverRatio['turnover']) {
- $ratio = $turnoverRatio['ratio'];
- break;
- }
- }
+ $gameIds = D('game')->where(array('relation_game_id' => $promoteGameRatio['game_id']))->getField('id', true);
+ if (!empty($gameIds)) {
+ foreach ($gameIds as $gameId) {
+ $spendWhere['game_id'] = $gameId;
+ $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
+ $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
+ $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
+ ->where($spendMap)
+ ->find()['sum_amount'];
+ $sumAmount = $sumAmount ?? 0;
+ $ratio = 0;
+ foreach ($turnoverRatios as $turnoverRatio) {
+ if ($sumAmount >= $turnoverRatio['turnover']) {
+ $ratio = $turnoverRatio['ratio'];
+ break;
+ }
+ }
- if ($ratio > 0) {
- $ratio = bcsub($ratio, $promoteGameRatio['ratio'], 2);
- $thisBalance = bcdiv(bcmul($sumAmount, $ratio, 2), 100, 2);
- $balance = bcadd($balance, $thisBalance, 2);
-
- $gameRatios[$promoteGameRatio['game_id']][] = [
- 'selle_ratio' => $ratio,
- 'default_ratio' => $promoteGameRatio['ratio'],
- 'sum_amount' => $sumAmount,
- 'begin_time' => date('Y-m-d', $settlementBeginTime),
- 'end_time' => date('Y-m-d', $settlementEndTime),
- ];
+ if ($ratio > 0) {
+ $ratio = bcsub($ratio, $promoteGameRatio['ratio'], 2);
+ $thisBalance = bcdiv(bcmul($sumAmount, $ratio, 2), 100, 2);
+ $balance = bcadd($balance, $thisBalance, 2);
+
+ $gameRatios[$gameId][] = [
+ 'selle_ratio' => $ratio,
+ 'default_ratio' => $promoteGameRatio['ratio'],
+ 'sum_amount' => $sumAmount,
+ 'begin_time' => date('Y-m-d', $settlementBeginTime),
+ 'end_time' => date('Y-m-d', $settlementEndTime),
+ ];
+ }
+ }
}
}
}
@@ -477,25 +487,30 @@ class WithdrawModel extends Model{
$balance = 0;
foreach ($promoteGameRatios as $promoteGameRatio) {
if (!empty($promoteGameRatio['turnover_ratio']) && $promoteGameRatio['begin_time'] <= $settlementBeginTime && (empty($promoteGameRatio['end_time']) || $promoteGameRatio['end_time'] >= $settlementEndTime)) {
- $spendMap['game_id'] = $promoteGameRatio['game_id'];
- $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
- $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
- $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
- ->where($spendMap)
- ->find()['sum_amount'];
- $sumAmount = $sumAmount ?? 0;
- $ratio = 0;
- foreach ($turnoverRatios as $turnoverRatio) {
- if ($sumAmount >= $turnoverRatio['turnover']) {
- $ratio = $turnoverRatio['ratio'];
- break;
- }
- }
+ $gameIds = D('game')->where(array('relation_game_id' => $promoteGameRatio['game_id']))->getField('id', true);
+ if (!empty($gameIds)) {
+ foreach ($gameIds as $gameId) {
+ $spendMap['game_id'] = $gameId;
+ $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
+ $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
+ $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
+ ->where($spendMap)
+ ->find()['sum_amount'];
+ $sumAmount = $sumAmount ?? 0;
+ $ratio = 0;
+ foreach ($turnoverRatios as $turnoverRatio) {
+ if ($sumAmount >= $turnoverRatio['turnover']) {
+ $ratio = $turnoverRatio['ratio'];
+ break;
+ }
+ }
- if ($ratio > 0) {
- $ratio = bcsub($ratio, $promoteGameRatio['ratio'], 2);
- $thisBalance = bcdiv(bcmul($sumAmount, $ratio, 2), 100, 2);
- $balance = bcadd($balance, $thisBalance, 2);
+ if ($ratio > 0) {
+ $ratio = bcsub($ratio, $promoteGameRatio['ratio'], 2);
+ $thisBalance = bcdiv(bcmul($sumAmount, $ratio, 2), 100, 2);
+ $balance = bcadd($balance, $thisBalance, 2);
+ }
+ }
}
}
}
@@ -532,28 +547,33 @@ class WithdrawModel extends Model{
$balance = 0;
$notInGameIds = [-1];
foreach ($promoteGameRatios as $promoteGameRatio) {
- $spendWhere['game_id'] = $promoteGameRatio['game_id'];
if (!empty($promoteGameRatio['turnover_ratio']) && $promoteGameRatio['begin_time'] <= $settlementBeginTime && (empty($promoteGameRatio['end_time']) || $promoteGameRatio['end_time'] >= $settlementEndTime)) {
- $notInGameIds[] = $promoteGameRatio['game_id'];
- $ratio = $promoteGameRatio['ratio'];
- $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
- $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
- $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
- ->where($spendWhere)
- ->find()['sum_amount'];
- $sumAmount = $sumAmount ?? 0;
- foreach ($turnoverRatios as $turnoverRatio) {
- if ($sumAmount >= $turnoverRatio['turnover']) {
- $ratio = $turnoverRatio['ratio'];
- break;
+ $gameIds = D('game')->where(array('relation_game_id' => $promoteGameRatio['game_id']))->getField('id', true);
+ if (!empty($gameIds)) {
+ foreach ($gameIds as $gameId) {
+ $spendWhere['game_id'] = $gameId;
+ $notInGameIds[] = $gameId;
+ $ratio = $promoteGameRatio['ratio'];
+ $promoteGameRatio['turnover_ratio'] = json_decode($promoteGameRatio['turnover_ratio'], true);
+ $turnoverRatios = array_reverse($promoteGameRatio['turnover_ratio']);
+ $sumAmount = $spendModel->field("sum(pay_amount) as sum_amount")
+ ->where($spendWhere)
+ ->find()['sum_amount'];
+ $sumAmount = $sumAmount ?? 0;
+ foreach ($turnoverRatios as $turnoverRatio) {
+ if ($sumAmount >= $turnoverRatio['turnover']) {
+ $ratio = $turnoverRatio['ratio'];
+ break;
+ }
+ }
+
+ $thisBalance = $spendModel->field("sum(pay_amount * {$ratio}) as balance")
+ ->where($spendWhere)
+ ->find()['balance'];
+ $thisBalance = $thisBalance ?? 0;
+ $balance = bcadd($balance, $thisBalance, 2);
}
}
-
- $thisBalance = $spendModel->field("sum(pay_amount * {$ratio}) as balance")
- ->where($spendWhere)
- ->find()['balance'];
- $thisBalance = $thisBalance ?? 0;
- $balance = bcadd($balance, $thisBalance, 2);
}
}
diff --git a/Application/Admin/View/PromoteGameRatio/applyRatio.html b/Application/Admin/View/PromoteGameRatio/applyRatio.html
index 7d14a96be..a75a45d7a 100644
--- a/Application/Admin/View/PromoteGameRatio/applyRatio.html
+++ b/Application/Admin/View/PromoteGameRatio/applyRatio.html
@@ -105,11 +105,11 @@