| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | 
							- <?php
 
- include APPPATH.'/models/Model_process.php';
 
- trait HasProcessTrait
 
- {
 
-     /**
 
-      * @var Process
 
-      */
 
-     protected $currentProcess;
 
-     /**
 
-      * @param Flow $flow
 
-      * @return array
 
-      */
 
-     private function processAttribute($flow,$order)
 
-     {
 
-         return [
 
-             'flow_id' => $flow['id'],
 
-             'order_id' =>$order['id'] ,
 
-             'state'=>Model_Process::STATUS_PROCESSING,
 
-             'created_at'=>time(),
 
-             'updated_at'=>time(),
 
-         ];
 
-     }
 
-     /**
 
-      * @param Flow $flow
 
-      * @return Process
 
-      * @throws \Exception
 
-      */
 
-     protected function createProcess($flow,$order)
 
-     {
 
-         $attr=$this->processAttribute($flow,$order);
 
-         $process = new Model_Process();
 
-         $processId=$process->insert($attr);
 
-         if($processId){
 
-             $process->read($processId);
 
-             $process->initStatus($flow);
 
-             return true;
 
-         }
 
-         return false;
 
-         return $process;
 
-     }
 
-     /**
 
-      * @return HasMany
 
-      */
 
-     public function process($orderid)
 
-     {
 
-         $process = new Model_Process();
 
-        return $process->find('order_id='.$orderid);
 
-         return $this->hasMany(Process::class, 'model_id')->where('model_type', $this->getMorphClass());
 
-     }
 
-     /**
 
-      * 当前的流程
 
-      * @return Process
 
-      */
 
-     public function currentProcess()
 
-     {
 
-         if (!isset($this->currentProcess)) {
 
-             if ($this->process->isEmpty()) {
 
-                 return null;
 
-             }
 
-             $this->currentProcess = $this->process->where('state', 'processing')->first();
 
-         }
 
-         return $this->currentProcess;
 
-     }
 
- }
 
 
  |