63 lines
2.1 KiB
PHP
63 lines
2.1 KiB
PHP
|
|
<?php
|
||
|
|
namespace App\Models;
|
||
|
|
|
||
|
|
use Illuminate\Database\Eloquent\Model;
|
||
|
|
use App\Models\Base;
|
||
|
|
use App\Models\Order;
|
||
|
|
use App\Models\RefundOrder;
|
||
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||
|
|
class ActivityMember extends Base
|
||
|
|
{
|
||
|
|
use SoftDeletes;
|
||
|
|
protected $fillable = [];
|
||
|
|
protected $guarded = [];
|
||
|
|
protected $casts = [
|
||
|
|
'linkmen' => 'array',
|
||
|
|
];
|
||
|
|
public function user()
|
||
|
|
{
|
||
|
|
return $this->belongsTo(User::class, 'user_id');
|
||
|
|
}
|
||
|
|
|
||
|
|
//是否可以退款
|
||
|
|
public function canRefund()
|
||
|
|
{
|
||
|
|
$canRefund = true;
|
||
|
|
$isRefund = false;
|
||
|
|
$order = Order::where('user_id', $this->user_id)->where('type', 'activity')->where('type_id', $this->activity_id)->where('pay_status', 'PAID')->first();
|
||
|
|
if (empty($order)) {
|
||
|
|
$canRefund = false;
|
||
|
|
return compact('canRefund', 'isRefund');
|
||
|
|
}elseif ($order && $order->price == 0) {
|
||
|
|
$canRefund = false;
|
||
|
|
}
|
||
|
|
$refund_order = RefundOrder::where('user_id', $this->user_id)->where('type', 'activity')->where('trade_no', $order->trade_no)->first();
|
||
|
|
$isRefund = $refund_order?true:false;
|
||
|
|
return compact('canRefund', 'isRefund');
|
||
|
|
}
|
||
|
|
|
||
|
|
public function activityOrder()
|
||
|
|
{
|
||
|
|
$order = Order::where('type', 'activity')->where('user_id', $this->user_id)->where('type_id', $this->activity_id)->where('pay_status', 'PAID')->orderBy('id', 'desc')->first();
|
||
|
|
if(!empty($order)){
|
||
|
|
$order->from_user = '';
|
||
|
|
if(!empty($order->from_openid)){
|
||
|
|
$from_user_id = Wechat::where('openid', $order->from_openid)->value('user_id');
|
||
|
|
if(!empty($from_user_id)){
|
||
|
|
$from_user = User::select('id', 'name','nickname')->where('id', $from_user_id)->first()->toArray();
|
||
|
|
$order->from_user = !empty($from_user) ? $from_user: '';
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return $order;
|
||
|
|
}
|
||
|
|
|
||
|
|
public function refundOrder(){
|
||
|
|
$activityOrder = $this->activityOrder();
|
||
|
|
$order = RefundOrder::where('type', 'activity')->where('user_id', $this->user_id)->where('trade_no', $activityOrder->trade_no)->first();
|
||
|
|
return $order;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
}
|