validate($request, [ 'uid' => 'required' ]); $uid = $request->input('uid'); $userInfo = DB::table(getMiniProgramTableName(1, 'users'))->where('id', $uid)->first(); if (!$userInfo) { return null; } $ranseRecordTable = 'ranse_record_'.($uid % 8); $ranseIds = DB::table('promotions') ->where('uid', $this->getLoginUserId()) ->select('id')->pluck('id'); if($ranseIds->isEmpty()) { return null; } $ranseRecord = DB::table($ranseRecordTable)->whereIn('ranse_id', $ranseIds) ->orderBy('created_at', 'desc') ->first(); if(!$ranseRecord) { return null; } $totalChargeCount = DB::table('orders') ->where('uid', $uid) ->whereIn('promotion_id', $ranseIds) ->where('status', '<>' ,'UNPAID') ->count(); $result = [ 'uid' => $userInfo->id, 'ranse_start_at' => $ranseRecord->created_at ?: "", 'charge_coin' => $userInfo->charge_coin, 'reward_coin' => $userInfo->reward_coin, 'total_charge_count' => $totalChargeCount, 'miniprogram_name' => DB::table('miniprogram') ->where('id', $userInfo->miniprogram_id)->value('name'), 'user_created_at' => $userInfo->created_at, ]; return array_merge($result, WechatMinprogramUserService::getLevelText($uid)); } }