diff --git a/app/data/controller/User.php b/app/data/controller/User.php index 3f8f1a57e..6a2ce2f68 100644 --- a/app/data/controller/User.php +++ b/app/data/controller/User.php @@ -3,6 +3,7 @@ namespace app\data\controller; use app\data\service\UserAdminService; +use app\data\service\UserUpgradeService; use think\admin\Controller; /** @@ -30,17 +31,21 @@ class User extends Controller { $this->title = '普通用户管理'; $query = $this->_query($this->table); - $query->like('phone,username|nickname#username'); + $query->like('phone,username|nickname#username')->equal('vip_code'); $query->order('id desc')->equal('status')->dateBetween('create_at')->page(); } /** * 数据列表处理 * @param array $data + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException */ protected function _page_filter(array &$data) { - UserAdminService::instance()->buildByUid($data, 'pid1', 'fromer'); + $this->upgrades = UserUpgradeService::instance()->levels(); + UserAdminService::instance()->buildByUid($data, 'pid1', 'from'); } /** diff --git a/app/data/controller/UserBalance.php b/app/data/controller/UserBalance.php index bc990d0de..9b895ddf6 100644 --- a/app/data/controller/UserBalance.php +++ b/app/data/controller/UserBalance.php @@ -35,25 +35,34 @@ class UserBalance extends Controller $this->title = '余额充值记录'; // 统计用户余额 $this->balance = UserBalanceService::instance()->amount(0); + // 现有余额类型 + $this->names = $this->app->db->name($this->table)->group('name')->column('name'); // 创建查询对象 - $query = $this->_query($this->table); + $query = $this->_query($this->table)->equal('name,vip_upgrade'); // 用户搜索查询 $db = $this->_query('DataUser')->like('phone#user_phone,nickname#user_nickname')->db(); if ($db->getOptions('where')) $query->whereRaw("uid in {$db->field('id')->buildSql()}"); // 数据查询分页 - $query->where(['deleted' => 0])->like('code,name')->dateBetween('create_at')->order('id desc')->page(); + $query->where(['deleted' => 0])->like('code,remark')->dateBetween('create_at')->order('id desc')->page(); } /** * 数据列表处理 * @param array $data + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException */ protected function _index_page_filter(array &$data) { UserAdminService::instance()->buildByUid($data); $uids = array_unique(array_column($data, 'create_by')); $users = $this->app->db->name('SystemUser')->whereIn('id', $uids)->column('username', 'id'); - foreach ($data as &$vo) $vo['create_byname'] = $users[$vo['create_by']] ?? $vo['create_by']; + $this->upgrades = UserUpgradeService::instance()->levels(); + foreach ($data as &$vo) { + $vo['vip_upgradeinfo'] = $this->upgrades[$vo['vip_upgrade']] ?? []; + $vo['create_byname'] = $users[$vo['create_by']] ?? $vo['create_by']; + } } /** @@ -74,6 +83,9 @@ class UserBalance extends Controller /** * 表单数据处理 * @param array $data + * @throws \think\db\exception\DataNotFoundException + * @throws \think\db\exception\DbException + * @throws \think\db\exception\ModelNotFoundException */ protected function _form_filter(array &$data) { @@ -82,7 +94,11 @@ class UserBalance extends Controller } if ($this->request->isPost()) { $data['create_by'] = AdminService::instance()->getUserId(); - if (empty(floatval($data['amount']))) $this->error('充值金额不能为零'); + if (empty(floatval($data['amount'])) && empty($data['vip_upgrade'])) { + $this->error('充值金额为零并没有升级行为!'); + } + } else { + $this->upgrades = UserUpgradeService::instance()->levels(); } } @@ -96,6 +112,9 @@ class UserBalance extends Controller { if ($state && isset($data['uid'])) { UserBalanceService::instance()->amount($data['uid']); + if ($data['vip_upgrade'] > 0) { + UserUpgradeService::instance()->upgrade($data['uid']); + } } } diff --git a/app/data/controller/UserRebate.php b/app/data/controller/UserRebate.php index 4f999d052..f04dab601 100644 --- a/app/data/controller/UserRebate.php +++ b/app/data/controller/UserRebate.php @@ -2,6 +2,7 @@ namespace app\data\controller; +use app\data\service\RebateService; use app\data\service\UserRebateService; use app\data\service\UserUpgradeService; use think\admin\Controller; @@ -32,6 +33,7 @@ class UserRebate extends Controller { $this->title = '用户返利管理'; // 统计所有返利 + $this->types = RebateService::PRIZES; $this->rebate = UserRebateService::instance()->amount(0); // 创建查询对象 $query = $this->_query($this->table)->equal('type')->like('name,order_no'); @@ -58,6 +60,7 @@ class UserRebate extends Controller $userItem = $this->app->db->name('DataUser')->whereIn('id', array_unique($uids))->select(); $goodsItem = $this->app->db->name('ShopOrderItem')->whereIn('order_no', array_unique(array_column($data, 'order_no')))->select(); foreach ($data as &$vo) { + $vo['type'] = RebateService::instance()->name($vo['type']); [$vo['user'], $vo['agent'], $vo['list']] = [[], [], []]; foreach ($userItem as $user) { if ($user['id'] === $vo['uid']) $vo['agent'] = $user; diff --git a/app/data/service/UserUpgradeService.php b/app/data/service/UserUpgradeService.php index 548ccb97d..8bf5385be 100644 --- a/app/data/service/UserUpgradeService.php +++ b/app/data/service/UserUpgradeService.php @@ -15,14 +15,11 @@ class UserUpgradeService extends Service /** * 获取用户等级数据 * @return array - * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException - * @throws \think\db\exception\ModelNotFoundException */ public function levels(): array { $query = $this->app->db->name('DataUserUpgrade'); - return $query->where(['status' => 1])->order('number asc')->select()->toArray(); + return $query->where(['status' => 1])->order('number asc')->column('*', 'number'); } /** @@ -62,7 +59,7 @@ class UserUpgradeService extends Service break; } } - // 购买商品升级 + // 购买入会商品升级 $query = $this->app->db->name('ShopOrderItem')->alias('b')->join('shop_order a', 'b.order_no=a.order_no'); $tmpNumber = $query->whereRaw("a.uid={$uid} and a.payment_status=1 and a.status>=4 and b.vip_entry=1")->max('b.vip_upgrade'); if ($tmpNumber > $vipCode) { @@ -72,11 +69,18 @@ class UserUpgradeService extends Service } else { $orderNo = null; } - // 统计订单金额 + // 后台余额充值升级 + $tmpNumber = $this->app->db->name('DataUserBalance')->where(['uid' => $uid, 'deleted' => 0])->max('vip_upgrade'); + if ($tmpNumber > $vipCode) { + $map = ['status' => 1, 'number' => $tmpNumber]; + $upgrade = $this->app->db->name('DataUserUpgrade')->where($map)->find(); + if (!empty($upgrade)) [$vipName, $vipCode] = [$upgrade['name'], $upgrade['number']]; + } + // 统计用户订单金额 $orderAmountTotal = $this->app->db->name('ShopOrder')->whereRaw("uid={$uid} and status>=4")->sum('amount_goods'); $teamsAmountDirect = $this->app->db->name('ShopOrder')->whereRaw("puid1={$uid} and status>=4")->sum('amount_goods'); $teamsAmountIndirect = $this->app->db->name('ShopOrder')->whereRaw("puid2={$uid} and status>=4")->sum('amount_goods'); - // 更新用户数据 + // 更新用户团队数据 $data = [ 'vip_name' => $vipName, 'vip_code' => $vipCode, diff --git a/app/data/view/user/index.html b/app/data/view/user/index.html index ccc61d57f..5909ec9ec 100644 --- a/app/data/view/user/index.html +++ b/app/data/view/user/index.html @@ -24,27 +24,33 @@