|
|
@@ -1635,13 +1635,23 @@ class BonusCalc extends BaseObject {
|
|
|
// 添加到有奖励信息的数据中
|
|
|
CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
//CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
- //扣除相应的复消积分和管理费
|
|
|
- $deductData = $this->deduct($user['USER_ID'], $user['ORI_BONUS']);
|
|
|
- // 把对碰后的奖金存入缓存中
|
|
|
- CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS'], $deductData);
|
|
|
- $realBonusBs = $deductData['surplus']; // 扣除管理费和复消积分后的实发蓝星奖金
|
|
|
- $manageTax = $deductData['manageTax']; // 管理费
|
|
|
- $point = $deductData['reConsumePoints'];// 复消积分
|
|
|
+ $fxStatus = $this->_isMonthPerfLimit($user['USER_ID']);
|
|
|
+ if ($fxStatus) {
|
|
|
+ //扣除相应的复消积分和管理费
|
|
|
+ $deductData = $this->deduct($user['USER_ID'], $user['ORI_BONUS']);
|
|
|
+ // 把对碰后的奖金存入缓存中
|
|
|
+ CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS'], $deductData);
|
|
|
+ $realBonusBs = $deductData['surplus']; // 扣除管理费和复消积分后的实发蓝星奖金
|
|
|
+ $manageTax = $deductData['manageTax']; // 管理费
|
|
|
+ $point = $deductData['reConsumePoints'];// 复消积分
|
|
|
+ } else {
|
|
|
+ // 如果未满足月消费,则不扣除管理费和复消积分了
|
|
|
+ CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS']);
|
|
|
+ $realBonusBs = $user['ORI_BONUS'];
|
|
|
+ $manageTax = 0; // 管理费
|
|
|
+ $point = 0;// 复消积分
|
|
|
+ }
|
|
|
+
|
|
|
// 更新蓝星奖金存储过程的实发金额数据
|
|
|
CalcBonusBS::updateAll(['AMOUNT' => $realBonusBs, 'MANAGE_TAX' => $manageTax, 'RECONSUME_POINTS' => $point],
|
|
|
'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
@@ -3246,17 +3256,7 @@ class BonusCalc extends BaseObject {
|
|
|
// $totalCheckPv = $monthPerf + $decPv;
|
|
|
// $fxPvStatus = $totalCheckPv >= $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();
|
|
|
- $fxPvStatus = false;
|
|
|
- if (isset($userMonthTotal['PV_PCS']) && $userMonthTotal['PV_PCS'] >= $this->_sysConfig['monthPcsPvFxCondition']['VALUE']) {
|
|
|
- $fxPvStatus = true;
|
|
|
- }
|
|
|
+ $fxPvStatus = $this->_isMonthPerfLimit($userId);
|
|
|
// BONUS_REAL 字段是发到用户的真实奖金
|
|
|
if ( $fxPvStatus ) {
|
|
|
// 管理奖改成了蓝星奖,但是对于用户来说依旧叫管理奖.字段改成bs.
|
|
|
@@ -3569,5 +3569,19 @@ class BonusCalc extends BaseObject {
|
|
|
return $baseScore;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ // 判断是否满足月最低消费
|
|
|
+ public function _isMonthPerfLimit($userId) {
|
|
|
+ $userMonthTotal = PerfMonth::find()->where(
|
|
|
+ 'USER_ID=:USER_ID AND CALC_MONTH=:CALC_MONTH',
|
|
|
+ ['USER_ID'=>$userId, 'CALC_MONTH'=>$this->_calcYearMonth]
|
|
|
+ )
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+ $fxPvStatus = false;
|
|
|
+ if (isset($userMonthTotal['PV_PCS']) && $userMonthTotal['PV_PCS'] >= $this->_sysConfig['monthPcsPvFxCondition']['VALUE']) {
|
|
|
+ $fxPvStatus = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ return $fxPvStatus;
|
|
|
+ }
|
|
|
}
|