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],
- ]);
-
- }
-
- }
|