更新增加统计【活动期间输赢总数据】
This commit is contained in:
@@ -139,6 +139,11 @@ class Playx extends Api
|
||||
return MallPointsConversion::configForConversion();
|
||||
}
|
||||
|
||||
private function dailyPushSettlementDay(): string
|
||||
{
|
||||
return date('Y-m-d');
|
||||
}
|
||||
|
||||
private function syncAssetByDailyPush(
|
||||
string $playxUserId,
|
||||
string $username,
|
||||
@@ -146,7 +151,10 @@ class Playx extends Api
|
||||
int $convertedPoints,
|
||||
int $todayLimit,
|
||||
bool $applyAssetDelta,
|
||||
string $phone = ''
|
||||
string $phone = '',
|
||||
?array $pointsConfig = null,
|
||||
?float $yesterdayWinLossNet = null,
|
||||
?float $previousYesterdayWinLossNet = null
|
||||
): ?MallUserAsset
|
||||
{
|
||||
$asset = $this->ensureAssetForPlayx($playxUserId, $username, $phone);
|
||||
@@ -169,6 +177,16 @@ class Playx extends Api
|
||||
MallPointsConversion::applyDailyConversionDelta($asset, $convertedPoints);
|
||||
}
|
||||
$asset->today_limit = $todayLimit;
|
||||
if (is_array($pointsConfig) && $yesterdayWinLossNet !== null) {
|
||||
MallPointsConversion::applyEventPeriodWinLossForDailyPush(
|
||||
$asset,
|
||||
$date,
|
||||
$yesterdayWinLossNet,
|
||||
$pointsConfig,
|
||||
$this->dailyPushSettlementDay(),
|
||||
$previousYesterdayWinLossNet
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$asset->save();
|
||||
@@ -234,7 +252,7 @@ class Playx extends Api
|
||||
}
|
||||
|
||||
$pointsConfig = $this->getPointsConversionConfig();
|
||||
$unlockRatio = floatval($pointsConfig['unlock_ratio'] ?? 0);
|
||||
$settlementDay = $this->dailyPushSettlementDay();
|
||||
|
||||
$results = [];
|
||||
$allDeduped = true;
|
||||
@@ -255,8 +273,8 @@ class Playx extends Api
|
||||
|
||||
$exists = MallDailyPush::where('user_id', $playxUserId)->where('date', $date)->find();
|
||||
if ($exists) {
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig);
|
||||
$todayLimit = intval(round(floatval($yesterdayTotalDeposit) * $unlockRatio));
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig, $settlementDay);
|
||||
$todayLimit = MallPointsConversion::dailyPushTodayLimit($date, floatval($yesterdayTotalDeposit), $pointsConfig, $settlementDay);
|
||||
$asset = $this->syncAssetByDailyPush($playxUserId, $username, $date, $convertedPoints, $todayLimit, false, $phone);
|
||||
if (!$asset) {
|
||||
return $this->error(__('Failed to ensure PlayX user asset'));
|
||||
@@ -283,16 +301,16 @@ class Playx extends Api
|
||||
'lifetime_total_withdraw' => $lifetimeTotalWithdraw,
|
||||
'create_time' => time(),
|
||||
];
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig);
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig, $settlementDay);
|
||||
$pushData['converted_points'] = $convertedPoints;
|
||||
if ($lifetimeWinLossNet !== null) {
|
||||
$pushData['lifetime_win_loss_net'] = $lifetimeWinLossNet;
|
||||
}
|
||||
MallDailyPush::create($pushData);
|
||||
|
||||
$todayLimit = intval(round(floatval($yesterdayTotalDeposit) * $unlockRatio));
|
||||
$todayLimit = MallPointsConversion::dailyPushTodayLimit($date, floatval($yesterdayTotalDeposit), $pointsConfig, $settlementDay);
|
||||
|
||||
$asset = $this->syncAssetByDailyPush($playxUserId, $username, $date, $convertedPoints, $todayLimit, true, $phone);
|
||||
$asset = $this->syncAssetByDailyPush($playxUserId, $username, $date, $convertedPoints, $todayLimit, true, $phone, $pointsConfig, floatval($yesterdayWinLossNet));
|
||||
if (!$asset) {
|
||||
throw new \RuntimeException(__('Failed to ensure PlayX user asset'));
|
||||
}
|
||||
@@ -336,9 +354,9 @@ class Playx extends Api
|
||||
$exists = MallDailyPush::where('user_id', $playxUserId)->where('date', $date)->find();
|
||||
if ($exists) {
|
||||
$pointsConfig = $this->getPointsConversionConfig();
|
||||
$unlockRatio = floatval($pointsConfig['unlock_ratio'] ?? 0);
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig);
|
||||
$todayLimit = intval(round(floatval($yesterdayTotalDeposit) * $unlockRatio));
|
||||
$settlementDay = $this->dailyPushSettlementDay();
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig, $settlementDay);
|
||||
$todayLimit = MallPointsConversion::dailyPushTodayLimit($date, floatval($yesterdayTotalDeposit), $pointsConfig, $settlementDay);
|
||||
$asset = $this->syncAssetByDailyPush(
|
||||
$playxUserId,
|
||||
strval($body['username'] ?? ''),
|
||||
@@ -363,6 +381,7 @@ class Playx extends Api
|
||||
Db::startTrans();
|
||||
try {
|
||||
$pointsConfig = $this->getPointsConversionConfig();
|
||||
$settlementDay = $this->dailyPushSettlementDay();
|
||||
$lifetimeWinLossNet = null;
|
||||
if (isset($body['lifetime_win_loss_net']) && is_numeric($body['lifetime_win_loss_net'])) {
|
||||
$lifetimeWinLossNet = floatval($body['lifetime_win_loss_net']);
|
||||
@@ -377,15 +396,14 @@ class Playx extends Api
|
||||
'lifetime_total_withdraw' => $body['lifetime_total_withdraw'] ?? 0,
|
||||
'create_time' => time(),
|
||||
];
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig);
|
||||
$convertedPoints = MallPointsConversion::dailyConvertedPoints($date, floatval($yesterdayWinLossNet), $pointsConfig, $settlementDay);
|
||||
$pushData['converted_points'] = $convertedPoints;
|
||||
if ($lifetimeWinLossNet !== null) {
|
||||
$pushData['lifetime_win_loss_net'] = $lifetimeWinLossNet;
|
||||
}
|
||||
MallDailyPush::create($pushData);
|
||||
|
||||
$unlockRatio = floatval($pointsConfig['unlock_ratio'] ?? 0);
|
||||
$todayLimit = intval(round(floatval($yesterdayTotalDeposit) * $unlockRatio));
|
||||
$todayLimit = MallPointsConversion::dailyPushTodayLimit($date, floatval($yesterdayTotalDeposit), $pointsConfig, $settlementDay);
|
||||
|
||||
$asset = $this->syncAssetByDailyPush(
|
||||
$playxUserId,
|
||||
@@ -394,7 +412,9 @@ class Playx extends Api
|
||||
$convertedPoints,
|
||||
$todayLimit,
|
||||
true,
|
||||
$phone
|
||||
$phone,
|
||||
$pointsConfig,
|
||||
floatval($yesterdayWinLossNet)
|
||||
);
|
||||
if (!$asset) {
|
||||
throw new \RuntimeException(__('Failed to ensure PlayX user asset'));
|
||||
|
||||
Reference in New Issue
Block a user