$uid, ]; return AgentAttrsModel::query()->create($setarr); } /** * 代理统计数据 * * @param $accountInfo * @return int[] */ public function getAgentSumTotal($accountInfo) { $field = 'td_users_deduction,users_deduction,commission_money,td_commission_money,deduction_money,td_deduction_money,td_users_total,td_date,td_deduction_success_money'; $sumData = AgentAttrsModel::query()->selectRaw($field)->where('agent_uid', $accountInfo['uid'])->first(); $res = [ 'td_users_deduction' => 0, //今日注册 ok 'td_add_agent' => 0, //今天新增代理 ok 'td_down_commission_money' => 0, //今日下级抽成 ok 'td_commission_money' => 0, //今日用户抽成 ok 'td_profit' => 0, //今日盈利 ok 'td_deduction_success_money' => 0 //今日充值 ok ]; $childMap = explode(',', $accountInfo['child_uids']); //获取今日之前的代理统计总数据 $totalAgentAttrs = AgentAttrsLogsModel::where('agent_uid', $accountInfo['uid'])->orderBy('created_at', 'desc')->first(); //获取今日的统计数据 $todayAgentAttrs = AgentAttrsTodayModel::where(['agent_uid' => $accountInfo['uid'], 'date' => toMongoIsoDate(Carbon::parse(date('Y-m-d'))->startOfDay())])->first(); $dayDate = date('Y-m-d'); if ($sumData->td_date == $dayDate) { //今日用户抽成 ok if (isset($sumData->td_commission_money)) { $res['td_commission_money'] = (int)$sumData->td_commission_money; } //今日盈利 ok if (isset($todayAgentAttrs->td_commission_money)) { $res['td_profit'] = (int)$todayAgentAttrs->td_commission_money; } //今日充值 ok if (isset($sumData->td_deduction_success_money)) { $res['td_deduction_success_money'] = (int)$sumData->td_deduction_success_money; } //今日下级抽成 ok $res['td_down_commission_money'] = ($todayAgentAttrs->td_commission_money ?? 0) - ($sumData->td_commission_money ?? 0); if ($res['td_down_commission_money'] < 0) { $res['td_down_commission_money'] = 0; } //今天新增代理 $tdAddAgent = AgentModel::query()->where('parent_uid', $accountInfo['uid'])->whereBetween('created_at', [$dayDate . ' 00:00:00', $dayDate . ' 23:59:59'])->count(); $res['td_add_agent'] = $tdAddAgent; } //总注册 ok if ($accountInfo['uid'] == 'qkx07G') { $res['users_deduction'] = UsersModel::where(['agent_uid' => $accountInfo['uid'], 'is_deduction' => 0])->groupBy('user_uid')->count() - 2235; } else { $res['users_deduction'] = UsersModel::where(['agent_uid' => $accountInfo['uid'], 'is_deduction' => 0])->groupBy('user_uid')->count(); } //总代理 ok $res['total_agent'] = empty($childMap[0]) ? 0 : count($childMap); //总抽成 ok $res['commission_money'] = (int)$sumData->commission_money; //下级总抽成 $res['down_commission_money'] = ($todayAgentAttrs->td_commission_money ?? 0) + ($totalAgentAttrs->commission_money ?? 0) - $sumData->commission_money; if ($res['down_commission_money'] < 0) { $res['down_commission_money'] = 0; } //总盈利 $res['total_profit'] = ($todayAgentAttrs->td_commission_money ?? 0) + ($totalAgentAttrs->commission_money ?? 0); //总盈利 $betweenDate = [Carbon::parse($dayDate . ' 00:00:00'), Carbon::parse($dayDate . ' 23:59:59')]; //获取今日充值人数 // $dayPayNum = PayLogsModel::whereBetween('paid_at', $betweenDate)->where(['order_status' => 1, 'agent_uid' => $accountInfo['uid']])->groupBy('user_uid')->count(); //今日注册人数 if ($accountInfo['uid'] == 'qkx07G' && $dayDate == '2022-07-30') { $dayRegNum = 966; } else { $dayRegNum = UsersModel::whereBetween('created_at', $betweenDate)->where(['agent_uid' => $accountInfo['uid'], 'is_deduction' => 0])->groupBy('user_uid')->count(); } //今日注册 ok $res['td_users_deduction'] = $dayRegNum; $res['commission_ratio'] = (int)$accountInfo['commission_ratio']; //分成比例 //获取上级 $parentInfo = AgentModel::query()->where('uid', $accountInfo['parent_uid'])->first(['username']); $res['parent'] = $parentInfo->username ?? ''; return $res; } }