You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							61 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							61 lines
						
					
					
						
							1.3 KiB
						
					
					
				
								<?php
							 | 
						|
								
							 | 
						|
								namespace App\Models;
							 | 
						|
								
							 | 
						|
								use Illuminate\Database\Eloquent\Factories\HasFactory;
							 | 
						|
								use Illuminate\Database\Eloquent\SoftDeletes;
							 | 
						|
								use App\Service\OrderStatus as Status;
							 | 
						|
								
							 | 
						|
								class Order extends BaseModel
							 | 
						|
								{
							 | 
						|
								    use HasFactory, SoftDeletes;
							 | 
						|
									protected $guarded = ['created_at', 'updated_at']; //不可批量赋值的属性
							 | 
						|
								
							 | 
						|
									public function getCouponIdAttribute($value)
							 | 
						|
									{
							 | 
						|
										return explode(',', $value);
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function getStatusAttribute($value)
							 | 
						|
									{
							 | 
						|
										$this->append('status_text');
							 | 
						|
										return $value;
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function getStatusTextAttribute()
							 | 
						|
									{
							 | 
						|
										$status_text = [
							 | 
						|
											Status::CANCEL 		=> '已取消',
							 | 
						|
											Status::UNPAID 		=> '待付款',
							 | 
						|
											Status::PAY_EARNEST => '已付定金',
							 | 
						|
											Status::PAID 		=> '已付款',
							 | 
						|
											Status::PAY_RETAINAGE => '已付尾款',
							 | 
						|
											Status::REFUNDING 	=> '退款中',
							 | 
						|
											Status::REFUNDED 	=> '已退款',
							 | 
						|
											Status::SUCCESS 	=> '已完成',
							 | 
						|
										];
							 | 
						|
										return $status_text[$this->status] ?? '未知';
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									//退款信息
							 | 
						|
									public function getRefundInfoAttribute($value)
							 | 
						|
									{
							 | 
						|
										$value = $value ? json_decode($value, true) : [];
							 | 
						|
										if (is_array($value['pictures'])) {
							 | 
						|
											foreach ($value['pictures'] as &$v) {
							 | 
						|
												$v = $this->host . $v;
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
										return $value ?? [];
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function product()
							 | 
						|
									{
							 | 
						|
										return $this->belongsTo(Product::class);
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									public function coupon()
							 | 
						|
									{
							 | 
						|
										return $this->belongsTo(Coupon::class);
							 | 
						|
									}
							 | 
						|
								}
							 |