SignupManagementService.php 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. if ($keyword) {
  24. $res->where(function($q) use ($keyword) {
  25. $q->where('firstName', $keyword)
  26. ->orWhere('lastName', $keyword)
  27. ->orWhere('companyName', $keyword)
  28. ->orWhere('companyEmail', $keyword)
  29. ->orWhere('backupEmail', $keyword)
  30. ->orWhere('phoneNumber', $keyword);
  31. });
  32. // $res = $res->where('firstName', $keyword)
  33. // ->orWhere('lastName', $keyword)
  34. // ->orWhere('companyName', $keyword)
  35. // ->orWhere('companyEmail', $keyword)
  36. // ->orWhere('backupEmail', $keyword)
  37. // ->orWhere('phoneNumber', $keyword);
  38. // ->orWhere('country', $keyword)
  39. // ->orWhere('trackNo', $keyword)
  40. // ->orWhere('typeOfIndustry', $keyword)
  41. // ->orWhere('typeOfJob', $keyword)
  42. // ->orWhere('jobTitle', $keyword);
  43. }
  44. if ($trackNo) {
  45. \Log::info($trackNo);
  46. $res = $res->where('trackNo','LIKE', $trackNo.'%');
  47. }
  48. if ($createDateStart && $createDateFinal) {
  49. $res = $res->where('createDate', '>', $createDateStart)
  50. ->where('createDate', '<', $createDateFinal);
  51. }
  52. // 取總筆數
  53. $cnt = $res->count();
  54. // 排序
  55. $res = $res
  56. ->orderByRaw((int)$orderColumn . ' ' . $orderDir);
  57. // 分頁
  58. $res = $res
  59. ->skip($start)->take($length);
  60. // 實際取資料
  61. $result = $res
  62. ->get()
  63. ->toArray();
  64. // 整理返回值並返回
  65. return $result;
  66. }
  67. public function getExportList($keyword, $trackNo, $createDateStart, $createDateFinal)
  68. {
  69. \Log::info('keyword: '.$keyword);
  70. \Log::info('trackNo: '.$trackNo);
  71. \Log::info('createDateStart: '.$createDateStart);
  72. \Log::info('createDateFinal: '.$createDateFinal);
  73. $res = $this->signupDb
  74. ->select('*');
  75. if ($trackNo!="") {
  76. \Log::info('trackNo123');
  77. $res = $res->where('trackNo','LIKE', $trackNo.'%');
  78. }
  79. if ($keyword!=""){
  80. $res = $res->where('firstName', $keyword)
  81. ->orWhere('lastName', $keyword)
  82. ->orWhere('companyName', $keyword)
  83. ->orWhere('companyEmail', $keyword)
  84. ->orWhere('backupEmail', $keyword)
  85. ->orWhere('phoneNumber', $keyword);
  86. // ->orWhere('country', $keyword)
  87. // ->orWhere('trackNo', $keyword)
  88. // ->orWhere('typeOfIndustry', $keyword)
  89. // ->orWhere('typeOfJob', $keyword)
  90. // ->orWhere('jobTitle', $keyword);
  91. }
  92. // if ($createDateStart!="" && $createDateFinal!="") {
  93. // \Log::info('date123');
  94. $res = $res->where('createDate', '>', $createDateStart)
  95. ->where('createDate', '<', $createDateFinal);
  96. // }
  97. $res = $this->signupDb
  98. ->get()
  99. ->toArray();
  100. \Log::info(print_r($res,true));
  101. // 整理返回值並返回
  102. return $res;
  103. }
  104. }