where('is_expire', '=', 0) // ->where('is_delete', '=', 0) // ->where('tree_level', '>', 3) // ->where('agent_time', '<', $time)->column('user_id'); // } /** * 获取排位已过期的队长ID集(直推超过3个的不设置过期) */ public function getExpiredUserIds($app_id) { $setting = Setting::getItem('basic', $app_id); // log_write($setting); if (empty($setting['expire_day'])) { return ''; } $time = time() - 86400 * $setting['expire_day']; $list = $this->alias('bonus')->where('bonus.is_expire', '=', 0) ->where('bonus.is_delete', '=', 0) ->where('bonus.tree_level', '>', 3) ->where('bonus.is_permanent', '=', 0) ->where('bonus.agent_time', '<', $time) ->field('bonus.user_id,count(agent.user_id) as num') ->leftJoin('agent_user agent', 'agent.referee_id=bonus.user_id') ->having('num<3') ->group('bonus.user_id') ->select()->toArray(); log_write($list); return helper::getArrayColumn($list, 'user_id'); } /** * 设置队长排位过期状态 */ public function setIsExpire($UserIds) { if (empty($UserIds)) { return false; } return $this->where('user_id', 'in', $UserIds)->save(['is_expire' => 1]); } /** * 获取可解冻业绩奖的队长列表 */ public function getBackUserList($app_id) { $setting = Setting::getItem('basic', $app_id); $model = $this->alias('bonus'); if (!empty($setting['expire_day'])) { $model = $model->where('bonus.is_expire', '=', 0); } return $model->where('bonus.is_delete', '=', 0) ->where('freeze_money_second', '>', 0) ->join('agent_user agent', 'agent.referee_id=bonus.user_id and agent.first_num>=3') ->field('bonus.user_id,bonus.money,bonus.freeze_money_second,count(agent.user_id) as num') ->having('num>=3') ->group('bonus.user_id') ->select(); } /** * 执行解冻业绩 */ public function setBackFreezeMoneySecond($list) { $data = []; foreach ($list as $item) { $data[] = [ 'user_id' => $item['user_id'], 'money' => $item['money'] + $item['freeze_money_second'], 'freeze_money_second' => 0 ]; } $data && $this->saveAll($data); return true; } }