| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- namespace addons\WriteOff\console\controllers;
- use addons\WriteOff\common\logic\RewardLogic;
- use common\enums\RedisKeyEnum;
- use common\enums\StatusEnum;
- use common\helpers\LockHelper;
- use common\models\mall\Mall;
- use yii\console\Controller;
- use yii\console\ExitCode;
- class WriteOffCrontabController extends Controller
- {
- public function actionSettle()
- {
- $lock_key = RedisKeyEnum::suffix('write_off_achievement_settle');
- $identification = uniqid();
- try {
- \Yii::$app->db->close();
- if (!LockHelper::lock($lock_key, $identification, 30, 60)) throw new \Exception('业绩进入待结算,当前访问过多');
- // 获取当前系统所有可用的 mall_id
- $mall_list = Mall::getEnableMallList(true);
- if(!empty($mall_list)){
- foreach($mall_list as $mall){
- RewardLogic::achievementPromoteReward($mall['id']);
- }
- }
- LockHelper::uLock($lock_key,$identification);
- return ExitCode::OK;
- } catch (\Exception $e) {
- LockHelper::uLock($lock_key,$identification);
- $errmsg = '业绩结算: errmsg => ' . $e->getMessage() . ', file: ' . $e->getFile() . ', line: ' . $e->getLine();
- echo $errmsg . PHP_EOL;
- \Yii::error($errmsg);
- \Yii::getLogger()->flush(true);
- return false;
- }
- }
- }
|