alias($alert); $alert=$alert ? $alert.'.': ''; $model = $model->where("{$alert}is_del",0); if(isset($where['is_show']) && $where['is_show']!=='') $model=$model->where("{$alert}is_show",$where['is_show']); if(isset($where['title']) && $where['title']) $model=$model->where("{$alert}name",'LIKE',"%$where[title]%"); return $model; } public static function getSystemList($where) { $data = self::setWhere($where)->order('id asc')->page((int)$where['page'], (int)$where['limit'])->select(); $data = count($data) ? $data->toArray() : []; $count = self::setWhere($where)->count(); return compact('data', 'count'); } public static function checkLevel($uid) { $user = User::where('uid', $uid)->find(); $spread = User::where('uid', $user['spread_uid'])->find(); while ($spread) { //伞下全员 $uids = []; $sp = [$spread['uid']]; while ($sp) { $sp = User::where('spread_uid', 'in', $sp)->column('uid'); if (count($sp)) $uids = array_merge($uids, $sp); } $orders = StoreOrder::where('paid', 1) ->where('status', 'in', [2, 3]) ->where('uid', 'in', $uids) ->where('refund_status', 0) ->where('is_del', 0) ->where('is_system_del', 0)->select(); $num = 0; foreach ($orders as $v) { $num += StoreCart::where('id', 'in', $v['cart_id'])->where('is_suit', 1)->sum('cart_num'); } $level_info = self::where('id', $spread['group_level'])->find(); $level = self::where('level_num', '>', $level_info['level_num'] ?? 0)->order('level_num', 'desc')->select(); foreach ($level as $v) { if ($num >= $v['level_num']) { User::where('uid', $spread['uid'])->update(['group_level' => $v['id']]); break; } } $spread = User::where('uid', $spread['spread_uid'])->find(); } return true; } }