Advertisement
widana

Untitled

Sep 30th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.49 KB | None | 0 0
  1. <?php
  2. namespace Leaf\Util;
  3.  
  4. use Rhumsaa\Uuid\Uuid;
  5. use Rhumsaa\Uuid\Exception\UnsatisfiedDependencyException;
  6. use Leaf\Util\DateUtil;
  7. use Leaf\Util\SchemaUtil;
  8.  
  9. class QueueUtil {
  10.    
  11.     public static function send ($process_name,
  12.                           $process_no,
  13.                           $tenant_id,
  14.                           $parameters,
  15.                           $properties,
  16.                           $line_queue,
  17.                           $user_login_id){
  18.        
  19.         if($process_no == null || $process_no == ''){
  20.             $process_no = Uuid::uuid1()->toString();
  21.         }
  22.        
  23.         $datetime = DateUtil::dateTimeNow();
  24.        
  25.         \DB::beginTransaction();
  26.        
  27.         try {
  28.             // insert ke t_process_message
  29.             $msg = new \ProcessMessage();
  30.             $msg->process_name = $process_name;
  31.             $msg->process_no = $process_no;
  32.             $msg->tenant_id = $tenant_id;
  33.             $msg->process_create_datetime = $datetime;
  34.             $msg->process_queue_datetime = "";
  35.             $msg->process_finish_datetime = "";
  36.             $msg->process_status = "G";
  37.             $msg->ref_id = -99;
  38.             $msg->tag_id = -99;
  39.             $msg->flg_reprocess = "N";
  40.             $msg->prev_process_message_id = -99;
  41.             $msg->line_queue =  $line_queue;
  42.            
  43.             SchemaUtil::auditCreate($msg, $datetime, $user_login_id);
  44.            
  45.             $msg->save();
  46.  
  47.             // insert ke t_process_parameter
  48. //          if(!empty($parameters) && is_array($parameters)){
  49. //              foreach($parameters as $key => $value){
  50.                    
  51. //                  $param = new \ProcessParameter();
  52. //                  $param->process_message_id = $msg->process_message_id;
  53. //                  $param->process_parameter_key = $key;
  54. //                  $param->process_parameter_value = $value;
  55. //                  SchemaUtil::auditCreate($param, $datetime, $user_login_id);
  56. //                  $param->save();
  57. //              }
  58. //          }
  59.             $param = new \ProcessParameter();
  60.             $param->process_message_id = $msg->process_message_id;
  61.             $param->process_parameter_key = "data";
  62.             $param->process_parameter_value = json_encode($parameters);
  63.             SchemaUtil::auditCreate($param, $datetime, $user_login_id);
  64.             $param->save();
  65.            
  66.             \DB::commit();
  67.             $send = true; // flag to send queue
  68.            
  69.         }catch(\Exception $ex){
  70.             \DB::rollback();
  71.             \Log::error($ex->getMessage());
  72.             $send = false; // flag not to send queue
  73.         }
  74.        
  75.         if($send){
  76.                
  77.             // Send to Queue using Stomp
  78.             $stomp = new \Stomp(\Config::get('constants.QUEUE_URL'));
  79.                
  80.             $properties = array_merge($properties,[
  81.                 "action" => $process_name,
  82.                 "processNo" => $process_no,
  83.                 "tenantId" => $tenant_id
  84.             ]);
  85.            
  86.             $stomp->send($line_queue, json_encode($parameters), $properties);
  87.                
  88.             unset($stomp);
  89.         }
  90.     }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement