From feda780069d64479c0c20493603717e100655da9 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 05 Dec 2025 18:26:25 +0800
Subject: [PATCH] 完成新人专区 完成复购专区 完成见点奖
---
admin/app/common/model/plus/vip/Order.php | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/admin/app/common/model/plus/vip/Order.php b/admin/app/common/model/plus/vip/Order.php
index 6514c70..e9a5c11 100644
--- a/admin/app/common/model/plus/vip/Order.php
+++ b/admin/app/common/model/plus/vip/Order.php
@@ -248,6 +248,9 @@
/**
* 创建VIP专区订单记录
+ * @param array $order 订单信息数组
+ * @param int $order_type 订单类型,默认为OrderTypeEnum::MASTER
+ * @return bool|\think\Collection 是否成功创建订单
*/
public static function createOrder($order, $order_type = OrderTypeEnum::MASTER)
{
@@ -276,6 +279,7 @@
$list=[];
// 计算佣金金额
$orderPrice = bcsub($order['pay_price'], $order['express_price'], 2);
+ $viewpoint_money=0;
// 获取当前买家的推荐人信息
$userModel = UserModel::detail($order['user_id']);
if (!empty($userModel) && !empty($userModel['referee_id'])) {
@@ -291,6 +295,9 @@
if (!empty($config['become__buy_product_ids'])) {
$purchase_count=(new self())->getPurchaseCount($order['user_id']);
foreach ($order['product'] as $product){
+ if ($product['is_repurchase']==1){
+ $viewpoint_money=bcadd($viewpoint_money,($product['is_viewpoint_money']?$product['viewpoint_money']:$vipGrade['viewpoint_money']),2);
+ }
if (in_array($product['product_id'], $config['become__buy_product_ids'])) {
// 获取商品数量
$quantity = $product['total_num'];
@@ -309,11 +316,16 @@
}
}
}
+
+ // 检查并处理直推佣金
$directReferralsCount=0;
$user=UserModel::detail($order['user_id']);
if (!empty($user['referee_id'])){
// 检查推荐人是否满足直推条件(直推用户数量)
$directReferralsCount = UserModel::where('referee_id', '=', $user['referee_id'])->count();
+ if ($viewpoint_money>0&&(new User())->getViewpointMoneyQualification($user['referee_id'],$setting)){
+ $list[]=array_merge($data,['vip_area_type'=>60,'vip_area_money'=>$viewpoint_money]);
+ }
}
$requiredReferralCount = $setting['referee_buy_count'] ?? 0;
if ($vipGrade['commission']>0 && $directReferralsCount >= $requiredReferralCount){
@@ -324,10 +336,9 @@
}
}
}
- log_write($order['supplier']->toArray());
- if( $order['supplier']['referee_id']!=0){
+ // 处理供应商推荐人佣金
+ if($order['supplier']['referee_id']!=0){
$supplierReferee=VipUserModel::detail($order['supplier']['referee_id']);
- log_write('供应商推荐人:'.$supplierReferee['user_id']);
if ($supplierReferee){
$vipGradeSupplier=Grade::detail($supplierReferee['grade_id']);
if ($vipGradeSupplier['supplier_money']>0){
@@ -337,6 +348,7 @@
}
}
}
+ log_write($list);
if (empty($list)){
return true;
}
--
Gitblit v1.9.2