| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App\Repositories;
- use App\Models\Mongo\AgentAttrsLogsModel;
- use App\Models\Mongo\AgentAttrsTodayModel;
- use App\Models\Mongo\PayLogsModel;
- use App\Models\Mongo\UsersModel;
- use App\Models\Mysql\AgentAttrsModel;
- use App\Models\Mysql\AgentModel;
- use Carbon\Carbon;
- use KZ2\Laravel\Repositories\Eloquent\Repository;
- class AgentAttrsRepository extends Repository
- {
- public function model()
- {
- return AgentAttrsModel::class;
- }
- /**
- * 创建一个.
- * @param $uid
- * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model
- */
- public function createOne($uid)
- {
- $setarr = [
- 'agent_uid' => $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;
- }
- }
|