love_php/app/Models/ActivityMember.php
2026-04-02 09:20:51 +08:00

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;
}
}