| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | <?php
namespace App\Http\Services\Backend\DataManagement;
use App\Http\Services\ConstDef\GeneralConst;
use App\Models\SignupData;
use DB;
use Log;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
class SignupManagementService
{
    
    // 相關私有 model 調用器宣告
    private $signupDb;
    public function __construct()
    {
        // 建構 model 調用器
        $this->signupDb=new SignupData();
    }
    public function getList(&$cnt = 0, $orderColumn, $orderDir, $start, $length, $searchValue, $keyword, $trackNo, $createDateStart, $createDateFinal)
    {
        // 調用資料庫(或者其他業務邏輯)
        $res = $this->signupDb
            ->select('*')
                
                ->where('trackNo','LIKE', $trackNo.'%');
                // $res->where(function($query)
                //     {
                //         $query->where('createDate', '>', $createDateStart)
                //             ->where('createDate', '<', $createDateFinal);
                //     });
                // $res->where(function($query)
                //     {
                //         $query->where('firstName', $keyword)
                //         ->orWhere('lastName', $keyword)
                //         ->orWhere('companyName', $keyword)
                //         ->orWhere('companyEmail', $keyword)
                //         ->orWhere('backupEmail', $keyword)
                //         ->orWhere('phoneNumber', $keyword);
                //     });
            
            
            // ->where('trackNo','LIKE', $trackNo.'%')
            // ->where('createDate', '>', $createDateStart)
            // ->where('createDate', '<', $createDateFinal)
                                
            // ->where('firstName', $keyword)
            // ->orWhere('lastName', $keyword)
            // ->orWhere('companyName', $keyword)
            // ->orWhere('companyEmail', $keyword)
            // ->orWhere('backupEmail', $keyword)
            // ->orWhere('phoneNumber', $keyword);
    
        // 取總筆數
        $cnt = $res->count();
        // 排序
        $res = $res
            ->orderByRaw((int)$orderColumn . ' ' . $orderDir);
        // 分頁
        $res = $res
            ->skip($start)->take($length);
        // 實際取資料
        $result = $res
            ->get()
            ->toArray();
        
        // 整理返回值並返回
        return $result;
    }
    public function getExportList($keyword, $trackNo, $createDateStart, $createDateFinal)
    {
        \Log::info('keyword: '.$keyword);
        \Log::info('trackNo: '.$trackNo);
        \Log::info('createDateStart: '.$createDateStart);
        \Log::info('createDateFinal: '.$createDateFinal);
        $res = $this->signupDb
            ->select('*')
            
            ->where('createDate', '>', $createDateStart)
            ->where('createDate', '<', $createDateFinal)
        
            ->where('trackNo','LIKE', $trackNo.'%')
            ->where('firstName', $keyword)
            ->orWhere('lastName', $keyword)
            ->orWhere('companyName', $keyword)
            ->orWhere('companyEmail', $keyword)
            ->orWhere('backupEmail', $keyword)
            ->orWhere('phoneNumber', $keyword);
        
        $res = $this->signupDb
            ->get()
            ->toArray();
        \Log::info(print_r($res,true));
        // 整理返回值並返回
        return $res;
    }
}
 |