ParentOrder.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace app\common\model;
  3. use think\Model;
  4. use traits\model\SoftDelete;
  5. use app\common\Enum\OrderEnum;
  6. /**
  7. * 父订单模型
  8. * 仅用于数据存储,不包含业务逻辑
  9. */
  10. class ParentOrder extends Model
  11. {
  12. use SoftDelete;
  13. // 表名
  14. protected $name = 'shop_parent_order';
  15. // 开启自动写入时间戳字段
  16. protected $autoWriteTimestamp = 'int';
  17. // 定义时间戳字段名
  18. protected $createTime = 'createtime';
  19. protected $updateTime = 'updatetime';
  20. protected $deleteTime = 'deletetime';
  21. // 追加属性
  22. protected $append = [
  23. 'order_status_text',
  24. 'pay_status_text'
  25. ];
  26. /**
  27. * 获取订单状态文本
  28. */
  29. public function getOrderStatusTextAttr($value, $data)
  30. {
  31. return OrderEnum::getOrderStatusText($data['order_status']);
  32. }
  33. /**
  34. * 获取支付状态文本
  35. */
  36. public function getPayStatusTextAttr($value, $data)
  37. {
  38. $statusMap = [
  39. 0 => '未支付',
  40. 1 => '已支付'
  41. ];
  42. return $statusMap[$data['pay_status']] ?? '未知';
  43. }
  44. /**
  45. * 关联用户
  46. */
  47. public function user()
  48. {
  49. return $this->belongsTo('User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
  50. }
  51. /**
  52. * 关联子订单
  53. */
  54. public function childOrders()
  55. {
  56. return $this->hasMany('Order', 'parent_order_id', 'id');
  57. }
  58. }