|
|
@@ -31,6 +31,7 @@ use common\models\CalcBonusQY;
|
|
|
use common\models\CalcBonusStandard;
|
|
|
use common\models\CalcBonusTG;
|
|
|
use common\models\CalcBonusTourism;
|
|
|
+use common\models\CalcBonusVilla;
|
|
|
use common\models\CalcBonusVIP;
|
|
|
use common\models\CalcBonusXF;
|
|
|
use common\models\CalcBonusYC;
|
|
|
@@ -303,9 +304,14 @@ class BonusCalc extends BaseObject {
|
|
|
// echo('计算旅游奖' . ($this->_sysConfig['openTourism']['VALUE'] ? '完成' : '关闭') . ',耗时:' . round($t21 - $t20, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
|
|
|
// $this->_updatePercent(68);
|
|
|
|
|
|
- $this->calcBonusGarage();
|
|
|
+ $this->calcBonusVilla();
|
|
|
$t22 = microtime(true);
|
|
|
- echo('计算车房奖' . ($this->_sysConfig['openGarage']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t22 - $t21, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
|
|
|
+ echo('计算房奖' . ($this->_sysConfig['openVilla']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t22 - $t21, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
|
|
|
+ $this->_updatePercent(69);
|
|
|
+
|
|
|
+ $this->calcBonusGarage();
|
|
|
+ $t23 = microtime(true);
|
|
|
+ echo('计算车奖' . ($this->_sysConfig['openGarage']['VALUE'] ? '完成' : '关闭').',耗时:' . round($t23 - $t22, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
|
|
|
$this->_updatePercent(69);
|
|
|
|
|
|
|
|
|
@@ -347,7 +353,7 @@ class BonusCalc extends BaseObject {
|
|
|
echo('结算全部完成,共耗时:' . round($t35 - $t34, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL . PHP_EOL);
|
|
|
} catch (\Exception $e) {
|
|
|
$this->errorCalcTask();
|
|
|
- $this->addError('calc', $e->getFile() . ' ' . $e->getLine() . ' ' . $e->getMessage());
|
|
|
+ $this->addError('calc', sprintf('File【%s】, Line【%s】, Msg【%s】', $e->getFile(), $e->getLine(), $e->getMessage()));
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
|
@@ -449,6 +455,7 @@ class BonusCalc extends BaseObject {
|
|
|
ScoreMonth::pageDeleteAll('PERIOD_NUM='.$this->_periodNum);
|
|
|
CalcBonusTourism::pageDeleteAll('PERIOD_NUM='.$this->_periodNum);
|
|
|
CalcBonusGarage::pageDeleteAll('PERIOD_NUM='.$this->_periodNum);
|
|
|
+ CalcBonusVilla::pageDeleteAll('PERIOD_NUM='.$this->_periodNum);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1662,14 +1669,13 @@ class BonusCalc extends BaseObject {
|
|
|
$mate = $bonusConfig['VALUE'] / 100;
|
|
|
// 会员级别
|
|
|
$minDecLevel = $config['OPTIONS']['declarationLevel'] ?? [];
|
|
|
- // 会员聘级
|
|
|
- $minEmpLevel = $config['OPTIONS']['employLevel'] ?? [];
|
|
|
-
|
|
|
// 月度公司总PV
|
|
|
$monthTotalPV = PerfMonth::find()
|
|
|
->yearMonth($this->_calcYearMonth)
|
|
|
->where('CALC_MONTH=:CALC_MONTH', [':CALC_MONTH' => $this->_calcYearMonth])
|
|
|
->sum('PV_PCS');
|
|
|
+ // 用于分发的奖金总数
|
|
|
+ $transferAmount = $monthTotalPV * $mate;
|
|
|
|
|
|
// 基于蓝星奖结果计算符合获奖条件的会员StarDirector
|
|
|
$userStarDirector = CalcBonusBS::find()
|
|
|
@@ -1694,6 +1700,8 @@ class BonusCalc extends BaseObject {
|
|
|
// 合并用户ID,去重
|
|
|
$bonusUsers = array_unique(array_merge(array_keys($userStarDirectorObj), array_keys($userStarCrownObj)));
|
|
|
|
|
|
+ // 奖金点数综合
|
|
|
+ $bonusPointComplex = 0;
|
|
|
$insertBonusData = [];
|
|
|
foreach($bonusUsers as $userId) {
|
|
|
// 计算奖金:取starDirectorPoint和startCrownPoint的大个值
|
|
|
@@ -1701,47 +1709,163 @@ class BonusCalc extends BaseObject {
|
|
|
$startCrownPoint = $this->_starCrownLevelConfig[$userStarCrownObj[$userId]['LAST_STAR_LV']]['TOURISM_PERCENT'] ?? 0;
|
|
|
// 奖金比例:
|
|
|
$bonusPoint = max($starDirectorPoint, $startCrownPoint);
|
|
|
- // 计算奖金
|
|
|
- $amount = Tool::formatPrice(($monthTotalPV * $mate * $bonusPoint) / 100);
|
|
|
- if ($amount <= 0) {
|
|
|
- continue;
|
|
|
- }
|
|
|
-
|
|
|
- // 会员级别+聘级都达到要求才会发放奖金
|
|
|
- if (in_array($userStarDirectorObj[$userId]['LAST_DEC_LV'], $minDecLevel)) {
|
|
|
- // 放入缓存
|
|
|
- CalcCache::tourismBonus($userId, $this->_periodNum, $amount);
|
|
|
- // 加入月奖的会员
|
|
|
- CalcCache::addHasMonthBonusUsers($userId, $this->_periodNum);
|
|
|
- }
|
|
|
|
|
|
$insertBonusData[] = [
|
|
|
'ID' => SnowFake::instance()->generateId(),
|
|
|
'USER_ID' => $userId,
|
|
|
- 'LEVEL_ID' => $userStarDirectorObj[$userId]['LEVEL_ID'],
|
|
|
'LAST_DEC_LV' => $userStarDirectorObj[$userId]['LAST_DEC_LV'],
|
|
|
'LAST_EMP_LV' => $userStarDirectorObj[$userId]['LAST_EMP_LV'],
|
|
|
'LAST_STATUS' => $userStarDirectorObj[$userId]['LAST_STATUS'],
|
|
|
'LAST_STAR_LV' => $userStarCrownObj[$userId]['LAST_STAR_LV'],
|
|
|
- 'AMOUNT_STANDARD' => $amount,
|
|
|
+ 'AMOUNT_STANDARD' => 0,
|
|
|
'POINT' => $bonusPoint,
|
|
|
'PERIOD_NUM' => $this->_periodNum,
|
|
|
'CALC_YEAR' => $this->_calcYear,
|
|
|
'CALC_MONTH' => $this->_calcYearMonth,
|
|
|
'P_CALC_MONTH' => Date::ociToDate($this->_calcYearMonth, Date::OCI_TIME_FORMAT_SHORT_MONTH),
|
|
|
'CREATED_AT' => Date::nowTime(),
|
|
|
+ 'PERF' => $monthTotalPV,
|
|
|
+ 'TRANSFER_RATE' => $mate,
|
|
|
+ 'TRANSFER_AMOUNT' => Tool::formatPrice($transferAmount),
|
|
|
+ 'CAP_AMOUNT' => 0,
|
|
|
+ 'POINT_COMPLEX' => 0,
|
|
|
];
|
|
|
+
|
|
|
+ $bonusPointComplex += $bonusPoint;
|
|
|
}
|
|
|
|
|
|
// 数据写入总表
|
|
|
if ($insertBonusData) {
|
|
|
+ foreach ($insertBonusData as &$bonusData) {
|
|
|
+ // 计算奖金
|
|
|
+ $amount = Tool::formatPrice($transferAmount * ($bonusData['POINT'] / $bonusPointComplex));
|
|
|
+ if ($amount <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 会员级别达到要求才会发放奖金
|
|
|
+ if ($bonusData['LAST_DEC_LV'] == $minDecLevel) {
|
|
|
+ // 放入缓存
|
|
|
+ CalcCache::tourismBonus($bonusData['USER_ID'], $this->_periodNum, $amount);
|
|
|
+ // 加入月奖的会员
|
|
|
+ CalcCache::addHasMonthBonusUsers($bonusData['USER_ID'], $this->_periodNum);
|
|
|
+ }
|
|
|
+
|
|
|
+ $bonusData['AMOUNT'] = $amount;
|
|
|
+ $bonusData['POINT_COMPLEX'] = $bonusPointComplex;
|
|
|
+ }
|
|
|
+
|
|
|
CalcBonusTourism::batchInsert($insertBonusData);
|
|
|
}
|
|
|
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- // 执行车房奖的计算
|
|
|
+ // 执行房奖的计算
|
|
|
+ public function calcBonusVilla() {
|
|
|
+ // 月结,如果不是月结点,则直接退出
|
|
|
+ if (!$this->_isCalcMonth) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ $bonusConfig = $this->_sysConfig['openVilla'];
|
|
|
+ // 达标条件:聘级、级别、奖项比例
|
|
|
+ $config = json_decode($bonusConfig['OPTIONS'], true);
|
|
|
+ // 奖金总比例
|
|
|
+ $mate = $bonusConfig['VALUE'] / 100;
|
|
|
+ // 个人奖金封顶
|
|
|
+ $capBonus = intval($this->_sysConfig['openVillaCap']['VALUE'] ?? 0);
|
|
|
+ // 会员级别
|
|
|
+ $minDecLevel = $config['declarationLevel'] ?? [];
|
|
|
+
|
|
|
+ // 月度公司总PV
|
|
|
+ $monthTotalPV = PerfMonth::find()
|
|
|
+ ->yearMonth($this->_calcYearMonth)
|
|
|
+ ->where('CALC_MONTH=:CALC_MONTH', [':CALC_MONTH' => $this->_calcYearMonth])
|
|
|
+ ->sum('PV_PCS');
|
|
|
+ // 用于分发的奖金总数
|
|
|
+ $transferAmount = $monthTotalPV * $mate;
|
|
|
+
|
|
|
+ // 基于团队奖/绩效奖结果计算会员的StarCrown.StarCrown基于周期计算,一个月会产生多次,取月周期中的最高星级
|
|
|
+ $subQuery = CalcBonusQY::find()
|
|
|
+ ->yearMonth($this->_calcYearMonth)
|
|
|
+ ->where('CALC_MONTH = :CALC_MONTH AND LAST_STAR_LV <> :NO_STAR_LV', [':CALC_MONTH' => $this->_calcYearMonth, ':NO_STAR_LV' => StarCrownLevel::NO_LEVEL_ID])
|
|
|
+ ->select('USER_ID,LAST_DEC_LV,LAST_EMP_LV,LAST_STAR_LV,LAST_STATUS,LEVEL_NAME,SORT')
|
|
|
+ ->joinWith(['starCrown' => function($query) {
|
|
|
+ $query->select(['LEVEL_NAME', 'SORT']);
|
|
|
+ }])
|
|
|
+ ->having(1)
|
|
|
+ ->orderBy('USER_ID ASC, SORT DESC');
|
|
|
+ $userStarCrownObj = (new Query())->from(['u' => $subQuery])->select('USER_ID,LAST_DEC_LV,LAST_EMP_LV,LAST_STAR_LV,LAST_STATUS,LEVEL_NAME,SORT')->groupBy('USER_ID')->indexBy('USER_ID')->all();
|
|
|
+
|
|
|
+ // 奖金点数综合
|
|
|
+ $bonusPointComplex = 0;
|
|
|
+ $insertBonusData = [];
|
|
|
+ foreach($userStarCrownObj as $item) {
|
|
|
+ // 奖金比例
|
|
|
+ $bonusPoint = $this->_starCrownLevelConfig[$item['LAST_STAR_LV']]['VILLA_PERCENT'] ?? 0;
|
|
|
+ if (!$bonusPoint) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ $insertBonusData[] = [
|
|
|
+ 'ID' => SnowFake::instance()->generateId(),
|
|
|
+ 'USER_ID' => $item['USER_ID'],
|
|
|
+ 'LAST_DEC_LV' => $item['LAST_DEC_LV'],
|
|
|
+ 'LAST_EMP_LV' => $item['LAST_EMP_LV'],
|
|
|
+ 'LAST_STATUS' => $item['LAST_STATUS'],
|
|
|
+ 'LAST_STAR_LV' => $item['LAST_STAR_LV'],
|
|
|
+ 'AMOUNT' => 0,
|
|
|
+ 'POINT' => $bonusPoint,
|
|
|
+ 'PERIOD_NUM' => $this->_periodNum,
|
|
|
+ 'CALC_YEAR' => $this->_calcYear,
|
|
|
+ 'CALC_MONTH' => $this->_calcYearMonth,
|
|
|
+ 'P_CALC_MONTH' => Date::ociToDate($this->_calcYearMonth, Date::OCI_TIME_FORMAT_SHORT_MONTH),
|
|
|
+ 'CREATED_AT' => Date::nowTime(),
|
|
|
+ 'PERF' => $monthTotalPV,
|
|
|
+ 'TRANSFER_RATE' => $mate,
|
|
|
+ 'TRANSFER_AMOUNT' => Tool::formatPrice($transferAmount),
|
|
|
+ 'CAP_AMOUNT' => 0,
|
|
|
+ 'POINT_COMPLEX' => 0,
|
|
|
+ ];
|
|
|
+
|
|
|
+ $bonusPointComplex += $bonusPoint;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 数据写入总表
|
|
|
+ if ($insertBonusData) {
|
|
|
+ // 计算个人奖金
|
|
|
+ foreach ($insertBonusData as &$bonusData) {
|
|
|
+ // 计算奖金
|
|
|
+ $amount = Tool::formatPrice($transferAmount * ($bonusData['POINT'] / $bonusPointComplex));
|
|
|
+ if ($amount <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 封顶前奖金数
|
|
|
+ $capAmount = $amount;
|
|
|
+ // 奖金数不能大于封顶值
|
|
|
+ $amount = ($amount > $capBonus) ? $capBonus : $amount;
|
|
|
+
|
|
|
+ // 会员级别达到要求才会发放奖金
|
|
|
+ if ($bonusData['LAST_DEC_LV'] == $minDecLevel) {
|
|
|
+ // 放入缓存
|
|
|
+ CalcCache::villaBonus($bonusData['USER_ID'], $this->_periodNum, $amount);
|
|
|
+ // 加入月奖的会员
|
|
|
+ CalcCache::addHasMonthBonusUsers($bonusData['USER_ID'], $this->_periodNum);
|
|
|
+ }
|
|
|
+
|
|
|
+ $bonusData['AMOUNT'] = $amount;
|
|
|
+ $bonusData['CAP_AMOUNT'] = $capAmount;
|
|
|
+ $bonusData['POINT_COMPLEX'] = $bonusPointComplex;
|
|
|
+ }
|
|
|
+
|
|
|
+ CalcBonusVilla::batchInsert($insertBonusData);
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 执行车奖的计算
|
|
|
public function calcBonusGarage() {
|
|
|
// 月结,如果不是月结点,则直接退出
|
|
|
if (!$this->_isCalcMonth) {
|
|
|
@@ -1754,9 +1878,7 @@ class BonusCalc extends BaseObject {
|
|
|
// 奖金总比例
|
|
|
$mate = $bonusConfig['VALUE'] / 100;
|
|
|
// 会员级别
|
|
|
- $minDecLevel = $config['OPTIONS']['declarationLevel'] ?? [];
|
|
|
- // 会员聘级
|
|
|
- $minEmpLevel = $config['OPTIONS']['employLevel'] ?? [];
|
|
|
+ $minDecLevel = $config['declarationLevel'] ?? [];
|
|
|
// 个人奖金封顶
|
|
|
$capBonus = intval($this->_sysConfig['openGarageCap']['VALUE'] ?? 0);
|
|
|
|
|
|
@@ -1765,6 +1887,8 @@ class BonusCalc extends BaseObject {
|
|
|
->yearMonth($this->_calcYearMonth)
|
|
|
->where('CALC_MONTH=:CALC_MONTH', [':CALC_MONTH' => $this->_calcYearMonth])
|
|
|
->sum('PV_PCS');
|
|
|
+ // 用于分发的奖金总数
|
|
|
+ $transferAmount = $monthTotalPV * $mate;
|
|
|
|
|
|
// 基于蓝星奖结果计算符合获奖条件的会员StarDirector
|
|
|
$userStarDirector = CalcBonusBS::find()
|
|
|
@@ -1792,6 +1916,8 @@ class BonusCalc extends BaseObject {
|
|
|
$bonusUsers = array_unique(array_merge(array_keys($userStarDirectorObj), array_keys($userStarCrownObj)));
|
|
|
sort($bonusUsers);
|
|
|
|
|
|
+ // 奖金点数综合
|
|
|
+ $bonusPointComplex = 0;
|
|
|
$insertBonusData = [];
|
|
|
foreach($bonusUsers as $userId) {
|
|
|
// 计算奖金:取starDirectorPoint和startCrownPoint的大个值
|
|
|
@@ -1799,42 +1925,57 @@ class BonusCalc extends BaseObject {
|
|
|
$startCrownPoint = !isset($userStarCrownObj[$userId]['LAST_STAR_LV']) ? 0: ($this->_starCrownLevelConfig[$userStarCrownObj[$userId]['LAST_STAR_LV']]['GARAGE_PERCENT'] ?? 0);
|
|
|
// 奖金比例:
|
|
|
$bonusPoint = max($starDirectorPoint, $startCrownPoint);
|
|
|
- // 计算奖金
|
|
|
- $amount = Tool::formatPrice(($monthTotalPV * $mate * $bonusPoint) / 100);
|
|
|
- if ($amount <= 0) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- // 奖金数不能大于封顶值
|
|
|
- $amount = ($amount > $capBonus) ? $capBonus : $amount;
|
|
|
-
|
|
|
- // 会员级别+聘级都达到要求才会发放奖金
|
|
|
- if (isset($userStarDirectorObj[$userId]) && in_array($userStarDirectorObj[$userId]['LAST_DEC_LV'], $minDecLevel)) {
|
|
|
- // 放入缓存
|
|
|
- CalcCache::garageBonus($userId, $this->_periodNum, $amount);
|
|
|
- // 加入月奖的会员
|
|
|
- CalcCache::addHasMonthBonusUsers($userId, $this->_periodNum);
|
|
|
- }
|
|
|
|
|
|
$insertBonusData[] = [
|
|
|
'ID' => SnowFake::instance()->generateId(),
|
|
|
'USER_ID' => $userId,
|
|
|
- 'LEVEL_ID' => $userStarDirectorObj[$userId]['LEVEL_ID'] ?? '',
|
|
|
'LAST_DEC_LV' => $userStarDirectorObj[$userId]['LAST_DEC_LV'] ?? ($userStarCrownObj[$userId]['LAST_DEC_LV'] ?? ''),
|
|
|
'LAST_EMP_LV' => $userStarDirectorObj[$userId]['LAST_EMP_LV'] ?? ($userStarCrownObj[$userId]['LAST_EMP_LV'] ?? ''),
|
|
|
'LAST_STATUS' => $userStarDirectorObj[$userId]['LAST_STATUS'] ?? ($userStarCrownObj[$userId]['LAST_STATUS'] ?? 1),
|
|
|
'LAST_STAR_LV' => $userStarCrownObj[$userId]['LAST_STAR_LV'] ?? '',
|
|
|
- 'AMOUNT' => $amount,
|
|
|
+ 'AMOUNT' => 0,
|
|
|
'POINT' => $bonusPoint,
|
|
|
'PERIOD_NUM' => $this->_periodNum,
|
|
|
'CALC_YEAR' => $this->_calcYear,
|
|
|
'CALC_MONTH' => $this->_calcYearMonth,
|
|
|
'P_CALC_MONTH' => Date::ociToDate($this->_calcYearMonth, Date::OCI_TIME_FORMAT_SHORT_MONTH),
|
|
|
'CREATED_AT' => Date::nowTime(),
|
|
|
+ 'PERF' => $monthTotalPV,
|
|
|
+ 'TRANSFER_RATE' => $mate,
|
|
|
+ 'TRANSFER_AMOUNT' => Tool::formatPrice($transferAmount),
|
|
|
+ 'CAP_AMOUNT' => 0,
|
|
|
+ 'POINT_COMPLEX' => 0,
|
|
|
];
|
|
|
+
|
|
|
+ $bonusPointComplex += $bonusPoint;
|
|
|
}
|
|
|
|
|
|
// 数据写入总表
|
|
|
if ($insertBonusData) {
|
|
|
+ foreach ($insertBonusData as &$bonusData) {
|
|
|
+ // 计算奖金
|
|
|
+ $amount = Tool::formatPrice($transferAmount * ($bonusData['POINT'] / $bonusPointComplex));
|
|
|
+ if ($amount <= 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 封顶前奖金数
|
|
|
+ $capAmount = $amount;
|
|
|
+ // 奖金数不能大于封顶值
|
|
|
+ $amount = ($amount > $capBonus) ? $capBonus : $amount;
|
|
|
+
|
|
|
+ // 会员级别达到要求才会发放奖金
|
|
|
+ if ($bonusData['LAST_DEC_LV'] == $minDecLevel) {
|
|
|
+ // 放入缓存
|
|
|
+ CalcCache::garageBonus($bonusData['USER_ID'], $this->_periodNum, $amount);
|
|
|
+ // 加入月奖的会员
|
|
|
+ CalcCache::addHasMonthBonusUsers($bonusData['USER_ID'], $this->_periodNum);
|
|
|
+ }
|
|
|
+
|
|
|
+ $bonusData['AMOUNT'] = $amount;
|
|
|
+ $bonusData['CAP_AMOUNT'] = $capAmount;
|
|
|
+ $bonusData['POINT_COMPLEX'] = $bonusPointComplex;
|
|
|
+ }
|
|
|
+
|
|
|
CalcBonusGarage::batchInsert($insertBonusData);
|
|
|
}
|
|
|
|
|
|
@@ -3499,6 +3640,7 @@ class BonusCalc extends BaseObject {
|
|
|
$perfData = CalcCache::nowPeriodPerf($userId, $this->_periodNum);
|
|
|
$tourismBonus = CalcCache::tourismBonus($userId, $this->_periodNum);
|
|
|
$garageBonus = CalcCache::garageBonus($userId, $this->_periodNum);
|
|
|
+ $villaBonus = CalcCache::villaBonus($userId, $this->_periodNum);
|
|
|
$empLv = $baseInfo['EMP_LV'];
|
|
|
// if($this->_isCalcMonth){
|
|
|
// $empLv = $this->nowMonthPerfData($userId)['LAST_EMP_LV'];
|
|
|
@@ -3675,7 +3817,8 @@ class BonusCalc extends BaseObject {
|
|
|
'ORI_CAPPED_BONUS_QY' => $bonus['ORI_CAPPED_BONUS_QY'], // 团队奖封顶前的奖金
|
|
|
|
|
|
'BONUS_TOURISM' => $tourismBonus, // 旅游奖
|
|
|
- 'BONUS_GARAGE' => $garageBonus, // 车房奖
|
|
|
+ 'BONUS_VILLA' => $villaBonus, // 房奖
|
|
|
+ 'BONUS_GARAGE' => $garageBonus, // 车奖
|
|
|
|
|
|
//以下没有用
|
|
|
'BONUS_FW' => 0,
|