Browse Source

优化金额扣减算法

master
wanghongjun 2 years ago
parent
commit
3cb9623e28
  1. 4
      app/logic/Zone.php
  2. 42
      app/model/User.php

4
app/logic/Zone.php

@ -50,8 +50,6 @@ class Zone
$data = $resData['data']; $data = $resData['data'];
$save_data = $resData['save_data']; $save_data = $resData['save_data'];
# 开启事务 # 开启事务
$connection = Db::connect(); $connection = Db::connect();
try { try {
@ -115,7 +113,7 @@ class Zone
if ($awards_amount > 0) { if ($awards_amount > 0) {
# 修改用户余额 # 修改用户余额
$balance = User::IncrBalance($user_id,$awards_amount); $balance = User::IncrWithdrawalBalance($user_id,$awards_amount);
# 中奖做记录 # 中奖做记录
AwardsRecords::createRecords($user_id,$c_r_id,$awards_amount,$balance); AwardsRecords::createRecords($user_id,$c_r_id,$awards_amount,$balance);

42
app/model/User.php

@ -164,7 +164,7 @@ class User extends Model
} }
/** /**
* 扣减余额 * 扣减余额(消费)
* @param $user_id * @param $user_id
* @param $balance * @param $balance
* @return float|mixed * @return float|mixed
@ -176,13 +176,12 @@ class User extends Model
{ {
$user = self::find($user_id); $user = self::find($user_id);
$user->balance = round($user->balance - $balance,2); $user->balance = round($user->balance - $balance,2);
$user->withdrawal_balance = $user->balance;
$user->save(); $user->save();
return $user->balance; return $user->balance;
} }
/** /**
* 增加余额 * 增加余额(充值、上分)
* @param $user_id * @param $user_id
* @param $balance * @param $balance
* @return float|mixed * @return float|mixed
@ -194,11 +193,46 @@ class User extends Model
{ {
$user = self::find($user_id); $user = self::find($user_id);
$user->balance = round($user->balance + $balance,2); $user->balance = round($user->balance + $balance,2);
$user->withdrawal_balance = $user->balance;
$user->save(); $user->save();
return $user->balance; return $user->balance;
} }
/**
* 扣除可提余额 (提现、下分)
* @param $user_id
* @param $balance
* @return float|mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author whj
* @date 2023-08-30 17:31
*/
public static function decrWithdrawalBalance($user_id,$balance)
{
$user = self::find($user_id);
$user->withdrawal_balance = round($user->withdrawal_balance - $balance,2);
$user->save();
return $user->withdrawal_balance;
}
/**
* 增加可提余额(中奖)
* @param $user_id
* @param $balance
* @return float|mixed
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public static function IncrWithdrawalBalance($user_id,$balance)
{
$user = self::find($user_id);
$user->withdrawal_balance = round($user->withdrawal_balance + $balance,2);
$user->save();
return $user->withdrawal_balance;
}
/** /**
* 生成盐值 * 生成盐值
* @return string * @return string

Loading…
Cancel
Save