From 67295504adcdcfb5c8fad43b045f712273ddb902 Mon Sep 17 00:00:00 2001 From: chen Date: Thu, 17 Sep 2026 17:04:28 +0800 Subject: [PATCH] =?UTF-8?q?fix(user):=20=E5=85=BC=E5=AE=B9=E5=88=86?= =?UTF-8?q?=E9=94=80=E5=95=86=E5=90=88=E4=BC=99=E8=82=A1=E4=B8=9C=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E7=BC=BA=E5=A4=B1=E5=BC=82=E5=B8=B8=E5=B9=B6=E8=A1=A5?= =?UTF-8?q?=E5=85=85=E6=95=B0=E6=8D=AE=E5=BA=93=E5=8D=87=E7=BA=A7=E8=84=9A?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/shopro/filter/user/UserFilter.php | 12 +++++++++++- addons/shopro/upgrade/partner_v2.sql | 4 +++- application/admin/controller/shopro/user/User.php | 9 ++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/addons/shopro/filter/user/UserFilter.php b/addons/shopro/filter/user/UserFilter.php index 907ca24..a8181a8 100755 --- a/addons/shopro/filter/user/UserFilter.php +++ b/addons/shopro/filter/user/UserFilter.php @@ -54,7 +54,17 @@ class UserFilter extends BaseFilter } if ($value === 'partner') { return $query->whereExists(function ($sub) use ($current, $agentTable) { - $sub->table($agentTable)->where($agentTable . '.user_id=' . $current . '.id')->where('is_partner', 1); + $sub->table($agentTable)->where($agentTable . '.user_id=' . $current . '.id'); + try { + $fields = (new AgentModel())->getTableFields(); + if (in_array('is_partner', $fields)) { + $sub->where('is_partner', 1); + } else { + $sub->where('level', '>=', 1); + } + } catch (\Exception $e) { + $sub->where('level', '>=', 1); + } }); } return $query; diff --git a/addons/shopro/upgrade/partner_v2.sql b/addons/shopro/upgrade/partner_v2.sql index 8c9780f..a1ea83f 100644 --- a/addons/shopro/upgrade/partner_v2.sql +++ b/addons/shopro/upgrade/partner_v2.sql @@ -16,7 +16,8 @@ SET @prefix = ( ALTER TABLE `__PREFIX__shopro_commission_agent` ADD COLUMN `is_venue` tinyint(1) NOT NULL DEFAULT 0 COMMENT '酒道馆' AFTER `level`, ADD COLUMN `is_county` tinyint(1) NOT NULL DEFAULT 0 COMMENT '区县代理' AFTER `is_venue`, - ADD COLUMN `county_code` varchar(20) NOT NULL DEFAULT '' COMMENT '区县编码' AFTER `is_county`, + ADD COLUMN `is_partner` tinyint(1) NOT NULL DEFAULT 0 COMMENT '合伙股东' AFTER `is_county`, + ADD COLUMN `county_code` varchar(20) NOT NULL DEFAULT '' COMMENT '区县编码' AFTER `is_partner`, ADD COLUMN `direct_order_seq` int(11) NOT NULL DEFAULT 0 COMMENT '直推合格单累计(推三返一)' AFTER `county_code`, ADD COLUMN `madow` decimal(20,8) NOT NULL DEFAULT 0.00000000 COMMENT '马豆' AFTER `direct_order_seq`, ADD COLUMN `voucher_total` decimal(12,2) NOT NULL DEFAULT 0.00 COMMENT '兑换券总额' AFTER `madow`, @@ -25,6 +26,7 @@ ALTER TABLE `__PREFIX__shopro_commission_agent` ADD COLUMN `last_self_order_time` bigint(16) DEFAULT NULL COMMENT '本人最近合格订单时间' AFTER `voucher_used`, ADD KEY `idx_venue` (`is_venue`), ADD KEY `idx_county` (`is_county`), + ADD KEY `idx_partner` (`is_partner`), ADD KEY `idx_last_self_order` (`last_self_order_time`); -- 2. 收益流水 diff --git a/application/admin/controller/shopro/user/User.php b/application/admin/controller/shopro/user/User.php index bfa7d24..07d522d 100644 --- a/application/admin/controller/shopro/user/User.php +++ b/application/admin/controller/shopro/user/User.php @@ -72,12 +72,19 @@ class User extends Common } } + $hasPartnerCol = false; + try { + $hasPartnerCol = in_array('is_partner', Db::name('shopro_commission_agent')->getTableFields()); + } catch (\Exception $e) { + $hasPartnerCol = false; + } + $stats = [ 'total_users' => UserModel::count(), 'maker_count' => Db::name('shopro_commission_agent')->where('level', '>=', 2)->count(), 'venue_count' => Db::name('shopro_commission_agent')->where('is_venue', 1)->count(), 'county_count' => Db::name('shopro_commission_agent')->where('is_county', 1)->count(), - 'partner_count' => Db::name('shopro_commission_agent')->where('is_partner', 1)->count(), + 'partner_count' => $hasPartnerCol ? Db::name('shopro_commission_agent')->where('is_partner', 1)->count() : 0, 'active_count' => Db::name('shopro_commission_agent')->where('last_self_order_time', '>=', $now - $days * 86400)->count(), ];