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(), ];