From 12913c1069347ea4b1f6ab87f480da0f8d8c646a Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 04 Dec 2025 09:24:33 +0800
Subject: [PATCH] 供需求功能
---
admin/app/shop/model/plus/shareholder/User.php | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 51 insertions(+), 1 deletions(-)
diff --git a/admin/app/shop/model/plus/shareholder/User.php b/admin/app/shop/model/plus/shareholder/User.php
index e7962af..4248c2d 100644
--- a/admin/app/shop/model/plus/shareholder/User.php
+++ b/admin/app/shop/model/plus/shareholder/User.php
@@ -4,7 +4,8 @@
use app\shop\model\plus\shareholder\Referee as RefereeModel;
use app\common\model\plus\shareholder\User as UserModel;
-
+use app\shop\model\order\Order as OrderModel;
+use app\shop\model\order\OrderProduct as OrderProductModel;
/**
* 股东用户模型
* Class User
@@ -44,6 +45,55 @@
}
return $model->where('is_delete', '=', 0)->with(['grade'])->select();
}
+
+ /**
+ * 获取满足分红条件的股东列表
+ */
+ public static function getEligibleListAll($bonusData)
+ {
+ // 获取基础设置
+ $setting = Setting::getItem('basic');
+
+ // 先获取所有股东
+ $model = new static;
+ $shareholders = $model->where('is_delete', '=', 0)->with(['grade'])->select();
+
+ // 如果没有设置分红条件,返回所有股东
+ if (empty($setting['consumption_amount']) && empty($setting['condition_purchase_count'])) {
+ return $shareholders;
+ }
+
+ // 过滤满足条件的股东
+ $eligibleShareholders = [];
+ foreach ($shareholders as $shareholder) {
+ $userId = $shareholder['user_id'];
+ $isEligible = true;
+
+ // 检查消费金额条件
+ if (!empty($setting['consumption_amount'])) {
+ $totalConsumption = (new OrderModel)->getUserTotalConsumption($userId,$bonusData);
+ if ($totalConsumption < $setting['consumption_amount']) {
+ $isEligible = false;
+ }
+ }
+
+ // 检查购买次数条件
+ if (!empty($setting['condition_purchase_count']) && $isEligible) {
+ $purchaseCount = (new OrderProductModel)::getPurchaseCount($userId,$bonusData,$shareholder['product_ids']);
+ if ($purchaseCount < $setting['condition_purchase_count']) {
+ $isEligible = false;
+ }
+ }
+
+ // 如果满足所有条件,添加到结果集中
+ if ($isEligible) {
+ $eligibleShareholders[] = $shareholder;
+ }
+ }
+
+ // 转换为 Collection 对象以保持接口一致性
+ return collect($eligibleShareholders);
+ }
/**
* 新增记录
--
Gitblit v1.9.2