|
|
@@ -25,6 +25,7 @@ use common\models\CalcBonusFL;
|
|
|
use common\models\Countries;
|
|
|
use common\models\Currency;
|
|
|
use common\models\DealType;
|
|
|
+use common\models\DeclarationLevel;
|
|
|
use common\models\EliteLevel;
|
|
|
use common\models\FlowBonus;
|
|
|
use common\models\FlowCF;
|
|
|
@@ -318,12 +319,38 @@ class BonusController extends BaseController {
|
|
|
//是否近期期数
|
|
|
$showFlowPeriodNum = Cache::getSystemConfig()['showFlowPeriodNum']['VALUE'];
|
|
|
$periodArr = Period::getNearlySendPeriodNum($showFlowPeriodNum);
|
|
|
- if(!in_array($periodNum,$periodArr)) return static::notice(Yii::t('app', 'cannotViewThisPeriod'), 400);
|
|
|
- //增加明细开关控制(0 只显示总奖金 1 全部显示)
|
|
|
- $flowBonusSwitch = Cache::getSystemConfig()['flowBonusSwitch']['VALUE'];
|
|
|
- $data = $this->_periodBonus($periodNum,$flowBonusSwitch);
|
|
|
- if(!$data) return static::notice(Yii::t('app', 'bonusRecordDoesNotExists'), 400);
|
|
|
- return static::notice($data);
|
|
|
+ if(!in_array($periodNum,$periodArr)) {
|
|
|
+ return static::notice(Yii::t('app', 'cannotViewThisPeriod'), 400);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询奖金
|
|
|
+ $data = User::find()
|
|
|
+ ->from(User::tableName().' AS U')
|
|
|
+ ->join('LEFT JOIN', CalcBonus::tableName() . ' AS B','B.USER_ID = U.ID')
|
|
|
+ ->select('U.ID AS USER_ID, U.USER_NAME, U.LAST_DEC_LV, B.LAST_EMP_LV, B.LAST_ELITE_LV, B.IS_ACTIVE, B.BONUS_E, B.BONUS_PE, B.BONUS_SE, B.BONUS_LB, B.BONUS_ST, B.BONUS_WB, B.BONUS_CAR, B.BONUS_TOTAL, B.BONUS_PB')
|
|
|
+ ->where('USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', [':USER_ID' => \Yii::$app->user->id,' :PERIOD_NUM'=>$periodNum])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
+
|
|
|
+ $result = [
|
|
|
+ ['name' => 'userName', 'value' => $data['USER_NAME']],
|
|
|
+ ['name' => 'period', 'value' => $periodNum],
|
|
|
+ ['name' => 'decLevel', 'value' => Cache::getDecLevelConfig()[($data['LAST_DEC_LV'] ?: DeclarationLevel::getDefaultLevelId())]['LEVEL_NAME']],
|
|
|
+ ['name' => 'empLevel', 'value' => Cache::getEmpLevelConfig()[($data['LAST_EMP_LV'] ?: EmployLevel::getDefaultLevelId())]['LEVEL_NAME']],
|
|
|
+ ['name' => 'eliteLevel', 'value' => Cache::getEliteLevelConfig()[($data['LAST_ELITE_LV'] ?: EliteLevel::getDefaultLevelId())]['LEVEL_NAME']],
|
|
|
+ ['name' => 'isActive', 'value' => $data['IS_ACTIVE'] ?? 0],
|
|
|
+ ['name' => 'eliteBonus', 'value' => Tool::formatPrice($data['BONUS_E'])],
|
|
|
+ ['name' => 'proEliteBonus', 'value' => Tool::formatPrice($data['BONUS_PE'])],
|
|
|
+ ['name' => 'superEliteBonus', 'value' => Tool::formatPrice($data['BONUS_SE'])],
|
|
|
+ ['name' => 'leaderShipBonus', 'value' => Tool::formatPrice($data['BONUS_LB'])],
|
|
|
+ ['name' => 'stockistBonus', 'value' => Tool::formatPrice($data['BONUS_ST'])],
|
|
|
+ ['name' => 'welcomeBonus', 'value' => Tool::formatPrice($data['BONUS_WB'])],
|
|
|
+ ['name' => 'carBonus', 'value' => Tool::formatPrice($data['BONUS_CAR'])],
|
|
|
+ ['name' => 'totalBonus', 'value' => Tool::formatPrice($data['BONUS_TOTAL'])],
|
|
|
+ ['name' => 'userPerformanceBonus', 'value' => Tool::formatPrice($data['BONUS_PB'])],
|
|
|
+ ];
|
|
|
+
|
|
|
+ return static::notice($result);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -333,63 +360,33 @@ class BonusController extends BaseController {
|
|
|
* @return array
|
|
|
* @throws \yii\db\Exception
|
|
|
*/
|
|
|
- private function _periodBonus($periodNum,$detailSwitch=1) {
|
|
|
- $period = Period::instance();
|
|
|
- $yearMonth = $period->getYearMonth($periodNum);
|
|
|
- if(!$calcBonus = CalcBonus::find()->yearMonth($yearMonth)->where('USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',[':USER_ID'=>\Yii::$app->user->id,':PERIOD_NUM'=>$periodNum])->asArray()->one()){
|
|
|
- return [
|
|
|
-
|
|
|
- ];
|
|
|
- }
|
|
|
- $sysConfig = Cache::getSystemConfig();
|
|
|
+ private function _periodBonus($periodNum) {
|
|
|
+ $data = User::find()
|
|
|
+ ->from(User::tableName().' AS U')
|
|
|
+ ->join('LEFT JOIN', CalcBonus::tableName() . ' AS B','B.USER_ID = U.ID')
|
|
|
+ ->select('U.ID AS USER_ID, U.USER_NAME, B.LAST_DEC_LV, B.LAST_EMP_LV, B.LAST_ELITE_LV, B.IS_ACTIVE, B.BONUS_E, B.BONUS_PE, B.BONUS_SE, B.BONUS_LB, B.BONUS_ST, B.BONUS_WB, B.BONUS_CAR, B.BONUS_TOTAL, B.BONUS_PB')
|
|
|
+ ->where('USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', [':USER_ID' => \Yii::$app->user->id,' :PERIOD_NUM'=>$periodNum])
|
|
|
+ ->asArray()
|
|
|
+ ->one();
|
|
|
|
|
|
- if($detailSwitch) {
|
|
|
- $data['USER_NAME'] = ['name' => '编号', 'value' => Info::getUserNameByUserId(\Yii::$app->user->id)];
|
|
|
- $data['PERIOD_NUM'] = ['name' => '期数', 'value' => $periodNum];
|
|
|
- $data['LAST_DEC_LV'] = ['name' => '级别', 'value' => Cache::getDecLevelConfig()[$calcBonus['LAST_DEC_LV']]['LEVEL_NAME']];
|
|
|
- $data['LAST_EMP_LV'] = ['name' => '管理星级', 'value' => Cache::getEmpLevelConfig()[$calcBonus['LAST_EMP_LV']]['LEVEL_NAME']];
|
|
|
- if ($sysConfig['openTG']['VALUE']) {
|
|
|
- // 销售奖金 就是 原来的推广奖
|
|
|
- $data['ORI_BONUS_TG'] = ['name' => '销售奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_TG'])];
|
|
|
- }
|
|
|
- $data['ORI_BONUS_TG_SWITCH'] = intval($sysConfig['openTG']['VALUE']);
|
|
|
+ return [
|
|
|
+ ['name' => 'userName', 'value' => $data['USER_NAME']],
|
|
|
+ ['name' => 'period', 'value' => $periodNum],
|
|
|
+ ['name' => 'decLevel', 'value' => Cache::getDecLevelConfig()[$data['LAST_DEC_LV']]['LEVEL_NAME']],
|
|
|
+ ['name' => 'empLevel', 'value' => Cache::getEmpLevelConfig()[$data['LAST_EMP_LV']]['LEVEL_NAME']],
|
|
|
+ ['name' => 'eliteLevel', 'value' => Cache::getEliteLevelConfig()[($data['LAST_ELITE_LV'] ?: EliteLevel::getDefaultLevelId())]['LEVEL_NAME']],
|
|
|
+ ['name' => 'isActive', 'value' => $data['IS_ACTIVE'] ?? 0],
|
|
|
+ ['name' => 'eliteBonus', 'value' => Tool::formatPrice($data['BONUS_E'])],
|
|
|
+ ['name' => 'proEliteBonus', 'value' => Tool::formatPrice($data['BONUS_PE'])],
|
|
|
+ ['name' => 'superEliteBonus', 'value' => Tool::formatPrice($data['BONUS_SE'])],
|
|
|
+ ['name' => 'leaderShipBonus', 'value' => Tool::formatPrice($data['BONUS_LB'])],
|
|
|
+ ['name' => 'stockistBonus', 'value' => Tool::formatPrice($data['BONUS_ST'])],
|
|
|
+ ['name' => 'welcomeBonus', 'value' => Tool::formatPrice($data['BONUS_WB'])],
|
|
|
+ ['name' => 'carBonus', 'value' => Tool::formatPrice($data['BONUS_CAR'])],
|
|
|
+ ['name' => 'totalBonus', 'value' => Tool::formatPrice($data['BONUS_TOTAL'])],
|
|
|
+ ['name' => 'userPerformanceBonus', 'value' => Tool::formatPrice($data['BONUS_PB'])],
|
|
|
|
|
|
- if ($sysConfig['openQY']['VALUE']) {
|
|
|
- // 业绩奖金 就是原来的团队奖 并将业绩奖金改成绩效奖金
|
|
|
- // $data[] = ['name' => '团队奖', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_QY'])];
|
|
|
- $data['ORI_BONUS_QY'] = ['name' => '业绩奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_QY'])];
|
|
|
- }
|
|
|
- $data['ORI_BONUS_QY_SWITCH'] = intval($sysConfig['openQY']['VALUE']);
|
|
|
-
|
|
|
- //服务奖
|
|
|
- if ($sysConfig['openFW']['VALUE']) {
|
|
|
- $data['BONUS_BD'] = ['name' => '服务奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_BD'])];
|
|
|
- }
|
|
|
- $data['BONUS_BD_SWITCH'] = intval($sysConfig['openFW']['VALUE']);
|
|
|
-
|
|
|
- // 管理奖金 就是新的蓝星奖
|
|
|
- $data['ORI_BONUS_BS'] = ['name' => '管理奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_BS'])];
|
|
|
- $data['ORI_BONUS_BS_MNT'] = ['name' => '管理奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_BS_MNT'])];
|
|
|
- $data['ORI_BONUS_BS_ABBR'] = ['name' => '绩效奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_BS_ABBR'])];
|
|
|
-
|
|
|
- $data['ORI_BONUS_QUARTER'] = ['name' => '季度奖金', 'value' => Tool::formatPrice($calcBonus['ORI_BONUS_QUARTER'] ?? 0.00)];
|
|
|
- $data['BONUS_TOTAL'] = ['name' => '合计', 'value' => Tool::formatPrice($calcBonus['BONUS_TOTAL'])];
|
|
|
- $data['BONUS_REAL'] = ['name' => '实发奖金', 'value' => Tool::formatPrice($calcBonus['BONUS_REAL'])];
|
|
|
- $data['PV_1L'] = ['name' => '一市场新增业绩', 'value' => Tool::formatFrontPerf($calcBonus['PV_1L'])];
|
|
|
- $data['PV_2L'] = ['name' => '二市场新增业绩', 'value' => Tool::formatFrontPerf($calcBonus['PV_2L'])];
|
|
|
- $data['SURPLUS_1L'] = ['name' => '一市场结余业绩', 'value' => Tool::formatFrontPerf($calcBonus['SURPLUS_1L'])];
|
|
|
- $data['SURPLUS_2L'] = ['name' => '二市场结余业绩', 'value' => Tool::formatFrontPerf($calcBonus['SURPLUS_2L'])];
|
|
|
-
|
|
|
- // 是否活跃
|
|
|
- $perfPeriod = PerfPeriod::find()->where('USER_ID=:USER_ID AND PERIOD_NUM = :PERIOD_NUM', [':USER_ID' => \Yii::$app->user->id, ':PERIOD_NUM' => $periodNum])->asArray()->one();
|
|
|
- $data['IS_ACTIVE'] = ['name' => '是否活跃', 'value' => ($perfPeriod['IS_ACTIVE'] ? intval($perfPeriod['IS_ACTIVE']) : 0)];
|
|
|
- // 管理奖个人小组业绩
|
|
|
- $calcBonusBS = CalcBonusBSDefault::findOneAsArray('USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', [':USER_ID' => \Yii::$app->user->id, ':PERIOD_NUM' => $periodNum], 'GPV10');
|
|
|
- $data['DIRECTOR_BONUS_PGS'] = ['name' => '个人小组业绩', 'value' => ($calcBonusBS['GPV10'] ?? 0)];
|
|
|
- }else{
|
|
|
- $data[] = ['name' => '总奖金', 'value' => Tool::formatPrice($calcBonus['BONUS_TOTAL'])];
|
|
|
- }
|
|
|
- return $data;
|
|
|
+ ];
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -426,10 +423,12 @@ class BonusController extends BaseController {
|
|
|
['name' => 'totalBonus', 'value' => Tool::formatPrice($data['BONUS_TOTAL'])],
|
|
|
['name' => 'userPerformanceBonus', 'value' => Tool::formatPrice($data['BONUS_PB'])],
|
|
|
];
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- return static::notice(['tableData' => $result]);
|
|
|
+ // 奖金明细开关控制(0 只显示总奖金 1 全部显示)
|
|
|
+ $flowBonusSwitch = Cache::getSystemConfig()['flowBonusSwitch']['VALUE'] ?? 0;
|
|
|
+
|
|
|
+ return static::notice(['tableData' => $result, 'flowBonusSwitch' => $flowBonusSwitch]);
|
|
|
}
|
|
|
|
|
|
/**
|