|
|
@@ -278,9 +278,12 @@ class BonusCalc extends BaseObject {
|
|
|
|
|
|
// 蓝星奖入库,实际上是插入有奖金会员数据缓存中.
|
|
|
// 调用存储过程,计算蓝星管理奖金
|
|
|
+ echo '蓝星修改的方法-------------';
|
|
|
$this->calcBsProcedure();
|
|
|
// 将有蓝星管理奖金的用户加入到有奖金缓存用户中
|
|
|
+
|
|
|
$this->calcBonusBsGL();
|
|
|
+ $this->calcBonusBsYJ();
|
|
|
$t18temp = microtime(true);
|
|
|
echo('计算蓝星管理奖'.($this->_sysConfig['openGL']['VALUE']?'完成':'关闭').',耗时:' . round($t18temp - $t18, 3) . ',内存使用:' . (round(memory_get_usage() / 1024 / 1024, 3)) . 'MB' . PHP_EOL);
|
|
|
$this->_updatePercent(65);
|
|
|
@@ -292,7 +295,7 @@ class BonusCalc extends BaseObject {
|
|
|
$this->_updatePercent(70);
|
|
|
|
|
|
//奖金写库
|
|
|
- // 这里增加新的奖金入库操作.
|
|
|
+ // TODO:这里增加新的奖金入库操作.
|
|
|
$this->loopBonusUsers();
|
|
|
// 入库完成,将各个奖金计算流水会员聘级,更新成蓝星奖当时计算的聘级
|
|
|
$this->loopCalcBlueEmpLv();
|
|
|
@@ -1624,7 +1627,7 @@ class BonusCalc extends BaseObject {
|
|
|
}
|
|
|
// 从缓存获取分页有收入的会员信息
|
|
|
$allData = CalcBonusBS::findUseDbCalc()
|
|
|
- ->where('PERIOD_NUM=:PERIOD_NUM', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
+ ->where('PERIOD_NUM=:PERIOD_NUM AND ORI_BONUS_BU_GL > 0', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
->groupBy('USER_ID')
|
|
|
->offset($offset)
|
|
|
->limit($this->_limit)
|
|
|
@@ -1636,14 +1639,14 @@ 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']);
|
|
|
+ $deductData = $this->deduct($user['USER_ID'], $user['ORI_BONUS_BU_GL']);
|
|
|
// 把对碰后的奖金存入缓存中
|
|
|
- CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BS', $user['ORI_BONUS'], $deductData);
|
|
|
+ CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_GL', $user['ORI_BONUS_BU_GL'], $deductData);
|
|
|
$realBonusBs = $deductData['surplus']; // 扣除管理费和复消积分后的实发蓝星奖金
|
|
|
$manageTax = $deductData['manageTax']; // 管理费
|
|
|
$point = $deductData['reConsumePoints'];// 复消积分
|
|
|
// 更新蓝星奖金存储过程的实发金额数据
|
|
|
- CalcBonusBS::updateAll(['AMOUNT' => $realBonusBs, 'MANAGE_TAX' => $manageTax, 'RECONSUME_POINTS' => $point],
|
|
|
+ CalcBonusBS::updateAll(['ORI_BONUS_BU_GLSF' => $realBonusBs, 'ORI_BONUS_BU_GLKC' => $manageTax, 'RECONSUME_POINTS' => $point],
|
|
|
'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
[':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
|
|
|
}
|
|
|
@@ -1653,6 +1656,50 @@ class BonusCalc extends BaseObject {
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 蓝星业绩奖金
|
|
|
+ * @param int $offset
|
|
|
+ * @return bool
|
|
|
+ * @throws \yii\db\Exception
|
|
|
+ */
|
|
|
+ public function calcBonusBsYJ(int $offset = 0) {
|
|
|
+ if( !$this->_isCalcMonth ) {
|
|
|
+ // 不是结算月,则不进行计算
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // 从缓存获取分页有收入的会员信息
|
|
|
+ $allData = CalcBonusBS::findUseDbCalc()
|
|
|
+ ->where('PERIOD_NUM=:PERIOD_NUM AND ORI_BONUS_BU_YJ > 0', [':PERIOD_NUM' => $this->_periodNum])
|
|
|
+ ->groupBy('USER_ID')
|
|
|
+ ->offset($offset)
|
|
|
+ ->limit($this->_limit)
|
|
|
+ ->asArray()
|
|
|
+ ->all();
|
|
|
+ if ($allData) {
|
|
|
+ foreach ($allData as $user) {
|
|
|
+ // 添加到有奖励信息的数据中
|
|
|
+ CalcCache::addHasBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
+ //CalcCache::addHasMonthBonusUsers($user['USER_ID'], $this->_periodNum);
|
|
|
+ //扣除相应的复消积分和管理费
|
|
|
+ $deductData = $this->deduct($user['USER_ID'], $user['ORI_BONUS_BU_YJ']);
|
|
|
+ // 把对碰后的奖金存入缓存中
|
|
|
+ CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_BU_YJ', $user['ORI_BONUS_BU_YJ'], $deductData);
|
|
|
+ $realBonusBs = $deductData['surplus']; // 扣除管理费和复消积分后的实发蓝星奖金
|
|
|
+ $manageTax = $deductData['manageTax']; // 管理费
|
|
|
+ $point = $deductData['reConsumePoints'];// 复消积分
|
|
|
+ // 更新蓝星奖金存储过程的实发金额数据
|
|
|
+ CalcBonusBS::updateAll(['ORI_BONUS_BU_YJSF' => $realBonusBs, 'ORI_BONUS_BU_YJKC' => $manageTax, 'RECONSUME_POINTS' => $point],
|
|
|
+ 'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
|
|
|
+ [':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum]);
|
|
|
+ }
|
|
|
+ return $this->calcBonusBsGL($offset + $this->_limit);
|
|
|
+ }
|
|
|
+ unset($allData);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 报单管理奖
|
|
|
* @param int $offset
|
|
|
@@ -3080,6 +3127,7 @@ class BonusCalc extends BaseObject {
|
|
|
// 给用户发送兑换积分,也需要进行调整查看。
|
|
|
// CalcCache::addHasBonusUsers($everyData['USER_ID'], $this->_periodNum);
|
|
|
$allData = CalcCache::getHasBonusUsers($this->_periodNum, $offset, $this->_limit);
|
|
|
+
|
|
|
if($allData){
|
|
|
$insertDataBonus = [];
|
|
|
foreach($allData as $userId){
|
|
|
@@ -3090,6 +3138,8 @@ class BonusCalc extends BaseObject {
|
|
|
|
|
|
unset($userId, $tempBonusData);
|
|
|
}
|
|
|
+// echo json_encode($insertDataBonus);
|
|
|
+// exit();
|
|
|
CalcBonus::batchInsert($insertDataBonus);
|
|
|
|
|
|
unset($insertDataBonus, $allData);
|
|
|
@@ -3224,7 +3274,7 @@ class BonusCalc extends BaseObject {
|
|
|
|
|
|
|
|
|
//没有共享和管理奖
|
|
|
- $bonusReal = $bonus['BONUS_BD'] + $bonus['BONUS_TG'] + $bonus['BONUS_XF'] + $bonus['BONUS_YJ'] + $bonus['BONUS_QY'] + $bonus['BONUS_YC'] + $bonus['BONUS_YC_EXTRA'] + $bonus['BONUS_VIP'] + $standardBonus;
|
|
|
+ $bonusReal = $bonus['BONUS_BD'] + $bonus['BONUS_TG'] + $bonus['BONUS_XF'] + $bonus['BONUS_YJ'] + $bonus['BONUS_QY'] + $bonus['BONUS_YC'] + $bonus['BONUS_YC_EXTRA'] + $bonus['BONUS_VIP'] + $standardBonus + $bonus['BONUS_BU_GL']+ $bonus['BONUS_BU_YJ'];
|
|
|
$realBonusGx = 0;
|
|
|
$realBonusGl = 0;
|
|
|
$realBonusBs = 0; // 蓝星管理奖. BlueStar
|
|
|
@@ -3232,6 +3282,13 @@ class BonusCalc extends BaseObject {
|
|
|
$buleStartOriBonus = 0;
|
|
|
$buleStartManageTax = 0;
|
|
|
$exchangePoints = 0; // 蓝星奖管理奖. 产生的兑换积分
|
|
|
+
|
|
|
+ $realBonusBsMnt = 0; // 蓝星管理奖实发
|
|
|
+ $blueStartOriBonusMnt = 0;
|
|
|
+
|
|
|
+ $realBonusBsAbbr = 0; // 蓝星业绩奖实发
|
|
|
+ $blueStartOriBonusAbbr = 0;
|
|
|
+
|
|
|
if( $this->_isCalcMonth ) {
|
|
|
// 查看是否复消300
|
|
|
// $monthPerfData = CalcCache::nowMonthPerf($userId, $this->_periodNum);
|
|
|
@@ -3270,7 +3327,7 @@ class BonusCalc extends BaseObject {
|
|
|
':USER_ID' => $userId
|
|
|
]
|
|
|
)
|
|
|
- ->select('AMOUNT,ORI_BONUS,MANAGE_TAX,LEVEL_ID,PRODUCT_POINT')
|
|
|
+ ->select('AMOUNT,ORI_BONUS,MANAGE_TAX,LEVEL_ID,PRODUCT_POINT,ORI_BONUS_BU_YJ,ORI_BONUS_BU_YJKC,ORI_BONUS_BU_YJSF,ORI_BONUS_BU_GL,ORI_BONUS_BU_GLKC,ORI_BONUS_BU_GLSF')
|
|
|
->limit(1)
|
|
|
->orderBy('CREATED_AT DESC')
|
|
|
->asArray()
|
|
|
@@ -3279,6 +3336,13 @@ class BonusCalc extends BaseObject {
|
|
|
$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; // 管理费
|
|
|
+
|
|
|
+ $realBonusBsMnt = $userBS['ORI_BONUS_BU_GLSF'] ?? 0;
|
|
|
+ $blueStartOriBonusMnt = $userBS['ORI_BONUS_BU_GL'] ?? 0;
|
|
|
+ $realBonusBsAbbr = $userBS['ORI_BONUS_BU_YJSF'] ?? 0;
|
|
|
+ $blueStartOriBonusAbbr = $userBS['ORI_BONUS_BU_YJ'] ?? 0;
|
|
|
+
|
|
|
+
|
|
|
$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',
|
|
|
@@ -3403,6 +3467,12 @@ class BonusCalc extends BaseObject {
|
|
|
'ORI_BONUS_VIP' => $bonus['ORI_BONUS_VIP'],
|
|
|
'ORI_BONUS_STANDARD' => $standardBonus,
|
|
|
|
|
|
+
|
|
|
+ 'ORI_BONUS_BU_GL' => $bonus['BONUS_BU_GL'],
|
|
|
+ 'ORI_BONUS_BU_GLSF' => $bonus['BONUS_BU_GL'],
|
|
|
+ 'ORI_BONUS_BU_YJ' => $bonus['BONUS_BU_YJ'],
|
|
|
+ 'ORI_BONUS_BU_YJSF' => $bonus['BONUS_BU_YJ'],
|
|
|
+
|
|
|
//以下没有用
|
|
|
'BONUS_FW' => 0,
|
|
|
'BONUS_FX' => $bonus['BONUS_FX'],
|