|
|
@@ -3,6 +3,7 @@
|
|
|
namespace common\helpers\bonus\Calc;
|
|
|
|
|
|
|
|
|
+use common\helpers\Cache;
|
|
|
use common\helpers\Form;
|
|
|
use common\models\CalcRecord;
|
|
|
use common\models\forms\PeriodForm;
|
|
|
@@ -23,6 +24,11 @@ class CalcConsole extends BaseBusiness
|
|
|
*/
|
|
|
public static function listenCalcPeriod()
|
|
|
{
|
|
|
+ // 先检查redis的开关
|
|
|
+ $calcingSwitch = Yii::$app->cache->get('isCalcing') ? 1 : 0;
|
|
|
+ if(!$calcingSwitch){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
$db = self::CALC_DB_NAME;
|
|
|
$allPeriod = \Yii::$app->$db->createCommand("SELECT * FROM AR_PERIOD order by PERIOD_NUM desc")->queryAll();
|
|
|
$period = [];
|
|
|
@@ -110,6 +116,8 @@ class CalcConsole extends BaseBusiness
|
|
|
self::pullPeriodForUpdate($period['PERIOD_NUM']);
|
|
|
//拉取计算系统的进度日志
|
|
|
self::syncLogRecord($period['PERIOD_NUM'], $db, $startExecTime);
|
|
|
+ //设置redis开关
|
|
|
+ Yii::$app->cache->set('isCalcing', 0);
|
|
|
} else {
|
|
|
//结束计算状态
|
|
|
Period::updatePeriodIsProcessing($period['PERIOD_NUM'], Period::NOT_PROCESSING);
|
|
|
@@ -150,6 +158,8 @@ class CalcConsole extends BaseBusiness
|
|
|
|
|
|
if($formModel->load(['periodNum'=>$periodNum], '') && $formModel->autoPrePerf()) {
|
|
|
echo('自动计算已开始,请等待'.PHP_EOL);
|
|
|
+ //设置redis开关
|
|
|
+ Yii::$app->cache->set('isPreparing', 1);
|
|
|
CalcRecord::record($periodNum, '第' . $periodNum . '期,定时计算开始');
|
|
|
} else {
|
|
|
echo('自动计算未开始'.PHP_EOL);
|
|
|
@@ -163,6 +173,11 @@ class CalcConsole extends BaseBusiness
|
|
|
|
|
|
public static function listenAutoPerfPeriod() // 拉取预结算的结果
|
|
|
{
|
|
|
+ // 先检查redis的开关
|
|
|
+ $preparingSwitch = Yii::$app->cache->get('isPreparing') ? 1 : 0;
|
|
|
+ if(!$preparingSwitch){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
$db = self::CALC_DB_NAME;
|
|
|
$allPeriod = \Yii::$app->$db->createCommand("SELECT * FROM AR_PERIOD order by PERIOD_NUM desc")->queryAll();
|
|
|
$period = [];
|
|
|
@@ -198,6 +213,7 @@ class CalcConsole extends BaseBusiness
|
|
|
//设置预计算标识
|
|
|
Period::updatePeriodIsPreparing($period['PERIOD_NUM'], Period::NOT_PREPARING);
|
|
|
CalcRecord::record($period['PERIOD_NUM'], '第' . $period['PERIOD_NUM'] . '期的预计算期业绩数据已获取');
|
|
|
+ Yii::$app->cache->set('isPreparing', 0);
|
|
|
return $res;
|
|
|
} else {
|
|
|
//结束计算状态
|