From df60073f4fb06ea2d16984635e0714bae8a1f8e9 Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Mon, 22 Dec 2025 18:03:35 +0800
Subject: [PATCH] 1.在总后台首页装修增加了活动专区和智能匹配 模块 2.目前活动专区获取的是发布需求最新的数据,智能匹配是用户没登录前也是获取发布需求最新数据,登录后会根据用户发布的需求,通过分类匹配到对应的数据 3.修复缴纳保证金报错 4.修复发布需求报错
---
admin/app/shop/model/plus/shareholder/User.php | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 55 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..218ed95 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
@@ -12,6 +13,11 @@
*/
class User extends UserModel
{
+ public static function checkExistByGradeId($grade_id)
+ {
+ self::where('grade_id',$grade_id)->find();
+ }
+
/**
* 获取股东用户列表
*/
@@ -44,6 +50,54 @@
}
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);
+ if ($purchaseCount < $setting['condition_purchase_count']) {
+ $isEligible = false;
+ }
+ }
+
+ // 如果满足所有条件,添加到结果集中
+ if ($isEligible) {
+ $eligibleShareholders[] = $shareholder;
+ }
+ }
+
+ // 转换为 Collection 对象以保持接口一致性
+ return collect($eligibleShareholders);
+ }
/**
* 新增记录
--
Gitblit v1.9.2