OrderGoods.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace app\admin\model\shop;
  3. use think\Model;
  4. class OrderGoods extends Model
  5. {
  6. // 表名
  7. protected $name = 'shop_order_goods';
  8. // 自动写入时间戳字段
  9. protected $autoWriteTimestamp = false;
  10. // 定义时间戳字段名
  11. protected $createTime = false;
  12. protected $updateTime = false;
  13. protected $deleteTime = false;
  14. // 追加属性
  15. protected $append = [
  16. 'salestate_text',
  17. 'commentstate_text'
  18. ];
  19. public function getUrlAttr($value, $data)
  20. {
  21. return $this->buildUrl($value, $data);
  22. }
  23. private function buildUrl($value, $data, $domain = false)
  24. {
  25. $diyname = isset($data['diyname']) && $data['diyname'] ? $data['diyname'] : $data['goods_id'];
  26. $time = $data['publishtime'] ?? time();
  27. $vars = [
  28. ':id' => $data['goods_id'],
  29. ':cateid' => '0',
  30. ':diyname' => $diyname,
  31. ':year' => date("Y", $time),
  32. ':month' => date("m", $time),
  33. ':day' => date("d", $time),
  34. ];
  35. $config = get_addon_config('shop');
  36. $suffix = $config['moduleurlsuffix']['goods'] ?? $config['urlsuffix'];
  37. return addon_url('shop/goods/index', $vars, $suffix, $domain);
  38. }
  39. public function getSalestateList()
  40. {
  41. return ['0' => __('Salestate 0'), '1' => __('Salestate 1'), '2' => __('Salestate 2'), '3' => __('Salestate 3'), '4' => __('Salestate 4'), '5' => __('Salestate 5'), '6' => __('Salestate 6')];
  42. }
  43. public function getCommentstateList()
  44. {
  45. return ['0' => __('Commentstate 0'), '1' => __('Commentstate 1')];
  46. }
  47. public function getSalestateTextAttr($value, $data)
  48. {
  49. $value = $value ?: ($data['salestate'] ?? '');
  50. $list = $this->getSalestateList();
  51. return $list[$value] ?? '';
  52. }
  53. public function getCommentstateTextAttr($value, $data)
  54. {
  55. $value = $value ?: ($data['commentstate'] ?? '');
  56. $list = $this->getCommentstateList();
  57. return $list[$value] ?? '';
  58. }
  59. public function Order()
  60. {
  61. return $this->belongsTo('Order', 'order_sn', 'order_sn', [], 'LEFT');
  62. }
  63. }