|
|
<?php |
|
|
|
|
|
|
|
|
require_once __DIR__ . '../../db.php'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getTodaysUploads($userId) { |
|
|
global $conn; |
|
|
$today = date('Y-m-d 00:00:00'); |
|
|
|
|
|
$stmt = $conn->prepare("SELECT * FROM uploads WHERE user_id = ? AND created_at >= ? ORDER BY created_at DESC"); |
|
|
$stmt->bind_param("is", $userId, $today); |
|
|
$stmt->execute(); |
|
|
$result = $stmt->get_result(); |
|
|
|
|
|
$uploads = []; |
|
|
while ($row = $result->fetch_assoc()) { |
|
|
$uploads[] = $row; |
|
|
} |
|
|
return $uploads; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getTodaysUploadStats($userId) { |
|
|
global $conn; |
|
|
$today = date('Y-m-d 00:00:00'); |
|
|
|
|
|
$stmt = $conn->prepare(" |
|
|
SELECT |
|
|
COUNT(*) AS total_uploads, |
|
|
SUM(CASE WHEN status = 'approved' THEN 1 ELSE 0 END) AS approved_uploads, |
|
|
IFNULL(SUM(reward_amount), 0) AS total_earnings |
|
|
FROM uploads |
|
|
WHERE user_id = ? AND created_at >= ? |
|
|
"); |
|
|
$stmt->bind_param("is", $userId, $today); |
|
|
$stmt->execute(); |
|
|
$result = $stmt->get_result(); |
|
|
|
|
|
return $result->fetch_assoc(); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function processFileUpload($userId, $fileData) { |
|
|
global $conn; |
|
|
|
|
|
$uploadDir = __DIR__ . '/../uploads/'; |
|
|
if (!is_dir($uploadDir)) { |
|
|
if (!mkdir($uploadDir, 0775, true)) { |
|
|
return ['success' => false, 'error' => 'Failed to create upload directory.']; |
|
|
} |
|
|
} |
|
|
|
|
|
$fileName = uniqid() . '_' . basename($fileData['name']); |
|
|
$filePath = $uploadDir . $fileName; |
|
|
|
|
|
if (move_uploaded_file($fileData['tmp_name'], $filePath)) { |
|
|
|
|
|
$rewardAmount = calculateRewardAmount($fileData['type'], $fileData['size']); |
|
|
|
|
|
|
|
|
$stmt = $conn->prepare(" |
|
|
INSERT INTO uploads (user_id, file_name, file_type, file_size, status, reward_amount, created_at) |
|
|
VALUES (?, ?, ?, ?, 'approved', ?, NOW()) |
|
|
"); |
|
|
$stmt->bind_param("issid", $userId, $fileName, $fileData['type'], $fileData['size'], $rewardAmount); |
|
|
$stmt->execute(); |
|
|
|
|
|
|
|
|
$stmt2 = $conn->prepare("UPDATE users SET meta_earnings = meta_earnings + ? WHERE id = ?"); |
|
|
$stmt2->bind_param("di", $rewardAmount, $userId); |
|
|
$stmt2->execute(); |
|
|
|
|
|
return [ |
|
|
'success' => true, |
|
|
'upload_id' => $conn->insert_id, |
|
|
'reward' => $rewardAmount |
|
|
]; |
|
|
} else { |
|
|
return ['success' => false, 'error' => 'File upload failed. Check permissions.']; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function calculateRewardAmount($fileType, $fileSize) { |
|
|
$baseReward = 50; |
|
|
$typeBonus = 0; |
|
|
|
|
|
if (strpos($fileType, 'image/') === 0) { |
|
|
$typeBonus = 10; |
|
|
} elseif (strpos($fileType, 'video/') === 0) { |
|
|
$typeBonus = 20; |
|
|
} |
|
|
|
|
|
$sizeBonus = 0; |
|
|
if ($fileSize > 10 * 1024 * 1024) { |
|
|
$sizeBonus = 15; |
|
|
} elseif ($fileSize > 5 * 1024 * 1024) { |
|
|
$sizeBonus = 10; |
|
|
} elseif ($fileSize > 1 * 1024 * 1024) { |
|
|
$sizeBonus = 5; |
|
|
} |
|
|
|
|
|
return $baseReward + $typeBonus + $sizeBonus; |
|
|
} |
|
|
?> |
|
|
|