예제 #1
0
 public function incTotalInventory($fid, $event)
 {
     $sumID = (string) $fid;
     $check = $this->where(array('sum_id' => $sumID))->first();
     if (empty($check)) {
         $this->sum_id = $sumID;
         $this->flight_id = $fid;
         $this->inventory = (int) TrackingSummaryBaseModel::where(array('flight_id' => $sumID))->sum($event) + 1;
         $this->save();
     } else {
         $check->increment('inventory');
     }
 }
예제 #2
0
 public function createMonthlyPaymentRequest()
 {
     $startDate = Carbon::now()->firstOfMonth()->subMonth();
     $endDate = Carbon::now()->firstOfMonth()->subMonth()->lastOfMonth();
     $date = $startDate->format('Y-m');
     $check = PaymentRequestBaseModel::where(array('publisher_id' => $this->id, 'date' => $date))->first();
     $websiteLists = $this->publisherSite->lists('id');
     if (empty($check)) {
         $tracking = new TrackingSummaryBaseModel();
         $data = $tracking->sumEarnPerCampaign($websiteLists, $startDate, $endDate);
         $campaigns = $data['campaign'];
         $total = $data['total'];
         $pr = new PaymentRequestBaseModel();
         $pr->publisher_id = $this->id;
         $pr->date = $date;
         $pr->amount = $total;
         $pr->save();
         if (!empty($campaigns)) {
             foreach ($campaigns as $campaignID => $campaign) {
                 $prd = new PaymentRequestDetailBaseModel();
                 $prd->publisher_id = $this->id;
                 $prd->campaign_id = $campaignID;
                 $prd->amount = $campaign['cost'];
                 $prd->impression = $campaign['impression'];
                 $prd->click = $campaign['click'];
                 if ($campaign['click'] != 0 && $campaign['impression'] != 0) {
                     $prd->ctr = $campaign['click'] / $campaign['impression'];
                 } else {
                     $prd->ctr = 0;
                 }
                 $prd->date = $date;
                 $prd->payment_request_id = $pr->id;
                 $prd->save();
             }
         }
     }
 }
 static function getDataPerWebsite($start, $end, $site, $campaign, $ad, $flight)
 {
     $data = null;
     if (!empty($campaign) && !empty($ad) && !empty($flight) && !empty($site)) {
         $data = TrackingSummaryBaseModel::select('*', \DB::raw('SUM(ads_request) as total_ads_request'), \DB::raw('SUM(failed_request) as total_failed_request'), \DB::raw('SUM(impression) as total_impression'), \DB::raw('SUM(unique_impression) as total_unique_impression'), \DB::raw('SUM(click) as total_click'), \DB::raw('SUM(unique_click) as total_unique_click'), \DB::raw('SUM(firstquartile) as total_firstquartile'), \DB::raw('SUM(midpoint) as total_midpoint'), \DB::raw('SUM(thirdquartile) as total_thirdquartile'), \DB::raw('SUM(complete) as total_complete'), \DB::raw('SUM(pause) as total_pause'), \DB::raw('SUM(mute) as total_mute'), \DB::raw('SUM(fullscreen) as total_fullscreen'), \DB::raw('SUM(unmute) as total_unmute'))->where('flight_id', '=', $flight)->where('campaign_id', '=', $campaign)->where('ad_id', '=', $ad)->where('website_id', '=', $site);
         if (!empty($start) && !empty($end)) {
             $data = $data->where('date', '>=', $start)->where('date', '<=', $end);
         }
         $data = $data->groupBy('date');
         $data = $data->orderby("date")->with("campaign", 'flight', 'ad_format')->get();
         if ($data) {
             foreach ($data as $k => $v) {
                 if ($v->ovr) {
                     $data[$k] = $v;
                     $data[$k]->total_ads_request_over = $v->total_ads_request;
                     $data[$k]->total_failed_request_over = $v->total_failed_request;
                     $data[$k]->total_impression_over = $v->total_impression;
                     $data[$k]->total_unique_impression_over = $v->total_unique_impression;
                     $data[$k]->total_click_over = $v->total_click;
                     $data[$k]->total_unique_click_over = $v->total_unique_click;
                 } else {
                     $data[$k] = $v;
                     $data[$k]->total_ads_request_over = 0;
                     $data[$k]->total_failed_request_over = 0;
                     $data[$k]->total_impression_over = 0;
                     $data[$k]->total_unique_impression_over = 0;
                     $data[$k]->total_click_over = 0;
                     $data[$k]->total_unique_click_over = 0;
                 }
             }
         }
     }
     return $data;
 }