| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | 
							- <?php
 - 
 - namespace App\Http\Services\Api;
 - 
 - use App\Models\SignupData;
 - use App\Models\TrackData;
 - 
 - use DB;
 - use GuzzleHttp\Client;
 - 
 - class SeminarSignUpService
 - {
 -     protected $signupDb;
 -     protected $trackDataDb;
 -     
 -     public function __construct()
 -     {
 -         $this->signupDb = new SignupData();
 -         $this->trackDataDb = new TrackData();
 -         
 -     }
 -     
 -     public function insertData(
 -         $firstName, $lastName, $companyName, $companyEmail, $backupEmail, $phoneNumber, $country, $trackNo, 
 -         $registeredSession, $lunchOptions, $typeOfIndustry, $typeOfJob, $jobTitle, $trackOfInterest, $areaOfInterest, 
 -         $howToKnowAboutTheEvent, $consentAcceptEmail, $consentPrivacyPolicy, $media, $utm_source, $utm_medium, $utm_content, $utm_term, $utm_campaign)
 -     {
 -         
 -         $this->signupDb
 -             ->insert([
 -                 'firstName'     => $firstName,
 -                 'lastName'      => $lastName,
 -                 'companyName'   => $companyName,
 -                 'companyEmail'  => $companyEmail,
 -                 'backupEmail'   => $backupEmail,
 -                 'phoneNumber'   => $phoneNumber,
 -                 'country'       => $country,
 -                 'trackNo'       => $trackNo,
 -                 'registeredSession' => $registeredSession,
 -                 'lunchOptions'      => $lunchOptions,
 -                 'typeOfIndustry'    => $typeOfIndustry,
 -                 'typeOfJob'     => $typeOfJob,
 -                 'jobTitle'      => $jobTitle,
 -                 'trackOfInterest'   => $trackOfInterest,
 -                 'areaOfInterest'    => $areaOfInterest,
 -                 'howToKnowAboutTheEvent'    => $howToKnowAboutTheEvent,
 -                 'consentAcceptEmail'    => $consentAcceptEmail,
 -                 'consentPrivacyPolicy'    => $consentPrivacyPolicy,
 -                 'media'         => $media,
 -                 'utm_source'    => $utm_source,
 -                 'utm_medium'    => $utm_medium,
 -                 'utm_content'   => $utm_content,
 -                 'utm_term'      => $utm_term,
 -                 'utm_campaign'  => $utm_campaign,
 -                 'createDate'    => date("Y-m-d H:i:s"),
 -             ]);
 -         
 -     }
 -     
 -     public function overLimitOrNot($trackNo)
 -     {
 -         $nowCount = 0;
 - 
 -         $nowCount = $this->signupDb
 -             ->where('trackNo', '=', $trackNo)
 -             ->count();
 -         
 -         $limit = $this->trackDataDb
 -             ->select('trackLimit')
 -             ->where('trackNo', '=', $trackNo)
 -             ->first();
 -         
 -         if ($limit->trackLimit>$nowCount) {
 -             return true;
 -         } else {
 -             return false;
 -         }
 -     }
 -     
 -     public function duplicatedOrNot($trackNo, $companyEmail, $phoneNumber)
 -     {
 -         $cnt = 0;
 - 
 -         $cnt = $this->signupDb
 -             ->where('trackNo', '=', $trackNo)
 -             ->where('companyEmail', '=', $companyEmail)
 -             // ->where('phoneNumber', '=', $phoneNumber)
 -             ->count();
 -         
 -         \Log::info($cnt);
 - 
 -         if ($cnt==0) {
 -             return true;
 -         } else {
 -             return false;
 -         }
 -     }
 -     
 -     public function getData()
 -     {
 -         
 -         $res = $this->trackDataDb
 -             ->select([
 -                 'trackData.*',
 -                 \DB::raw('trackLimit-count(signupData.id) as remain')
 -                 
 -             ])
 -             ->leftJoin('signupData', 'trackData.trackNo', '=', 'signupData.trackNo')
 -             ->groupBy('trackData.trackNo')
 -             ->get();
 - 
 -         // 整理返回值並返回
 -         return $res;
 - 
 -     }
 - 
 -     public function getReMailData()
 -     {
 -         // \DB::enableQueryLog(); 
 -         
 -         $res = $this->signupDb
 -             ->select(['*'])
 -             ->where('id', '>', '1370')
 -             ->where('id', '<', '1384')
 - 
 -             ->get()
 -             ->toArray();
 -         
 -         // \Log::debug(print_r(DB::getQueryLog(), true));
 -         
 -         // 整理返回值並返回
 -         return $res;
 - 
 -     }
 - 
 -     public function getUTMData()
 -     {
 -         // \DB::enableQueryLog(); 
 -         
 -         $res = $this->signupDb
 -             ->select(['id', 'media'])
 -             ->where('id', '<', '5')
 - 
 -             ->get()
 -             ->toArray();
 -         
 -         // \Log::debug(print_r(DB::getQueryLog(), true));
 -         
 -         // 整理返回值並返回
 -         return $res;
 - 
 -     }
 - 
 -     public function updateUTMData($id, $data) 
 -     {
 -         \Log::info(print_r($data, true));
 -         $res = $this->signupDb
 -             ->where('id', $id)
 -             ->update([
 -                 'utm_source' => $data[0],
 -                 'utm_medium' => $data[1],
 -                 'utm_content' => $data[2],
 -                 'utm_term' => $data[3],
 -                 'utm_campaign' => $data[4],
 -             ]);
 -         
 -     }
 - 
 - }
 
 
  |