You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在管理后台添加输入框实现数据库多表价格按百分比调整

实现步骤

1. 修正批量更新SQL逻辑

你当前写的SQL计算逻辑有误,正确的价格调整计算规则和你原Twig过滤器逻辑对齐即可:原始价格 * (1 + 输入百分比 / 100),再保留到十位。比如上调10%就是价格乘1.1,下调5%就是价格乘0.9。

2. 后台表单改造

给现有输入框增加表单提交和二次确认逻辑,避免误操作:

<form action="/your-update-price-route" method="POST" onsubmit="return confirm('确定要批量调整所有价格吗?该操作不可撤销!')">
    <!-- 这里加对应框架的CSRF令牌,比如Laravel的@csrf -->
    <div>
        <label>价格调整百分比(正数为上调,负数为下调):</label>
        <input type="number" name="adjust_percent" step="0.1" min="-99" max="1000" required>
    </div>
    <button type="submit">确认调整</button>
</form>

3. 后端批量更新逻辑编写

基于你在用的Laravel框架,用事务包裹所有更新操作,避免部分更新成功部分失败导致数据不一致:

public function batchUpdatePrice(Request $request)
{
    // 参数校验
    $validated = $request->validate([
        'adjust_percent' => 'required|numeric|min:-99|max:1000'
    ]);
    $percent = $validated['adjust_percent'];

    \DB::beginTransaction();
    try {
        // 需要更新的表和对应价格字段,有多个就依次添加
        // 更新第一个表
        \DB::statement(
            "UPDATE table1 SET price = ROUND(price * (1 + ? / 100), -1)",
            [$percent]
        );
        // 更新第二个表,按需添加
        \DB::statement(
            "UPDATE table2 SET sale_price = ROUND(sale_price * (1 + ? / 100), -1)",
            [$percent]
        );
        // 更多表更新逻辑继续加...

        // 原调整系数清空,避免后续前端重复计算
        \DB::table('another_pricelist_edit')
            ->where('id', 1)
            ->update(['price_edit_kiev' => 0]);

        \DB::commit();
        return back()->with('success', '价格批量调整成功');
    } catch (\Exception $e) {
        \DB::rollBack();
        return back()->withErrors('价格调整失败:' . $e->getMessage());
    }
}

4. 清理冗余逻辑

  • 删掉Twig模板中的| price_kiev过滤器调用,直接输出原始价格即可:
<td class="column-3">
{{ item.price_kiev_1 | number_format(0, '', ' ' ) }}
</td>
  • 不需要的Twig过滤器、getPriceEditKiev方法可以直接删除,避免后续逻辑混乱。
注意事项
  • 执行批量更新前务必先备份对应价格表数据
  • 可添加操作日志记录,保存操作人、调整百分比、操作时间等信息便于回溯
  • 数据量较大时建议在业务低峰期操作,避免锁表影响正常业务

内容的提问来源于stack exchange,提问作者Alexander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 20:27:03