소스 검색

解决后台用户余额和积分修改时,因类型不同导致写入记录表无用记录的问题

Henry 3 년 전
부모
커밋
4275d769ea
2개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. 3 4
      application/admin/model/User.php
  2. 1 0
      composer.json

+ 3 - 4
application/admin/model/User.php

@@ -47,12 +47,11 @@ class User extends Model
 
         self::beforeUpdate(function ($row) {
             $changedata = $row->getChangedData();
-            if (isset($changedata['money'])) {
-                $origin = $row->getOriginData();
+            $origin = $row->getOriginData();
+            if (isset($changedata['money']) && (function_exists('bccomp') ? bccomp($changedata['money'], $origin['money'], 2) !== 0 : (double) $changedata['money'] !== (double) $origin['money'])) {
                 MoneyLog::create(['user_id' => $row['id'], 'money' => $changedata['money'] - $origin['money'], 'before' => $origin['money'], 'after' => $changedata['money'], 'memo' => '管理员变更金额']);
             }
-            if (isset($changedata['score'])) {
-                $origin = $row->getOriginData();
+            if (isset($changedata['score']) && (int) $changedata['score'] !== (int) $origin['score']) {
                 ScoreLog::create(['user_id' => $row['id'], 'score' => $changedata['score'] - $origin['score'], 'before' => $origin['score'], 'after' => $changedata['score'], 'memo' => '管理员变更积分']);
             }
         });

+ 1 - 0
composer.json

@@ -29,6 +29,7 @@
         "ext-json": "*",
         "ext-curl": "*",
         "ext-pdo": "*",
+        "ext-bcmath": "*",
         "txthinking/mailer": "^2.0"
     },
     "config": {