Active.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace app\common\model\plus\bargain;
  3. use app\common\model\BaseModel;
  4. /**
  5. * 砍价模型
  6. * @package app\common\model\plus\bargain
  7. */
  8. class Active extends BaseModel
  9. {
  10. protected $name = 'bargain_activity';
  11. protected $pk = 'bargain_activity_id';
  12. protected $append = ['status_text', 'start_time_text','end_time_text','join_status', 'join_end_time_text'];
  13. /**
  14. * 有效期-开始时间
  15. * @param $value
  16. * @return array
  17. */
  18. public function getStartTimeTextAttr($value, $data)
  19. {
  20. return date('Y-m-d H:i:s', $data['start_time']);
  21. }
  22. /**
  23. * 有效期-开始时间
  24. * @param $value
  25. * @return array
  26. */
  27. public function getEndTimeTextAttr($value, $data)
  28. {
  29. return date('Y-m-d H:i:s', $data['end_time']);
  30. }
  31. /**
  32. * 报名截止日期
  33. */
  34. public function getJoinEndTimeTextAttr($value, $data)
  35. {
  36. return date('Y-m-d H:i:s', $data['join_end_time']);
  37. }
  38. /**
  39. * 状态
  40. * @param $val
  41. * @return string
  42. */
  43. public function getStatusTextAttr($value, $data)
  44. {
  45. if($data['status'] == 0){
  46. return '未生效';
  47. }
  48. if ($data['start_time'] > time()) {
  49. return '未开始';
  50. }
  51. if ($data['end_time'] < time()) {
  52. return '已结束';
  53. }
  54. if ($data['start_time'] < time() && $data['end_time'] > time()) {
  55. return '生效-进行中';
  56. }
  57. return '';
  58. }
  59. /**
  60. * 状态
  61. * @param $val
  62. * @return string
  63. */
  64. public function getJoinStatusAttr($value, $data)
  65. {
  66. if($data['status'] == 0){
  67. return 0;
  68. }
  69. if ($data['end_time'] < time()) {
  70. return 0;
  71. }
  72. if ($data['join_end_time'] < time()) {
  73. return 0;
  74. }
  75. return 1;
  76. }
  77. /**
  78. *关联商品表
  79. */
  80. public function product()
  81. {
  82. return $this->hasMany('app\\common\\model\\plus\\bargain\\BargainProduct', 'bargain_id', 'bargain_id');
  83. }
  84. /**
  85. *关联图片
  86. */
  87. public function file()
  88. {
  89. return $this->hasOne('app\\common\\model\\file\\UploadFile', 'file_id', 'image_id');
  90. }
  91. /**
  92. * 砍价活动详情
  93. */
  94. public static function detail($bargain_activity_id, $with = [])
  95. {
  96. return (new static())->with($with)->find($bargain_activity_id);
  97. }
  98. /**
  99. * 处理过的详情数据
  100. */
  101. public static function detailWithTrans($bargain_activity_id)
  102. {
  103. $model = (new static())->with(['file'])->where('bargain_activity_id', '=', $bargain_activity_id)->find();
  104. $detail = [
  105. 'title' => $model['title'],
  106. 'image_id' => $model['image_id'],
  107. 'file_path' => $model['file']['file_path'],
  108. 'sort' => $model['sort'],
  109. 'is_delete' => $model['is_delete'],
  110. 'conditions' => $model['conditions'],
  111. 'together_time' => $model['together_time'],
  112. 'status' => $model['status'],
  113. 'start_time' => $model['start_time'],
  114. 'end_time' => $model['end_time'],
  115. 'join_end_time' => date('Y-m-d H:i:s', $model['join_end_time']),
  116. 'active_time' => [
  117. date('Y-m-d H:i:s', $model['start_time']),
  118. date('Y-m-d H:i:s', $model['end_time']),
  119. ],
  120. ];
  121. return $detail;
  122. }
  123. }