perf(user): 优化用户资金操作逻辑

- 在 UserLogic 中,将用户资金的增加和减少操作从查询后更新改为直接更新
- 使用 where 条件更新用户 purchase_funds 和 now_money 字段,提高效率
- 移除了不必要的对象加载和 save 方法调用,简化了代码结构
This commit is contained in:
mkm 2025-02-06 16:01:37 +08:00
parent 81f9840993
commit 995a63949d

View File

@ -243,12 +243,10 @@ class UserLogic extends BaseLogic
$capitalFlowDao = new CapitalFlowLogic($find, 'user');
if ($params['type'] == 1) {
$capitalFlowDao->userIncome('system_purchase_add', 'system', 0, $params['purchase_funds'],$params['mark']??'',1);
$find->purchase_funds = bcadd($params['purchase_funds'], $find['purchase_funds'], 2);
$find->save();
User::where(['id' => $params['id']])->update(['purchase_funds' => bcadd($params['purchase_funds'], $find['purchase_funds'], 2)]);
} else {
$capitalFlowDao->userExpense('system_purchase_dec', 'system', 0, $params['purchase_funds'],$params['mark']??'');
$find->purchase_funds = bcsub($find['purchase_funds'],$params['purchase_funds'], 2);
$find->save();
User::where(['id' => $params['id']])->update(['purchase_funds' =>bcsub($find['purchase_funds'],$params['purchase_funds'], 2)]);
}
Db::commit();
return true;
@ -268,12 +266,10 @@ class UserLogic extends BaseLogic
$capitalFlowDao = new CapitalFlowLogic($find, 'user');
if ($params['type'] == 1) {
$capitalFlowDao->userIncome('system_balance_add', 'system', 0, $params['now_money'],$params['mark']??'');
$find->now_money = bcadd($params['now_money'], $find['now_money'], 2);
$find->save();
User::where(['id' => $params['id']])->update(['now_money' => bcadd($params['now_money'], $find['now_money'], 2)]);
} else {
$capitalFlowDao->userExpense('system_balance_reduce', 'system', 0, $params['now_money'],$params['mark']??'');
$find->now_money = bcsub($find['now_money'],$params['now_money'], 2);
$find->save();
User::where(['id' => $params['id']])->update(['now_money' =>bcsub($find['now_money'],$params['now_money'], 2)]);
}
Db::commit();
return true;