| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- namespace App;
- use App\Traits\ModelTimeFormat;
- use Illuminate\Database\Eloquent\Model;
- class OrderIssue extends Model
- {
- //
- use ModelTimeFormat;
- protected $fillable = [
- 'order_id', 'create_at', 'rejected_bill_id', 'rejecting_status', 'result_explain',
- 'situation_explain', 'order_issue_type_id', 'second_order_id', 'is_new_rejecting',
- 'final_status', 'logistic_indemnity_money', 'logistic_express_remission', 'baoshi_indemnity_money', 'baoshi_express_remission', 'user_workgroup_id'];
- protected $appends = [
- 'secondLogisticNumber',
- 'createLog',
- 'endLog',
- 'processingTime',
- 'createUser',
- 'endUser',
- ];
- public function order()
- {
- return $this->belongsTo('App\Order', 'order_id', 'id');
- }
- public function rejectedBill()
- {
- return $this->belongsTo('App\RejectedBill', 'rejected_bill_id', 'id');
- }
- public function issueType()
- {
- return $this->belongsTo('App\OrderIssueType', 'order_issue_type_id', 'id');
- }
- public function logs()
- {
- return $this->hasMany('App\OrderIssueProcessLog', 'order_issue_id', 'id');
- }
- public function top()
- {
- return $this->hasOne('App\OrderIssueOnTop', 'order_issue_id', 'id');
- }
- public function userWorkGroup()
- {
- return $this->belongsTo('App\UserWorkgroup', 'user_workgroup_id', 'id');
- }
- public function secondOrder()
- {
- return $this->belongsTo('App\Order', 'second_order_id', 'id');
- }
- public function getSecondLogisticNumberAttribute()
- {
- return $this['secondOrder']['code'] ?? '';
- }
- public function getCreateLogAttribute()
- {
- return $this->logs->where('type', '创建')->first();
- }
- public function getEndLogAttribute()
- {
- return $this->logs->where('type', '结束')->last();
- }
- public function getProcessingTimeAttribute()
- {
- $createLogs = $this->getCreateLogAttribute();
- $endLogs = $this->getEndLogAttribute();
- if (($createLogs ?? false) && ($endLogs ?? false)) {
- $time = date_diff($createLogs->created_at, $endLogs->created_at);
- return $time->format('%a天, %h小时');
- }
- return null;
- }
- public function getCreateUserAttribute()
- {
- $createLog = $this->getCreateLogAttribute();
- return $createLog->user->name ?? '';
- }
- public function getEndUserAttribute()
- {
- $createLog = $this->getEndLogAttribute();
- return $createLog->user->name ?? '';
- }
- public function delete()
- {
- $this->order()->delete();
- $this->logs()->delete();
- $this->top()->delete();
- return parent::delete();
- }
- public function deleteSafe()
- {
- return parent::delete();
- }
- }
|