|
|
@@ -1736,7 +1736,7 @@ class BonusCalc extends BaseObject {
|
|
|
}
|
|
|
// 从缓存获取分页有收入的会员信息
|
|
|
$allData = CalcBonusBS::findUseDbCalc()
|
|
|
- ->where('PERIOD_NUM=:PERIOD_NUM AND ORI_BONUS_MNT > 0', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
+ ->where('PERIOD_NUM=:PERIOD_NUM', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
->groupBy('USER_ID')
|
|
|
->offset($offset)
|
|
|
->limit($this->_limit)
|
|
|
@@ -1756,10 +1756,10 @@ class BonusCalc extends BaseObject {
|
|
|
|
|
|
// 管理奖钻卡发放
|
|
|
if (in_array($user['LAST_DEC_LV'], $minDecLevel)) {
|
|
|
- // 添加到有奖励信息的数据中
|
|
|
- CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
// 把对碰后的奖金存入缓存中
|
|
|
CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS_MNT', $user['ORI_BONUS_MNT'], $deductData);
|
|
|
+ // 加入月奖的会员
|
|
|
+ CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
}
|
|
|
|
|
|
// 更新蓝星奖金存储过程的实发金额数据
|
|
|
@@ -1789,7 +1789,7 @@ class BonusCalc extends BaseObject {
|
|
|
}
|
|
|
// 从缓存获取分页有收入的会员信息
|
|
|
$allData = CalcBonusBS::findUseDbCalc()
|
|
|
- ->where('PERIOD_NUM=:PERIOD_NUM AND ORI_BONUS_ABBR > 0', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
+ ->where('PERIOD_NUM=:PERIOD_NUM', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
->groupBy('USER_ID')
|
|
|
->offset($offset)
|
|
|
->limit($this->_limit)
|
|
|
@@ -3411,20 +3411,29 @@ class BonusCalc extends BaseObject {
|
|
|
$realBonusGx = 0;
|
|
|
$realBonusGl = 0;
|
|
|
$realBonusBs = 0; // 蓝星管理奖. BlueStar
|
|
|
- $blueStartAmount = 0;
|
|
|
- $buleStartOriBonus = 0;
|
|
|
- $buleStartManageTax = 0;
|
|
|
+ $blueStartOriBonus = 0;
|
|
|
+ $blueStartManageTax = 0;
|
|
|
$exchangePoints = 0; // 蓝星奖管理奖. 产生的兑换积分
|
|
|
|
|
|
- $realBonusBsMnt = 0; // 蓝星管理奖. BlueStar
|
|
|
- $blueStartOriBonusMnt = 0;
|
|
|
+ $realBonusBsMnt = 0; // 蓝星管理奖——实发奖金
|
|
|
+ $blueStartOriBonusMnt = 0; // 蓝星管理奖——原奖金
|
|
|
+ $blueStartManageTaxMnt = 0; // 蓝星管理奖——管理费
|
|
|
|
|
|
- $realBonusBsAbbr = 0; // 蓝星业绩奖. BlueStar
|
|
|
- $blueStartOriBonusAbbr = 0;
|
|
|
+ $realBonusBsAbbr = 0; // 蓝星业绩奖——实发奖金
|
|
|
+ $blueStartOriBonusAbbr = 0; // 蓝星业绩奖——原奖金
|
|
|
+ $blueStartManageTaxAbbr = 0; // 蓝星业绩奖——管理费
|
|
|
if( $this->_isCalcMonth ) {
|
|
|
- //查看是否复消300
|
|
|
- $monthPerfData = CalcCache::nowMonthPerf($userId, $this->_periodNum);
|
|
|
- $fxPvStatus = $monthPerfData['PV_PCS_FX'] >= $this->_sysConfig['monthPcsPvFxCondition']['VALUE'];
|
|
|
+ // 逻辑改成,用户此月累计消费总额大于等于配置,取消订单类型的配置
|
|
|
+ $userMonthTotal = PerfMonth::find()
|
|
|
+ ->where('USER_ID=:USER_ID AND CALC_MONTH=:CALC_MONTH', ['USER_ID'=>$userId, 'CALC_MONTH'=>$this->_calcYearMonth])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+
|
|
|
+ // 个人月消费PV大于配置值,才会计算发放蓝星奖
|
|
|
+ $fxPvStatus = false;
|
|
|
+ if (isset($userMonthTotal['PV_PCS']) && $userMonthTotal['PV_PCS'] >= $this->_sysConfig['monthPcsPvFxCondition']['VALUE']) {
|
|
|
+ $fxPvStatus = true;
|
|
|
+ }
|
|
|
// BONUS_REAL 字段是发到用户的真实奖金
|
|
|
if ( $fxPvStatus ) {
|
|
|
// 管理奖改成了蓝星奖,但是对于用户来说依旧叫管理奖.字段改成bs.
|
|
|
@@ -3444,16 +3453,21 @@ class BonusCalc extends BaseObject {
|
|
|
->orderBy('CREATED_AT DESC')
|
|
|
->asArray()
|
|
|
->all();
|
|
|
+
|
|
|
$userBS = is_array($userBS) ? reset($userBS) : [];
|
|
|
$blueStartAmount = isset($userBS['AMOUNT']) && !empty($userBS['AMOUNT']) ? $userBS['AMOUNT'] : 0; // 奖金
|
|
|
- $buleStartOriBonus = isset($userBS['ORI_BONUS']) && !empty($userBS['ORI_BONUS']) ? $userBS['ORI_BONUS'] : 0; // 原奖金
|
|
|
- // $buleStartManageTax = isset($userBS['MANAGE_TAX']) && !empty($userBS['MANAGE_TAX']) ? $userBS['MANAGE_TAX'] : 0; // 管理费
|
|
|
+ $blueStartOriBonus = isset($userBS['ORI_BONUS']) && !empty($userBS['ORI_BONUS']) ? $userBS['ORI_BONUS'] : 0; // 原奖金
|
|
|
+ $blueStartManageTax = isset($userBS['MANAGE_TAX']) && !empty($userBS['MANAGE_TAX']) ? $userBS['MANAGE_TAX'] : 0; // 管理费
|
|
|
|
|
|
- $realBonusBsMnt = $userBS['AMOUNT_MNT'] ?? 0; // 蓝星管理奖. 奖金
|
|
|
+ $realBonusBsMnt = $userBS['AMOUNT_MNT'] ?? 0; // 蓝星管理奖. 实发奖金
|
|
|
$blueStartOriBonusMnt = $userBS['ORI_BONUS_MNT'] ?? 0; // 蓝星管理奖. 原奖金
|
|
|
+ $blueStartManageTaxMnt = $userBS['MANAGE_TAX_MNT'] ?? 0; // 蓝星管理奖. 管理费
|
|
|
|
|
|
$realBonusBsAbbr = $userBS['AMOUNT_ABBR'] ?? 0; // 蓝星业绩奖. 奖金
|
|
|
$blueStartOriBonusAbbr = $userBS['ORI_BONUS_ABBR'] ?? 0; // 蓝星业绩奖. 原奖金
|
|
|
+ $blueStartManageTaxAbbr = $userBS['MANAGE_TAX_ABBR'] ?? 0; // 蓝星业绩奖. 管理费
|
|
|
+
|
|
|
+ $blueStartManageTax += $blueStartManageTaxMnt + $blueStartManageTaxAbbr; // 管理费
|
|
|
|
|
|
$monthSumData = CalcBonus::findUseSlaves()
|
|
|
->select('SUM(BONUS_GX) AS BONUS_GX_SUM, SUM(BONUS_GL) AS BONUS_GL_SUM')
|
|
|
@@ -3465,57 +3479,15 @@ class BonusCalc extends BaseObject {
|
|
|
)
|
|
|
->asArray()
|
|
|
->one();
|
|
|
- $bonusGxSum = $monthSumData['BONUS_GX_SUM'] ?? 0;
|
|
|
- $bonusGlSum = $monthSumData['BONUS_GL_SUM'] ?? 0;
|
|
|
- $realBonusGx += $bonusGxSum + $bonus['BONUS_GX'];
|
|
|
- $realBonusGl += $bonusGlSum + $bonus['BONUS_GL'];
|
|
|
$realBonusBs = $blueStartAmount; // 蓝星奖直接取数据库中算好的值PRODUCT_POINT
|
|
|
- $bonusReal += $realBonusGx + $realBonusGl;
|
|
|
$exchangePoints = isset($userBS['PRODUCT_POINT']) && !empty($userBS['PRODUCT_POINT']) ? $userBS['PRODUCT_POINT'] : 0; // 兑换积分
|
|
|
|
|
|
- $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] + $buleStartOriBonus; // 管理奖在存储过程计算,这里单独加上管理奖(即蓝星奖)
|
|
|
+ // 蓝星奖总奖金:管理奖+业绩奖
|
|
|
+ $blueStartOriBonus = $blueStartOriBonusMnt + $blueStartOriBonusAbbr;
|
|
|
+ $bonus['BONUS_TOTAL'] = $bonus['BONUS_TOTAL'] + $blueStartOriBonus; // 管理奖在存储过程计算,这里单独加上管理奖(即蓝星奖)
|
|
|
unset($monthSumData, $bonusGxSum, $bonusGlSum);
|
|
|
}
|
|
|
}
|
|
|
- // if( $this->_isCalcMonth ) {
|
|
|
- // // 将查看是否复消300的逻辑,改成月结时判断当前月有一周活跃则本月活跃
|
|
|
- // // 1. 获取此业绩期的月份
|
|
|
- // $periodInfo = Period::getInfoByPeriodNum($this->_periodNum);
|
|
|
-
|
|
|
- // $calcMonth = $periodInfo['CALC_YEAR'].'-'.$periodInfo['CALC_MONTH']; // 2025-7
|
|
|
- // // 获取此月的第一天和最后一天时间戳
|
|
|
- // $fday = date('Y-m-01', strtotime($calcMonth));
|
|
|
- // $lday = date('Y-m-d', strtotime("$fday +1 month -1 day"));
|
|
|
- // $ftime = strtotime($fday);
|
|
|
- // $ltime = strtotime($lday.' 23:59:59');
|
|
|
- // // 2. 根据业绩期的月份,判断用户是否是活跃状态.
|
|
|
- // $fxPvStatus = PerfActiveUser::findUseDbCalc()
|
|
|
- // ->select('USER_ID')
|
|
|
- // ->where("USER_ID=:USER_ID ", [':USER_ID' => $userId])
|
|
|
- // ->andWhere(['or',
|
|
|
- // [
|
|
|
- // 'and',
|
|
|
- // ['>=', 'SRATR_AT', $ftime],
|
|
|
- // ['<=', 'SRATR_AT', $ltime]
|
|
|
- // ],
|
|
|
- // [
|
|
|
- // 'and',
|
|
|
- // ['>=', 'END_AT', $ftime],
|
|
|
- // ['<=', 'END_AT', $ltime]
|
|
|
- // ]
|
|
|
- // ])
|
|
|
- // ->asArray()
|
|
|
- // ->all();
|
|
|
- // if ( !empty($fxPvStatus) ) {//加上本期和往期的共享和管理奖
|
|
|
- // $monthSumData = CalcBonus::findUseSlaves()->select('SUM(BONUS_GX) AS BONUS_GX_SUM, SUM(BONUS_GL) AS BONUS_GL_SUM')->where('USER_ID=:USER_ID AND CALC_MONTH=:CALC_MONTH', ['USER_ID'=>$userId, 'CALC_MONTH'=>$this->_calcYearMonth])->asArray()->one();
|
|
|
- // $bonusGxSum = $monthSumData['BONUS_GX_SUM'] ?? 0;
|
|
|
- // $bonusGlSum = $monthSumData['BONUS_GL_SUM'] ?? 0;
|
|
|
- // $realBonusGx += $bonusGxSum + $bonus['BONUS_GX'];
|
|
|
- // $realBonusGl += $bonusGlSum + $bonus['BONUS_GL'];
|
|
|
- // $bonusReal += $realBonusGx + $realBonusGl;
|
|
|
- // unset($monthSumData, $bonusGxSum, $bonusGlSum);
|
|
|
- // }
|
|
|
- // }
|
|
|
|
|
|
$result = [
|
|
|
'USER_ID' => $userId,
|
|
|
@@ -3551,7 +3523,7 @@ class BonusCalc extends BaseObject {
|
|
|
'BONUS_YC' => $bonus['BONUS_YC'] + $bonus['BONUS_YC_EXTRA'],
|
|
|
'BONUS_VIP' => $bonus['BONUS_VIP'],
|
|
|
'RECONSUME_POINTS' => $bonus['RECONSUME_POINTS'],
|
|
|
- 'MANAGE_TAX' => $bonus['MANAGE_TAX'],
|
|
|
+ 'MANAGE_TAX' => $blueStartManageTax, // 管理费
|
|
|
'BONUS_INCOME'=>$bonus['INCOME_TOTAL'],
|
|
|
'BONUS_REAL'=> $bonusReal,
|
|
|
'BONUS_TOTAL'=>$bonus['BONUS_TOTAL'],
|
|
|
@@ -3565,15 +3537,21 @@ class BonusCalc extends BaseObject {
|
|
|
'REAL_BONUS_GX' => $realBonusGx,
|
|
|
'ORI_BONUS_GL' => $bonus['ORI_BONUS_GL'],
|
|
|
'REAL_BONUS_GL' => $realBonusGl,
|
|
|
+
|
|
|
'BONUS_BS' => $realBonusBs, // 新的管理奖金,即蓝星管理奖
|
|
|
- 'ORI_BONUS_BS' => $buleStartOriBonus, // 蓝星管理奖金原奖金,即包含管理费
|
|
|
+ 'ORI_BONUS_BS' => $blueStartOriBonus, // 蓝星管理奖金原奖金,即包含管理费
|
|
|
'REAL_BONUS_BS' => $realBonusBs, // 实发蓝星管理奖金
|
|
|
- 'BONUS_BS_MNT' => $bonus['BONUS_BS_MNT'], // 蓝星管理奖
|
|
|
- 'ORI_BONUS_BS_MNT' => $bonus['ORI_BONUS_BS_MNT'], // 蓝星管理奖金原奖金,即包含管理费
|
|
|
- 'REAL_BONUS_BS_MNT' => $bonus['BONUS_BS_MNT'], // 实发蓝星管理奖金
|
|
|
- 'BONUS_BS_ABBR' => $bonus['BONUS_BS_ABBR'], // 蓝星业绩奖
|
|
|
- 'ORI_BONUS_BS_ABBR' => $bonus['ORI_BONUS_BS_ABBR'], // 蓝星业绩奖金原奖金,即包含管理费
|
|
|
- 'REAL_BONUS_BS_ABBR' => $bonus['BONUS_BS_ABBR'], // 实发蓝星业绩奖金
|
|
|
+
|
|
|
+ 'BONUS_BS_MNT' => $realBonusBsMnt, // 蓝星管理奖
|
|
|
+ 'ORI_BONUS_BS_MNT' => $blueStartOriBonusMnt, // 蓝星管理奖金原奖金,即包含管理费
|
|
|
+ 'REAL_BONUS_BS_MNT' => $realBonusBsMnt, // 实发蓝星管理奖金
|
|
|
+ 'MANAGE_TAX_MNT' => $blueStartManageTaxMnt, // 实发蓝星管理——管理费
|
|
|
+
|
|
|
+ 'BONUS_BS_ABBR' => $realBonusBsAbbr, // 蓝星业绩奖
|
|
|
+ 'ORI_BONUS_BS_ABBR' => $blueStartOriBonusAbbr, // 蓝星业绩奖金原奖金,即包含管理费
|
|
|
+ 'REAL_BONUS_BS_ABBR' => $realBonusBsAbbr, // 实发蓝星业绩奖金
|
|
|
+ 'MANAGE_TAX_ABBR' => $blueStartManageTaxAbbr, // 实发蓝星业绩奖——管理费
|
|
|
+
|
|
|
'ORI_BONUS_GL_BD' => $bonus['ORI_BONUS_GL_BD'],
|
|
|
'ORI_BONUS_GL_FX' => $bonus['ORI_BONUS_GL_FX'],
|
|
|
'ORI_BONUS_QY' => $bonus['ORI_BONUS_QY'],
|
|
|
@@ -3582,6 +3560,7 @@ class BonusCalc extends BaseObject {
|
|
|
'ORI_BONUS_YC' => $bonus['ORI_BONUS_YC'] + $bonus['ORI_BONUS_YC_EXTRA'],
|
|
|
'ORI_BONUS_VIP' => $bonus['ORI_BONUS_VIP'],
|
|
|
'ORI_BONUS_STANDARD' => $standardBonus,
|
|
|
+
|
|
|
'BONUS_TRAVEL' => $travelBonus, // 旅游奖
|
|
|
'BONUS_CAR' => $carBonus, // 名车奖
|
|
|
'BONUS_HOUSE' => $houseBonus, // 豪宅奖
|