| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 | <?phpnamespace 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();                }            }        }    }}
 |