123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <?php
- namespace App\Console\Commands\SmartPush;
- use App\Modules\MediaPush\Models\MediaPushDayStats;
- use App\Modules\MediaPush\Models\OrderParam;
- use App\Modules\PersonalOp\Models\MediaPushDetailRecord;
- use DB;
- use Illuminate\Console\Command;
- class UpdateMediaPushRechargeInfo extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'update_media_push_recharge_info';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '更新个性化推送带来的充值';
- /**
- * Create a new command instance.
- *
- * @return void
- */
- public function __construct()
- {
- parent::__construct();
- }
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $this->updateOneDayRechargeInfo();
- $this->updateThreeDayRechargeInfo();
- }
- public function updateOneDayRechargeInfo()
- {
- $start_time = $date = date('Y-m-d H:i:s', strtotime('-1 day'));
- $params = ['is_one_day' => 1, 'start_time' => $start_time];
- $info = MediaPushDetailRecord::getUnUpdatedInfos($params);
- $officialChargeAmountArray = [];
- foreach ($info as $item) {
- $push_time = $item->push_time;
- $promotion_id = $item->promotion_id;
- $end_time = date('Y-m-d H:i:s', strtotime($item->push_time) + 86400);
- $params = ['start_time' => $push_time, 'end_time' => $end_time, 'promotion_id' => $promotion_id];;
- $recharge_in_one_day = OrderParam::getChargeAmount($params);
- $item->recharge_in_one_day = $recharge_in_one_day;
- $item->save();
- //更新dayStats表
- $appid = $item->appid;
- $date = date('Y-m-d', strtotime($item->push_time));
- if (isset($officialChargeAmountArray[$date][$appid])) {
- $officialChargeAmountArray[$date][$appid] = $officialChargeAmountArray[$date][$appid] + $recharge_in_one_day;
- } else {
- $officialChargeAmountArray[$date][$appid] = $recharge_in_one_day;
- }
- }
- foreach ($officialChargeAmountArray as $k => $v) {
- foreach ($v as $index => $value) {
- $date = $k;
- $appid = $index;
- $recharge_in_one_day = $value;
- $mediaPushDayInfo = MediaPushDayStats::getByAppidAndDate($appid, $date);
- if ($mediaPushDayInfo) {
- if (empty($mediaPushDayInfo->recharge_in_one_day)) {
- $mediaPushDayInfo->recharge_in_one_day = $recharge_in_one_day;
- } else {
- $mediaPushDayInfo->recharge_in_one_day += $recharge_in_one_day;
- }
- $mediaPushDayInfo->save();
- }
- }
- }
- }
- public function updateThreeDayRechargeInfo()
- {
- $start_time = $date = date('Y-m-d H:i:s', strtotime('-3 day'));
- $params = ['is_three_day' => 1, 'start_time' => $start_time];
- $info = MediaPushDetailRecord::getUnUpdatedInfos($params);
- $officialChargeAmountArray = [];
- foreach ($info as $item) {
- $push_time = $item->push_time;
- $promotion_id = $item->promotion_id;
- $end_time = date('Y-m-d H:i:s', strtotime($item->push_time) + 3 * 86400);
- $params = ['start_time' => $push_time, 'end_time' => $end_time, 'promotion_id' => $promotion_id];;
- $recharge_in_three_days = OrderParam::getChargeAmount($params);
- $item->recharge_in_three_days = $recharge_in_three_days;
- $item->save();
- //更新dayStats表
- $appid = $item->appid;
- $date = date('Y-m-d', strtotime($item->push_time));
- if (isset($officialChargeAmountArray[$date][$appid])) {
- $officialChargeAmountArray[$date][$appid] = $officialChargeAmountArray[$date][$appid] + $recharge_in_three_days;
- } else {
- $officialChargeAmountArray[$date][$appid] = $recharge_in_three_days;
- }
- }
- foreach ($officialChargeAmountArray as $k => $v) {
- foreach ($v as $index => $value) {
- $date = $k;
- $appid = $index;
- $recharge_in_three_days = $value;
- $mediaPushDayInfo = MediaPushDayStats::getByAppidAndDate($appid, $date);
- if ($mediaPushDayInfo) {
- if (empty($mediaPushDayInfo->recharge_in_three_days)) {
- $mediaPushDayInfo->recharge_in_three_days = $recharge_in_three_days;
- } else {
- $mediaPushDayInfo->recharge_in_three_days = $mediaPushDayInfo->recharge_in_three_days + $recharge_in_three_days;
- }
- $mediaPushDayInfo->save();
- }
- }
- }
- }
- }
|