Quellcode durchsuchen

改进Fund日志功能;更新Test文档;调整字体和资源文件

Your Name vor 8 Monaten
Ursprung
Commit
5f8f0199f5

+ 8 - 5
app/Module/Fund/AdminControllers/FundLogController.php

@@ -6,6 +6,7 @@ use App\Module\Fund\AdminControllers\Helper\FilterHelper;
 use App\Module\Fund\AdminControllers\Helper\FormHelper;
 use App\Module\Fund\AdminControllers\Helper\GridHelper;
 use App\Module\Fund\AdminControllers\Helper\ShowHelper;
+use App\Module\Fund\Models\FundModel;
 use App\Module\Fund\Services\AccountService;
 use App\Module\Fund\Services\LogService;
 use Spatie\RouteAttributes\Attributes\Resource;
@@ -132,13 +133,17 @@ class FundLogController extends AdminController
             $show->field('user_id', '用户ID');
             $helper->fieldFundId();
             $helper->fieldAmount();
+            $helper->field('before_balance','操作前');
+            $helper->field('later_balance','操作后');
             $helper->fieldOperateType();
             $show->field('remark', '备注');
             $helper->fieldTimestamp('create_time', '创建时间');
+            // $later_balance
+//            $before_balance
 
             // 显示关联的资金账户
             $show->relation('account', '资金账户', function ($model) {
-                $show = Show::make($model, new \App\Module\Fund\Models\FundAccount());
+                $show = Show::make($model, new FundModel( ));
 
                 // 在关联显示中也使用ShowHelper
                 $helper = new ShowHelper($show, $this);
@@ -149,10 +154,8 @@ class FundLogController extends AdminController
                 $show->field('user_id', '用户ID');
                 $helper->fieldFundId();
                 $helper->fieldBalance();
-                $helper->fieldStatus();
-                $show->field('fund_type', '资金类型')->as(function ($value) {
-                    return \App\Module\Fund\Enums\FUND_TYPE::getName($value);
-                });
+
+
                 $helper->fieldTimestamp('create_time', '创建时间');
                 $helper->fieldTimestamp('update_time', '更新时间');
 

+ 8 - 21
app/Module/Fund/AdminControllers/Helper/GridHelperTrait.php

@@ -35,8 +35,6 @@ trait GridHelperTrait
     /**
      * 添加资金余额列
      *
-     * 复用价值:高 - 统一处理余额的格式化显示,包括单位转换
-     *
      * @param string $field 字段名
      * @param string $label 标签名
      * @return Column
@@ -44,30 +42,19 @@ trait GridHelperTrait
     public function columnBalance(string $field = 'balance', string $label = '余额'): Column
     {
         return $this->grid->column($field, $label)->display(function ($value) {
-            return number_format($value / 1000, 3);
+            return number_format($value , 3,',');
         })->sortable();
     }
-
-    /**
-     * 添加资金状态列
-     *
-     * 复用价值:高 - 统一处理资金状态的显示,包括状态名称和标签样式
-     *
-     * @param string $field 字段名
-     * @param string $label 标签名
-     * @return Column
-     */
-    public function columnStatus(string $field = 'status', string $label = '状态'): Column
+    public function columnBalance1000(string $field = 'balance', string $label = '余额'): Column
     {
-        return $this->grid->column($field, $label)
-            ->using(FUND_STATUS::getNames())
-            ->label([
-                FUND_STATUS::NORMAL => 'success',
-                FUND_STATUS::FROZEN => 'warning',
-                FUND_STATUS::DELETED => 'danger',
-            ]);
+        return $this->grid->column($field, $label)->display(function ($value) {
+            return number_format($value / 1000, 3);
+        })->sortable();
     }
 
+
+
+
     /**
      * 添加操作金额列
      *

+ 24 - 14
app/Module/Fund/AdminControllers/Helper/ShowHelperTrait.php

@@ -50,26 +50,17 @@ trait ShowHelperTrait
         });
     }
 
-    /**
-     * 显示资金状态
-     *
-     * 复用价值:高 - 统一处理资金状态的显示,使用枚举类型
-     *
-     * @param string $field 字段名
-     * @param string $label 标签名
-     * @return Show\Field
-     */
-    public function fieldStatus(string $field = 'status', string $label = '状态'): Show\Field
+    public function fieldBalance1000(string $field = 'balance', string $label = '余额'): Show\Field
     {
         return $this->show->field($field, $label)->as(function ($value) {
-            return FUND_STATUS::getName($value);
+            return number_format($value / 1000, 3);
         });
     }
 
+
     /**
      * 显示操作金额
      *
-     * 复用价值:高 - 统一处理操作金额的格式化显示,包括正负值的颜色区分
      *
      * @param string $field 字段名
      * @param string $label 标签名
@@ -77,7 +68,26 @@ trait ShowHelperTrait
      */
     public function fieldAmount(string $field = 'amount', string $label = '操作金额'): Show\Field
     {
-        return $this->show->field($field, $label)->as(function ($value) {
+        return $this->show->field($field, $label)->unescape()->as(function ($value) {
+            if ($value > 0) {
+                return "<span class='text-success'>+{$value}</span>";
+            } elseif ($value < 0) {
+                return "<span class='text-danger'>{$value}</span>";
+            } else {
+                return "<span>{$value}</span>";
+            }
+        });
+    }
+
+
+    /**
+     * @param string $field
+     * @param string $label
+     * @return Show\Field
+     */
+    public function fieldAmount1000(string $field = 'amount', string $label = '操作金额'): Show\Field
+    {
+        return $this->show->field($field, $label)->unescape()->as(function ($value) {
             $formattedValue = number_format($value / 1000, 3);
             if ($value > 0) {
                 return "<span class='text-success'>+{$formattedValue}</span>";
@@ -101,7 +111,7 @@ trait ShowHelperTrait
     public function fieldOperateType(string $field = 'operate_type', string $label = '操作类型'): Show\Field
     {
         return $this->show->field($field, $label)->as(function ($value) {
-            return LOG_TYPE::getName($value);
+            return LOG_TYPE::{$value};
         });
     }
 

+ 32 - 21
app/Module/Fund/Docs/管理员资金操作-严谨版.md

@@ -58,6 +58,8 @@
 | admin_fund_id | int | 管理员虚拟用户的资金账户ID |
 | user_id | int | 目标用户ID |
 | user_fund_id | int | 目标用户资金账户ID |
+
+注意:`admin_fund_id` 和 `user_fund_id` 必须是相同类型的资金账户(即相同的 fund_type),不同类型的资金账户之间不允许进行转账操作。这确保了系统中不同类型的资金不会混合。
 | amount | bigint | 操作金额(毫为单位,正数为增加用户资金,负数为减少用户资金) |
 | operation_type | int | 操作类型(1:转账给用户, 2:从用户回收, 3:管理员账户充值) |
 | status | int | 状态 |
@@ -111,30 +113,36 @@
 
 ### 4.2 增加用户资金流程
 
-1. 管理员在后台选择用户的资金账户
-2. 管理员输入要增加的金额和备注信息
-3. 系统查询管理员关联的虚拟用户账户,验证账户余额是否充足
-4. 如果余额充足,系统执行资金转移:从管理员的虚拟用户账户扣除资金,增加目标用户账户余额
-5. 系统记录操作日志到 fund_admin_operation 表和 fund_logs 表
-6. 如果余额不足,系统提示管理员余额不足,操作失败
+1. 管理员在后台选择要操作的资金类型(fund_type)
+2. 管理员选择目标用户的资金账户(必须与选择的资金类型相同)
+3. 管理员输入要增加的金额和备注信息
+4. 系统查询管理员关联的虚拟用户账户,验证账户余额是否充足
+5. 系统验证管理员虚拟用户账户与目标用户账户的资金类型是否一致
+6. 如果余额充足且资金类型一致,系统执行资金转移:从管理员的虚拟用户账户扣除资金,增加目标用户账户余额
+7. 系统记录操作日志到 fund_admin_operation 表和 fund_logs 表
+8. 如果余额不足或资金类型不一致,系统提示错误信息,操作失败
 
 ### 4.3 减少用户资金流程
 
-1. 管理员在后台选择用户的资金账户
-2. 管理员输入要减少的金额和备注信息
-3. 系统验证用户账户余额是否充足
-4. 如果余额充足,系统执行资金转移:从用户账户扣除资金,增加管理员的虚拟用户账户余额
-5. 系统记录操作日志到 fund_admin_operation 表和 fund_logs 表
-6. 如果用户余额不足,系统提示用户余额不足,操作失败
+1. 管理员在后台选择要操作的资金类型(fund_type)
+2. 管理员选择目标用户的资金账户(必须与选择的资金类型相同)
+3. 管理员输入要减少的金额和备注信息
+4. 系统验证用户账户余额是否充足
+5. 系统查询管理员关联的虚拟用户账户
+6. 系统验证管理员虚拟用户账户与目标用户账户的资金类型是否一致
+7. 如果用户余额充足且资金类型一致,系统执行资金转移:从用户账户扣除资金,增加管理员的虚拟用户账户余额
+8. 系统记录操作日志到 fund_admin_operation 表和 fund_logs 表
+9. 如果用户余额不足或资金类型不一致,系统提示错误信息,操作失败
 
 ### 4.4 管理员账户充值流程
 
 1. 超级管理员在后台选择要充值的管理员
-2. 超级管理员输入充值金额和备注信息
-3. 系统查询管理员关联的虚拟用户账户
-4. 系统执行充值操作,增加管理员的虚拟用户账户余额
-5. 系统记录操作日志到 fund_admin_operation 表和 fund_logs 表
-6. 系统通知被充值的管理员
+2. 超级管理员选择要充值的资金类型(fund_type)
+3. 超级管理员输入充值金额和备注信息
+4. 系统查询管理员关联的虚拟用户账户
+5. 系统执行充值操作,增加管理员的虚拟用户账户余额
+6. 系统记录操作日志到 fund_admin_operation 表和 fund_logs 表
+7. 系统通知被充值的管理员
 
 ### 4.5 资金流转操作流程(保持不变)
 
@@ -180,6 +188,7 @@
    - 查询管理员关联的虚拟用户
    - 验证虚拟用户状态是否正常
    - 验证虚拟用户资金账户余额是否足够
+   - 验证管理员虚拟用户账户与目标用户账户的资金类型是否一致
 
 2. **事务处理**
    - 开始数据库事务,确保操作原子性
@@ -208,6 +217,7 @@
    - 验证虚拟用户状态是否正常
    - 验证目标用户账户是否存在
    - 验证目标用户账户余额是否足够
+   - 验证管理员虚拟用户账户与目标用户账户的资金类型是否一致
 
 2. **事务处理**
    - 开始数据库事务,确保操作原子性
@@ -320,7 +330,8 @@
 3. 操作金额使用毫为单位,但在界面上显示和输入时使用元为单位,系统会自动进行单位转换
 4. 所有操作都会记录详细的日志,便于后续审计和问题排查
 5. 资金流转只能在同一用户的不同资金账户之间进行,且币种必须一致
-6. 管理员的虚拟用户账户的资金不能直接用于业务操作,只能用于向用户转账
-7. 应定期审计管理员资金操作记录,确保操作的合法性和合理性
-8. 超级管理员应谨慎使用充值功能,避免过度增加系统中的资金总量
-9. 每个管理员都应该有自己的虚拟用户账户,不应共享账户,以确保操作的责任可追溯
+6. 管理员转账和回收资金时,必须确保管理员虚拟用户账户与目标用户账户的资金类型一致
+7. 管理员的虚拟用户账户的资金不能直接用于业务操作,只能用于向用户转账
+8. 应定期审计管理员资金操作记录,确保操作的合法性和合理性
+9. 超级管理员应谨慎使用充值功能,避免过度增加系统中的资金总量
+10. 每个管理员都应该有自己的虚拟用户账户,不应共享账户,以确保操作的责任可追溯

+ 5 - 22
app/Module/Fund/Models/FundLogModel.php

@@ -6,29 +6,12 @@ use App\Module\User\Models\User;
 use App\Module\User\Models\UserInfo;
 use UCore\ModelCore;
 
-/**
- * 资金日志表
- *
- * @property int $id
- * @property int $user_id 用户ID
- * @property int $fund_id 资金id
- * @property int $amount 操作金额,正值为收入,负值为支出
- * @property string $operate_id 上游操作id
- * @property string $operate_type 上游操作类型
- * @property string $remark 备注
- * @property int $create_time 最后更新时间
- * @property string $create_ip 最后更新ip
- * @property int $later_balance 在此之后的余额
- * @property int $before_balance 在此之前的余额
- * @property int $date_key 月份key
- * @property string $hash 防篡改哈希值
- * @property string $prev_hash 上一条记录的哈希值
- */
+
 /**
  * App\Module\Fund\Models\FundLogModel
- *
- * field start 
- * @property   int  $id  
+ * 资金日志表
+ * field start
+ * @property   int  $id
  * @property   int  $user_id  用户ID
  * @property   int  $fund_id  资金id
  * @property   int  $amount  操作金额,正值为收入,负值为支出
@@ -49,7 +32,7 @@ class FundLogModel extends ModelCore
 
     protected $table      = 'fund_logs';
 
-    // attrlist start 
+    // attrlist start
     protected $fillable = [
         'id',
         'user_id',

+ 1 - 1
app/Module/Test/DEV.md

@@ -1,4 +1,4 @@
-# 团队模块开发计划
+# 开发计划
 
 ## 1. 创建基本目录结构 ✅
 

+ 2 - 0
resources/css/app.css

@@ -1,3 +1,5 @@
+@import url('/fonts/figtree/figtree.css');
+
 @tailwind base;
 @tailwind components;
 @tailwind utilities;

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
vendor/laravel/framework/src/Illuminate/Foundation/resources/exceptions/renderer/components/layout.blade.php


+ 4 - 3
vendor/laravel/framework/src/Illuminate/Foundation/resources/health-up.blade.php

@@ -7,11 +7,12 @@
     <title>{{ config('app.name', 'Laravel') }}</title>
 
     <!-- Fonts -->
-    <link rel="preconnect" href="https://fonts.bunny.net">
-    <link href="https://fonts.bunny.net/css?family=figtree:400,600&display=swap" rel="stylesheet" />
+
+
+
 
     <!-- Styles -->
-    <script src="https://cdn.tailwindcss.com"></script>
+
 
     <script>
         tailwind.config = {

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.