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;
- }
- }
|