|
|
@@ -141,9 +141,20 @@ class BalanceLogService extends BaseService
|
|
|
if (in_array($change_type, static::$computeBackFlowChangeTypes)) {
|
|
|
BackflowService::updateOrCreate((string)$memberId, floatval($amount));
|
|
|
}
|
|
|
+
|
|
|
+ $data = [];
|
|
|
+ $data['member_id'] = $memberId;
|
|
|
+ $data['amount'] = $amount;
|
|
|
+ $data['before_balance'] = $before_balance;
|
|
|
+ $data['after_balance'] = $after_balance;
|
|
|
+ $data['change_type'] = $change_type;
|
|
|
+ $data['related_id'] = $related_id;
|
|
|
+ $data['remark'] = $remark;
|
|
|
+ if ($room_id) $data['room_id'] = $room_id;
|
|
|
+ $result = static::$MODEL::create($data);
|
|
|
|
|
|
//充值返现活动
|
|
|
- if ($change_type == '充值' || $change_type == '三方充值') {
|
|
|
+ if ( in_array($change_type, ['充值','人工充值','三方充值'])) {
|
|
|
$user = User::where('member_id', $memberId)->first();
|
|
|
//充值更新用户等级
|
|
|
$total_recharge = self::getTotalRecharge($memberId);
|
|
|
@@ -154,28 +165,27 @@ class BalanceLogService extends BaseService
|
|
|
$user->save();
|
|
|
}
|
|
|
|
|
|
+ $remark_amount = bcadd($amount, 0, 2);
|
|
|
//返现比例(给邀请人返现)
|
|
|
$rate = Config::where('field', 'recharge_rate')->first()->val ?? 0;
|
|
|
- $add_amount = bcmul($amount, $rate, 10);
|
|
|
- $add_amount = bcmul($add_amount, 100, 2);
|
|
|
+ $add_amount = bcmul($amount, $rate/100, 2);
|
|
|
if ($add_amount > 0) {
|
|
|
//被邀请人每次充值,都给邀请人返现,直接可用余额
|
|
|
$agent_user_code = $user->agent_user_code;
|
|
|
if (!empty($agent_user_code)) {
|
|
|
- $agent_member_id = User::where('agent_user_code', $agent_user_code)->first()->member_id;
|
|
|
+ $agent_member_id = User::where('user_code', $agent_user_code)->first()->member_id;
|
|
|
if (!empty($agent_member_id)) {
|
|
|
$balanceData = WalletService::updateBalance($agent_member_id, $add_amount);
|
|
|
- BalanceLogService::addLog($agent_member_id, $add_amount, $balanceData['before_balance'], $balanceData['after_balance'], '充值返现', $related_id, '被邀请人:'.$memberId."充值金额为:{$amount}");
|
|
|
+ BalanceLogService::addLog($agent_member_id, $add_amount, $balanceData['before_balance'], $balanceData['after_balance'], '充值返现', $related_id, '被邀请人:'.$memberId."充值金额为:{$remark_amount}");
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ $walletInfo = Wallet::where('member_id', $memberId)->first();
|
|
|
//即充即送-返彩活动
|
|
|
$bonusAmount = self::calculateRechargeBonus($amount,$memberId, $related_id);
|
|
|
if ($bonusAmount > 0) {
|
|
|
- $walletInfo = Wallet::where('member_id', $memberId)->first();
|
|
|
-
|
|
|
- return static::$MODEL::create([
|
|
|
+ static::$MODEL::create([
|
|
|
'type' => 2,
|
|
|
'member_id' => $memberId,
|
|
|
'amount' => $bonusAmount,
|
|
|
@@ -183,15 +193,16 @@ class BalanceLogService extends BaseService
|
|
|
'after_balance' => bcadd($walletInfo->frozen_balance, $bonusAmount, 2),
|
|
|
'change_type' => '即充即送',
|
|
|
'related_id' => $related_id,
|
|
|
- 'remark' => '充值金额为:'.$amount,
|
|
|
+ 'remark' => '充值金额为:'.$remark_amount,
|
|
|
]);
|
|
|
+ $walletInfo->frozen_balance = bcadd($walletInfo->frozen_balance, $bonusAmount, 2);
|
|
|
}
|
|
|
|
|
|
//老用户回归-返彩活动
|
|
|
$bonusAmount = self::calculateUserReturnRechargeBonus($amount,$memberId, $level, $related_id);
|
|
|
+
|
|
|
if ($bonusAmount > 0) {
|
|
|
- $walletInfo = Wallet::where('member_id', $memberId)->first();
|
|
|
- return static::$MODEL::create([
|
|
|
+ static::$MODEL::create([
|
|
|
'type' => 2,
|
|
|
'member_id' => $memberId,
|
|
|
'amount' => $bonusAmount,
|
|
|
@@ -199,21 +210,14 @@ class BalanceLogService extends BaseService
|
|
|
'after_balance' => bcadd($walletInfo->frozen_balance, $bonusAmount, 2),
|
|
|
'change_type' => '老用户回归',
|
|
|
'related_id' => $related_id,
|
|
|
- 'remark' => '充值金额为:'.$amount,
|
|
|
+ 'remark' => '充值金额为:'.$remark_amount,
|
|
|
]);
|
|
|
+ $walletInfo->frozen_balance = bcadd($walletInfo->frozen_balance, $bonusAmount, 2);
|
|
|
}
|
|
|
+ $walletInfo->save();
|
|
|
}
|
|
|
-
|
|
|
- $data = [];
|
|
|
- $data['member_id'] = $memberId;
|
|
|
- $data['amount'] = $amount;
|
|
|
- $data['before_balance'] = $before_balance;
|
|
|
- $data['after_balance'] = $after_balance;
|
|
|
- $data['change_type'] = $change_type;
|
|
|
- $data['related_id'] = $related_id;
|
|
|
- $data['remark'] = $remark;
|
|
|
- if ($room_id) $data['room_id'] = $room_id;
|
|
|
- return static::$MODEL::create($data);
|
|
|
+
|
|
|
+ return $result;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -229,9 +233,9 @@ class BalanceLogService extends BaseService
|
|
|
* @param float $totalAmount 历史累计充值金额
|
|
|
* @return int 等级(1-5)
|
|
|
*/
|
|
|
- public function calculateLevel(float $totalAmount): int
|
|
|
+ public static function calculateLevel(float $totalAmount): int
|
|
|
{
|
|
|
- $levelList = Level::orderBy('recharge', 'desc')->select()->toArray();
|
|
|
+ $levelList = Level::orderBy('recharge', 'desc')->get()->toArray();
|
|
|
foreach ($levelList as $item) {
|
|
|
if ($totalAmount >= $item['recharge']) {
|
|
|
return $item['level'];
|
|
|
@@ -356,10 +360,9 @@ class BalanceLogService extends BaseService
|
|
|
return false;
|
|
|
}
|
|
|
$params = $activity->params ? json_decode($activity->params, true) : [];
|
|
|
- if (!$params || !empty($params['reward_ratio'])) {
|
|
|
+ if (!$params || empty($params['reward_ratio'])) {
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
// 规则1:单笔最低金额
|
|
|
if (isset($params['min_recharge_amount']) && $amount < $params['min_recharge_amount']) {
|
|
|
return false;
|
|
|
@@ -372,7 +375,7 @@ class BalanceLogService extends BaseService
|
|
|
->whereBetween('created_at', [date('Y-m-d 00:00:00'), date('Y-m-d 23:59:59')])
|
|
|
->whereIn('change_type', ['充值','三方充值'])
|
|
|
->count();
|
|
|
- if ($dailyOrder > $params['limit']) {
|
|
|
+ if ($dailyOrder > $params['reward_limit_count']) {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
@@ -403,7 +406,7 @@ class BalanceLogService extends BaseService
|
|
|
return false;
|
|
|
}
|
|
|
$params = $activity->params ? json_decode($activity->params, true) : [];
|
|
|
- if (!$params || !empty($params['no_login_days']) || !empty($params['reward_rules'])) {
|
|
|
+ if (!$params || empty($params['no_login_days']) || empty($params['reward_rules'])) {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
@@ -414,6 +417,7 @@ class BalanceLogService extends BaseService
|
|
|
|
|
|
// 规则2:多少天未登录
|
|
|
$noLoginDays = UserLogin::getNotLoginDays($memberId);
|
|
|
+
|
|
|
if ($noLoginDays < $params['no_login_days']) {
|
|
|
return false;
|
|
|
}
|