OrderIssue.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App;
  3. use App\Traits\ModelTimeFormat;
  4. use Illuminate\Database\Eloquent\Model;
  5. class OrderIssue extends Model
  6. {
  7. //
  8. use ModelTimeFormat;
  9. protected $fillable = [
  10. 'order_id','create_at','rejected_bill_id','rejecting_status','result_explain',
  11. 'situation_explain', 'order_issue_type_id','second_order_id','is_new_rejecting',
  12. 'final_status','logistic_indemnity_money','logistic_express_remission','baoshi_indemnity_money','baoshi_express_remission','user_workgroup_id'];
  13. protected $appends = [
  14. 'secondLogisticNumber',
  15. 'createLog',
  16. 'endLog',
  17. 'processingTime'
  18. ];
  19. public function order(){
  20. return $this->belongsTo('App\Order','order_id','id');
  21. }
  22. public function rejectedBill(){
  23. return $this->belongsTo('App\RejectedBill','rejected_bill_id','id');
  24. }
  25. public function issueType(){
  26. return $this->belongsTo('App\OrderIssueType','order_issue_type_id','id');
  27. }
  28. public function logs(){
  29. return $this->hasMany('App\OrderIssueProcessLog','order_issue_id','id');
  30. }
  31. public function top(){
  32. return $this->hasOne('App\OrderIssueOnTop','order_issue_id','id');
  33. }
  34. public function userWorkGroup(){
  35. return $this->belongsTo('App\UserWorkgroup','user_workgroup_id','id');
  36. }
  37. public function secondOrder(){
  38. return $this->belongsTo('App\Order','second_order_id','id');
  39. }
  40. public function getSecondLogisticNumberAttribute(){
  41. return $this['secondOrder']['code'] ??'';
  42. }
  43. public function getCreateLogAttribute(){
  44. return $this->logs->where('type','创建')->first();
  45. }
  46. public function getEndLogAttribute(){
  47. return $this->logs->where('type','完结')->first();
  48. }
  49. public function getProcessingTimeAttribute(){
  50. $createLogs = $this->getCreateLogAttribute();
  51. $endLogs =$this->getEndLogAttribute();
  52. if( ($createLogs ?? false) && ($endLogs ?? false)){
  53. $time = date_diff($createLogs->create_at,$endLogs->create_at);
  54. return $time->format('H天I小时');
  55. }
  56. return null;
  57. }
  58. public function delete()
  59. {
  60. $this->order()->delete();
  61. $this->logs()->delete();
  62. $this->top()->delete();
  63. return parent::delete();
  64. }
  65. public function deleteSafe(){
  66. return parent::delete();
  67. }
  68. }