love_php/app/Services/SaasVipService.php

87 lines
2.8 KiB
PHP
Raw Permalink Normal View History

2026-04-02 09:20:51 +08:00
<?php
namespace App\Services;
use App\Models\Message;
use App\Models\SaasMemberVipSpreadCarrier;
use App\Models\Server\SaasMemberUser;
use App\Models\Server\TouristOrder;
use App\Utils\Messenger as Messengers;
use Illuminate\Support\Carbon;
class SaasVipService
{
/**
* 检查是否购买Vip
* @param $merchant_id
* @param $merchant_user_id
* @param $level_id
* @return bool
*/
public function checkBuyVip($merchant_id, $merchant_user_id, $level_id): bool
{
$expire_time = SaasMemberUser::where('merchant_id', $merchant_id)
->where('merchant_user_id', $merchant_user_id)
->where('member_level_id', $level_id)
->value('expire_time');
if ($expire_time) {
$expire = Carbon::parse($expire_time)->timestamp;
} else {
$expire = 0;
}
if ($expire > Carbon::now()->timestamp) {
return true;
} else {
return false;
}
}
/**
* 获取最后一条购买的对应Vip订单
* @param $merchant_id
* @param $merchant_user_id
* @param $level_id
* @return mixed
*/
public function getBuyVipOrder($merchant_id, $merchant_user_id, $level_id)
{
$where = [
['type', '=', 'member'],
['merchant_id', '=', $merchant_id],
['account_id', '=', $merchant_user_id],
['type_id', '=', $level_id],
];
return TouristOrder::where($where)->whereIn('pay_status', [1, 4])->orderBy('id', 'desc')->first();
}
/**
* 联系短信
* @param $vip_user_spread_carrier_id
* @param $mobile
* @return bool
*/
public function contactSms($vip_user_spread_carrier_id, $mobile)
{
if (empty($mobile) || empty($vip_user_spread_carrier_id)) {
return false;
}
$spread_carrier = SaasMemberVipSpreadCarrier::find($vip_user_spread_carrier_id);
if ($spread_carrier) {
$param = "id={$spread_carrier->fulink_user_id}&from_merchant_id={$spread_carrier->spread_merchant_id}";
$url = \CommonUtilsService::getWecharLink("/pages/home/information", $param);
$short_url_data = \CommonUtilsService::shortUrl(env('APP_URL') . '/h5/#/jump_url?url=' . $url);
$url = $short_url_data['url'] ?? '';
$content = "恭喜你成为高级会员,请点击{$url} 查看Ta的信息快点去认识Ta吧 (一定记得要领取会员权益哦~)";
Message::create([
'phone' => $mobile,
'message' => $content,
'confirmed' => 1,
'ip' => request() ? request()->ip() : '127.0.0.1',
]);
Messengers::sendSMS($mobile, $content);
return true;
}
return false;
}
}