From ab083686a812f0b3fdc215e24206e450dac58416 Mon Sep 17 00:00:00 2001 From: Karson Date: Tue, 6 Apr 2021 12:03:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=AF=E5=88=86=E5=92=8C?= =?UTF-8?q?=E4=BD=99=E9=A2=9D=E5=B9=B6=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/common/model/User.php | 61 +++++++++++++++++++------------ 1 file changed, 37 insertions(+), 24 deletions(-) diff --git a/application/common/model/User.php b/application/common/model/User.php index c32598c9..097ed4ae 100644 --- a/application/common/model/User.php +++ b/application/common/model/User.php @@ -2,6 +2,7 @@ namespace app\common\model; +use think\Db; use think\Model; /** @@ -22,8 +23,8 @@ class User extends Model /** * 获取个人URL - * @param string $value - * @param array $data + * @param string $value + * @param array $data * @return string */ public function getUrlAttr($value, $data) @@ -33,8 +34,8 @@ class User extends Model /** * 获取头像 - * @param string $value - * @param array $data + * @param string $value + * @param array $data * @return string */ public function getAvatarAttr($value, $data) @@ -57,8 +58,8 @@ class User extends Model /** * 获取验证字段数组值 - * @param string $value - * @param array $data + * @param string $value + * @param array $data * @return object */ public function getVerificationAttr($value, $data) @@ -87,15 +88,21 @@ class User extends Model */ public static function money($money, $user_id, $memo) { - $user = self::get($user_id); - if ($user && $money != 0) { - $before = $user->money; - //$after = $user->money + $money; - $after = function_exists('bcadd') ? bcadd($user->money, $money, 2) : $user->money + $money; - //更新会员信息 - $user->save(['money' => $after]); - //写入日志 - MoneyLog::create(['user_id' => $user_id, 'money' => $money, 'before' => $before, 'after' => $after, 'memo' => $memo]); + Db::startTrans(); + try { + $user = self::lock(true)->find($user_id); + if ($user && $money != 0) { + $before = $user->money; + //$after = $user->money + $money; + $after = function_exists('bcadd') ? bcadd($user->money, $money, 2) : $user->money + $money; + //更新会员信息 + $user->save(['money' => $after]); + //写入日志 + MoneyLog::create(['user_id' => $user_id, 'money' => $money, 'before' => $before, 'after' => $after, 'memo' => $memo]); + } + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); } } @@ -107,15 +114,21 @@ class User extends Model */ public static function score($score, $user_id, $memo) { - $user = self::get($user_id); - if ($user && $score != 0) { - $before = $user->score; - $after = $user->score + $score; - $level = self::nextlevel($after); - //更新会员信息 - $user->save(['score' => $after, 'level' => $level]); - //写入日志 - ScoreLog::create(['user_id' => $user_id, 'score' => $score, 'before' => $before, 'after' => $after, 'memo' => $memo]); + Db::startTrans(); + try { + $user = self::lock(true)->find($user_id); + if ($user && $score != 0) { + $before = $user->score; + $after = $user->score + $score; + $level = self::nextlevel($after); + //更新会员信息 + $user->save(['score' => $after, 'level' => $level]); + //写入日志 + ScoreLog::create(['user_id' => $user_id, 'score' => $score, 'before' => $before, 'after' => $after, 'memo' => $memo]); + } + Db::commit(); + } catch (\Exception $e) { + Db::rollback(); } }