AftersaleLog.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace app\admin\model\shopro\order;
  3. use app\admin\model\shopro\Common;
  4. use app\admin\model\Admin;
  5. use app\admin\model\shopro\user\User;
  6. class AftersaleLog extends Common
  7. {
  8. protected $name = 'shopro_order_aftersale_log';
  9. protected $type = [
  10. 'images' => 'json',
  11. ];
  12. protected $append = [
  13. 'log_type_text'
  14. ];
  15. public function logTypeList()
  16. {
  17. return [
  18. 'apply_aftersale' => '售后服务单申请成功,等待售后处理',
  19. 'cancel' => '用户取消申请售后',
  20. 'delete' => '用户删除售后单',
  21. 'completed' => '售后订单已完成',
  22. 'refuse' => '卖家拒绝售后',
  23. 'refund' => '卖家同意退款',
  24. 'add_log' => '卖家留言'
  25. ];
  26. }
  27. public static function add($order = null, $aftersale = null, $oper = null, $type = 'user', $data = [])
  28. {
  29. $oper_id = $oper ? $oper['id'] : 0;
  30. $images = $data['images'] ?? [];
  31. $self = new self();
  32. $self->order_id = $order ? $order->id : ($aftersale ? $aftersale->id : 0);
  33. $self->order_aftersale_id = $aftersale ? $aftersale->id : 0;
  34. $self->oper_type = $type;
  35. $self->oper_id = $oper_id;
  36. $self->dispatch_status = $aftersale ? $aftersale->dispatch_status : 0;
  37. $self->aftersale_status = $aftersale ? $aftersale->aftersale_status : 0;
  38. $self->refund_status = $aftersale ? $aftersale->refund_status : 0;
  39. $self->log_type = $data['log_type'];
  40. $self->content = $data['content'] ?? '';
  41. $self->images = $images;
  42. $self->save();
  43. // 售后单变动行为
  44. $data = ['aftersale' => $aftersale, 'order' => $order, 'aftersaleLog' => $self];
  45. \think\Hook::listen('order_aftersale_change', $data);
  46. return $self;
  47. }
  48. /**
  49. * log 类型获取器
  50. *
  51. * @param string $value
  52. * @param array $data
  53. * @return string
  54. */
  55. public function getLogTypeTextAttr($value, $data)
  56. {
  57. $value = $value ?: ($data['log_type'] ?? null);
  58. $list = $this->logTypeList();
  59. return isset($list[$value]) ? $list[$value] : '';
  60. }
  61. }