OracleActAllocationDetailService.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Services;
  3. use App\OracleActAllocationDetails;
  4. use Illuminate\Support\Facades\DB;
  5. /**
  6. * connection : oracle
  7. * table : ACT_ALLOCATION_DETAILS
  8. */
  9. Class OracleActAllocationDetailService
  10. {
  11. public function paginate(array $params){
  12. $page = $params['page'] ?? 1;
  13. $pagiante = $params['pagiante'] ?? 50;
  14. if (!is_numeric($page) || !is_numeric($pagiante))return;
  15. $sql = "SELECT ACT_ALLOCATION_DETAILS.* FROM(SELECT ACT_ALLOCATION_DETAILS.*,ROWNUM rn FROM
  16. (SELECT orderno FROM ACT_ALLOCATION_DETAILS WHERE 1=1 ";
  17. if ($params['checktime_start'] ?? false){
  18. $sql .= " AND checktime >= '".$params['checktime_start']." 00:00:00'";
  19. }
  20. if ($params['checktime_end'] ?? false){
  21. $sql .= " AND checktime <= '".$params['checktime_end']." 23:59:59'";
  22. }
  23. $sql .= "GROUP BY orderno)ACT_ALLOCATION_DETAILS)ACT_ALLOCATION_DETAILS
  24. WHERE ACT_ALLOCATION_DETAILS.rn <= ".$page*$pagiante." AND rn >".($page-1)*$pagiante;
  25. return DB::connection('oracle')->select(DB::raw($sql));
  26. }
  27. public function getOrderno(array $params){
  28. $allocations = $this->paginate($params);
  29. $count = count($allocations);
  30. $str = "(";
  31. foreach ($allocations as $index => $allocation){
  32. if ($index < $count-1){
  33. $str .= "'".$allocation->orderno."',";
  34. }else{
  35. $str .= "'".$allocation->orderno."')";
  36. }
  37. }
  38. return $str;
  39. }
  40. /**
  41. * @param array $params
  42. * @return OracleActAllocationDetails
  43. */
  44. public function first(array $params){
  45. $actAllocationDetail = OracleActAllocationDetails::query();
  46. foreach ($params as $column => $value){
  47. $actAllocationDetail->where($column, $value);
  48. }
  49. /** @var OracleActAllocationDetails $actAllocationDetail */
  50. return $actAllocationDetail->first();
  51. }
  52. }