SignupManagementService.php 3.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace App\Http\Services\Backend\DataManagement;
  3. use App\Http\Services\ConstDef\GeneralConst;
  4. use App\Models\SignupData;
  5. use DB;
  6. use Log;
  7. use PhpOffice\PhpSpreadsheet\IOFactory;
  8. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  9. class SignupManagementService
  10. {
  11. // 相關私有 model 調用器宣告
  12. private $signupDb;
  13. public function __construct()
  14. {
  15. // 建構 model 調用器
  16. $this->signupDb=new SignupData();
  17. }
  18. public function getList(&$cnt = 0, $orderColumn, $orderDir, $start, $length, $searchValue, $keyword, $trackNo, $createDateStart, $createDateFinal)
  19. {
  20. // 調用資料庫(或者其他業務邏輯)
  21. $res = $this->signupDb
  22. ->select('*')
  23. ->where('trackNo','LIKE', $trackNo.'%');
  24. // $res->where(function($query)
  25. // {
  26. // $query->where('createDate', '>', $createDateStart)
  27. // ->where('createDate', '<', $createDateFinal);
  28. // });
  29. // $res->where(function($query)
  30. // {
  31. // $query->where('firstName', $keyword)
  32. // ->orWhere('lastName', $keyword)
  33. // ->orWhere('companyName', $keyword)
  34. // ->orWhere('companyEmail', $keyword)
  35. // ->orWhere('backupEmail', $keyword)
  36. // ->orWhere('phoneNumber', $keyword);
  37. // });
  38. // ->where('trackNo','LIKE', $trackNo.'%')
  39. // ->where('createDate', '>', $createDateStart)
  40. // ->where('createDate', '<', $createDateFinal)
  41. // ->where('firstName', $keyword)
  42. // ->orWhere('lastName', $keyword)
  43. // ->orWhere('companyName', $keyword)
  44. // ->orWhere('companyEmail', $keyword)
  45. // ->orWhere('backupEmail', $keyword)
  46. // ->orWhere('phoneNumber', $keyword);
  47. // 取總筆數
  48. $cnt = $res->count();
  49. // 排序
  50. $res = $res
  51. ->orderByRaw((int)$orderColumn . ' ' . $orderDir);
  52. // 分頁
  53. $res = $res
  54. ->skip($start)->take($length);
  55. // 實際取資料
  56. $result = $res
  57. ->get()
  58. ->toArray();
  59. // 整理返回值並返回
  60. return $result;
  61. }
  62. public function getExportList($keyword, $trackNo, $createDateStart, $createDateFinal)
  63. {
  64. \Log::info('keyword: '.$keyword);
  65. \Log::info('trackNo: '.$trackNo);
  66. \Log::info('createDateStart: '.$createDateStart);
  67. \Log::info('createDateFinal: '.$createDateFinal);
  68. $res = $this->signupDb
  69. ->select('*')
  70. ->where('createDate', '>', $createDateStart)
  71. ->where('createDate', '<', $createDateFinal)
  72. ->where('trackNo','LIKE', $trackNo.'%')
  73. ->where('firstName', $keyword)
  74. ->orWhere('lastName', $keyword)
  75. ->orWhere('companyName', $keyword)
  76. ->orWhere('companyEmail', $keyword)
  77. ->orWhere('backupEmail', $keyword)
  78. ->orWhere('phoneNumber', $keyword);
  79. $res = $this->signupDb
  80. ->get()
  81. ->toArray();
  82. \Log::info(print_r($res,true));
  83. // 整理返回值並返回
  84. return $res;
  85. }
  86. }