|
|
@@ -26,16 +26,12 @@ class OrderServices
|
|
|
public $FirstCharge = 30;
|
|
|
public $FirstChargeGive = 20;
|
|
|
|
|
|
- public $FirstGiftID = 201;
|
|
|
+ public $FirstGiftID = 301;
|
|
|
private $first_pay = null;
|
|
|
|
|
|
public function __construct()
|
|
|
{
|
|
|
- $first_pay = DB::table('agent.dbo.recharge_gear')->where('first_pay', 1)->first();
|
|
|
- $this->first_pay = $first_pay;
|
|
|
- $this->FirstCharge = (int)$first_pay->favorable_price;
|
|
|
- $this->FirstChargeGive = (int)$first_pay->give;
|
|
|
- $this->FirstGiftID = (int)$first_pay->gift_id;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -53,36 +49,17 @@ class OrderServices
|
|
|
if (!empty($GiftsID)) {
|
|
|
|
|
|
if ($GiftsID == 301) { // 礼包--首冲
|
|
|
- $GiftsData = [
|
|
|
- 'UserID' => $user_id,
|
|
|
- 'GiftsID' => $GiftsID,
|
|
|
- 'BuyCount' => 1,
|
|
|
- 'LastBuyDate' => date('Y-m-d H:i:s')
|
|
|
- ];
|
|
|
- // 卖出去数量 +1
|
|
|
- DB::connection('write')->table('QPAccountsDB.dbo.FirstRechargeGifts')->where('GiftsID', $GiftsID)->increment('TotalCount');
|
|
|
- $userGifts = DB::connection('write')->table('QPAccountsDB.dbo.UserFirstRechargeGifts')->where('UserID', $user_id)->where('GiftsID', $GiftsID)->first();
|
|
|
-
|
|
|
- if ($userGifts) {
|
|
|
- DB::connection('write')->table('QPAccountsDB.dbo.UserFirstRechargeGifts')->where('UserID', $user_id)->where('GiftsID', $GiftsID)->increment('BuyCount');
|
|
|
- } else {
|
|
|
- DB::connection('write')->table('QPAccountsDB.dbo.UserFirstRechargeGifts')->insert($GiftsData);
|
|
|
- }
|
|
|
|
|
|
- // 给服务端更新首冲状态
|
|
|
- DB::connection('write')->table('QPAccountsDB.dbo.UserTabData')
|
|
|
- ->where('UserID', $user_id)
|
|
|
- ->update(['RechargeGiftTime' => date('Y-m-d H:i:s')]);
|
|
|
|
|
|
- $Gifts = DB::connection('write')->table('QPAccountsDB.dbo.FirstRechargeGifts')->where('GiftsID', $GiftsID)->first();
|
|
|
- $favorable_price = $Gifts->AllScore;
|
|
|
- $give = $Gifts->ExtraScore;
|
|
|
- $Recharge = $Gifts->Price;
|
|
|
+ $Gifts = DB::connection('write')->table('agent.dbo.recharge_gift')->where('gift_id', $GiftsID)->first();
|
|
|
+ $favorable_price = round($Gifts->bonus_instantly*$payAmt/100,2);
|
|
|
+ $give = $favorable_price-$payAmt;
|
|
|
+ $Recharge = $payAmt;
|
|
|
$czReason = 50;
|
|
|
$cjReason = 51;
|
|
|
}else if ($GiftsID > 400) {
|
|
|
$Status = 1;
|
|
|
- $recharge_gear = DB::connection('write')->table('agent.dbo.recharge_gear')->where('first_pay', 0)->where('status', $Status)->where('money', $payAmt)->select('favorable_price', 'give')->first();
|
|
|
+ $recharge_gear = DB::connection('write')->table('agent.dbo.recharge_gear')->where('status', $Status)->where('money', $payAmt)->select('favorable_price', 'give')->first();
|
|
|
if(!$recharge_gear){
|
|
|
$Recharge=$payAmt;
|
|
|
$give=0;
|
|
|
@@ -99,7 +76,7 @@ class OrderServices
|
|
|
} else { // 普通订单
|
|
|
|
|
|
$Status = 1;
|
|
|
- $recharge_gear = DB::connection('write')->table('agent.dbo.recharge_gear')->where('first_pay', 0)->where('status', $Status)->where('money', $payAmt)->select('favorable_price', 'give')->first();
|
|
|
+ $recharge_gear = DB::connection('write')->table('agent.dbo.recharge_gear')->where('status', $Status)->where('money', $payAmt)->select('favorable_price', 'give')->first();
|
|
|
if(!$recharge_gear){
|
|
|
$Recharge=$payAmt;
|
|
|
$give=0;
|
|
|
@@ -149,18 +126,34 @@ class OrderServices
|
|
|
->where('UserID', $user_id)
|
|
|
->insert(['Recharge' => $payAmt, 'UserID' => $user_id]);
|
|
|
|
|
|
- /* TODO
|
|
|
- * 金币银币切换 GameScoreInfo 将score的数据复制到 InsureScore 把Score 字段置0 把 ScoreChange字段设置成1
|
|
|
- * 清理用户的数据
|
|
|
- * GameScoreInfo的MaxScore MaxWinscore清0
|
|
|
- * RecordUserTotalStatistics 表 数据清0
|
|
|
- * RecordUserDataStatisticsNew 表数据 清0
|
|
|
- * RecordUserGameCount 关于用户的数据删除
|
|
|
- *
|
|
|
- */
|
|
|
+ // 首次充值:金币银币切换 + 数据清理
|
|
|
+ /*
|
|
|
+ * 金币银币切换 GameScoreInfo 将score的数据复制到 InsureScore 把Score 字段置0 把 ScoreChange字段设置成1
|
|
|
+ * 清理用户的数据
|
|
|
+ * GameScoreInfo的MaxScore MaxWinscore清0
|
|
|
+ * RecordUserTotalStatistics 表 数据清0
|
|
|
+ * RecordUserDataStatisticsNew 表数据 清0
|
|
|
+ * RecordUserGameCount 关于用户的数据删除
|
|
|
+ *
|
|
|
+*/
|
|
|
+
|
|
|
+ try {
|
|
|
+ $this->switchToInsureScoreAndCleanData($user_id);
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ \Log::error('首次充值-金币银币切换失败', [
|
|
|
+ 'user_id' => $user_id,
|
|
|
+ 'error' => $e->getMessage()
|
|
|
+ ]);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
|
+ //在这里更新 RecordUserTotalStatistics 数据 将LastRechargeValue字段更新为payAmt 如果不存在则插入
|
|
|
+ DB::connection('write')->table('QPRecordDB.dbo.RecordUserTotalStatistics')
|
|
|
+ ->updateOrInsert(['UserID' => $user_id], ['LastRechargeValue' => $payAmt]);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|
|
|
if ($Recharge > 0) {
|
|
|
@@ -179,7 +172,7 @@ class OrderServices
|
|
|
|
|
|
|
|
|
|
|
|
- if ($payAmt > 0) {
|
|
|
+ if ($payAmt > 0 && false) {
|
|
|
try {
|
|
|
$userInfo = DB::table(TableName::QPAccountsDB() . 'AccountsInfo')
|
|
|
->where('UserID', $user_id)
|
|
|
@@ -339,4 +332,93 @@ class OrderServices
|
|
|
// Log::info('AF 执行时间:' . ((Helper::millisecond() - $startTime) / 1000));
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 首次充值:金币银币切换 + 数据清理
|
|
|
+ * @param int $user_id 用户ID
|
|
|
+ */
|
|
|
+ private function switchToInsureScoreAndCleanData($user_id)
|
|
|
+ {
|
|
|
+ \Log::info('开始执行金币银币切换', ['user_id' => $user_id]);
|
|
|
+
|
|
|
+ try {
|
|
|
+ // 1. GameScoreInfo: 将Score的数据复制到InsureScore,把Score字段置0,把ScoreChange字段设置成1
|
|
|
+ $scoreInfo = DB::connection('write')->table('QPTreasureDB.dbo.GameScoreInfo')
|
|
|
+ ->where('UserID', $user_id)
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ if ($scoreInfo) {
|
|
|
+ DB::connection('write')->table('QPTreasureDB.dbo.GameScoreInfo')
|
|
|
+ ->where('UserID', $user_id)
|
|
|
+ ->update([
|
|
|
+ 'InsureScore' => $scoreInfo->Score, // 将Score复制到InsureScore
|
|
|
+ 'Score' => 0, // Score置0
|
|
|
+ 'ScoreChange' => 1, // ScoreChange设置成1
|
|
|
+ 'MaxScore' => 0, // MaxScore清0
|
|
|
+ 'MaxWinScore' => 0 // MaxWinScore清0
|
|
|
+ ]);
|
|
|
+
|
|
|
+ \Log::info('GameScoreInfo切换成功', [
|
|
|
+ 'user_id' => $user_id,
|
|
|
+ 'original_score' => $scoreInfo->Score,
|
|
|
+ 'insure_score' => $scoreInfo->Score
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 2. RecordUserTotalStatistics 表数据清0
|
|
|
+ $totalStats = DB::connection('write')->table('QPRecordDB.dbo.RecordUserTotalStatistics')
|
|
|
+ ->where('UserID', $user_id)
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ if ($totalStats) {
|
|
|
+ DB::connection('write')->table('QPRecordDB.dbo.RecordUserTotalStatistics')
|
|
|
+ ->where('UserID', $user_id)
|
|
|
+ ->update([
|
|
|
+ 'Winning' => 0,
|
|
|
+ 'LostInning' => 0,
|
|
|
+ 'Revenue' => 0,
|
|
|
+ 'WinScore' => 0,
|
|
|
+ 'LostScore' => 0,
|
|
|
+ 'Handsel' => 0,
|
|
|
+ 'DrawBase' => 0,
|
|
|
+ 'TotalBet' => 0,
|
|
|
+ 'TotalScore' => 0,
|
|
|
+ 'MaxDrawBase' => 0,
|
|
|
+ 'MaxScore' => 0,
|
|
|
+ 'MaxWinScore' => 0,
|
|
|
+ 'Rounds' => 0,
|
|
|
+ 'ProtectedRounds' => 0
|
|
|
+ ]);
|
|
|
+
|
|
|
+ \Log::info('RecordUserTotalStatistics清0成功', ['user_id' => $user_id]);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 3. RecordUserDataStatisticsNew 表数据清0
|
|
|
+ DB::connection('write')->table('QPRecordDB.dbo.RecordUserDataStatisticsNew')
|
|
|
+ ->where('UserID', $user_id)
|
|
|
+ ->delete();
|
|
|
+
|
|
|
+ \Log::info('RecordUserDataStatisticsNew清0成功', ['user_id' => $user_id]);
|
|
|
+
|
|
|
+ // 4. RecordUserGameCount 关于用户的数据删除
|
|
|
+ DB::connection('write')->table('QPRecordDB.dbo.RecordUserGameCount')
|
|
|
+ ->where('UserID', $user_id)
|
|
|
+ ->delete();
|
|
|
+
|
|
|
+ \Log::info('RecordUserGameCount清除成功', ['user_id' => $user_id]);
|
|
|
+
|
|
|
+ \Log::info('金币银币切换完成', [
|
|
|
+ 'user_id' => $user_id,
|
|
|
+ 'insure_score' => $scoreInfo->Score ?? 0
|
|
|
+ ]);
|
|
|
+
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ \Log::error('金币银币切换异常', [
|
|
|
+ 'user_id' => $user_id,
|
|
|
+ 'error' => $e->getMessage(),
|
|
|
+ 'trace' => $e->getTraceAsString()
|
|
|
+ ]);
|
|
|
+ throw $e;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|