Comment.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. namespace app\admin\model\shopro\goods;
  3. use app\admin\model\shopro\Common;
  4. use traits\model\SoftDelete;
  5. class Comment extends Common
  6. {
  7. use SoftDelete;
  8. protected $deleteTime = 'deletetime';
  9. // 表名
  10. protected $name = 'shopro_goods_comment';
  11. protected $type = [
  12. 'images' => 'json',
  13. 'reply_time' => 'timestamp',
  14. ];
  15. protected $append = [
  16. 'status_text'
  17. ];
  18. protected $hidden = [
  19. 'user_type'
  20. ];
  21. public static $typeAll = [
  22. 'all' => ['code' => 'all', 'name' => '全部'],
  23. 'images' => ['code' => 'images', 'name' => '有图'],
  24. 'good' => ['code' => 'good', 'name' => '好评'],
  25. 'moderate' => ['code' => 'moderate', 'name' => '中评'],
  26. 'bad' => ['code' => 'bad', 'name' => '差评'],
  27. ];
  28. public function scopeImages($query)
  29. {
  30. return $query->whereNotNull('images')->where('images', '<>', '')->where('images', '<>', '[]');
  31. }
  32. public function scopeGood($query)
  33. {
  34. return $query->where('level', 'in', [5, 4]);
  35. }
  36. public function scopeModerate($query)
  37. {
  38. return $query->where('level', 'in', [3, 2]);
  39. }
  40. public function scopeBad($query)
  41. {
  42. return $query->where('level', 1);
  43. }
  44. public function scopeNoReply($query)
  45. {
  46. return $query->whereNull('reply_time');
  47. }
  48. public function getUserNicknameAttr($value, $data)
  49. {
  50. $value = $value ?: ($data['user_nickname'] ?? '');
  51. return $value ? string_hide($value, 2) : $value;
  52. }
  53. public function admin()
  54. {
  55. return $this->belongsTo(\app\admin\model\Admin::class, 'admin_id', 'id')->field('id,username,nickname,avatar');
  56. }
  57. public function goods()
  58. {
  59. return $this->belongsTo(\app\admin\model\shopro\goods\Goods::class, 'goods_id', 'id');
  60. }
  61. public function order()
  62. {
  63. return $this->belongsTo(\app\admin\model\shopro\order\Order::class, 'order_id', 'id');
  64. }
  65. public function orderItem()
  66. {
  67. return $this->belongsTo(\app\admin\model\shopro\order\OrderItem::class, 'order_item_id', 'id');
  68. }
  69. }