This commit is contained in:
2026-05-08 16:27:31 +08:00
parent 14735af0b3
commit 8719cdd6d6
6 changed files with 174 additions and 33 deletions
@@ -2437,18 +2437,19 @@ class PrescriptionOrderLogic
*/
public static function updateAmount(array $params, int $adminId, array $adminInfo): bool
{
self::$error = '';
$id = (int) $params['id'];
$newAmount = round((float) $params['amount_update'], 2);
$newAmount = round((float) $params['amount'], 2);
// 查询订单
$order = PrescriptionOrder::find($id);
$order = PrescriptionOrder::where('id', $id)->whereNull('delete_time')->find();
if (!$order) {
self::setError('订单不存在');
return false;
}
// 数据权限检查
if (!self::checkDataScope($order->toArray(), $adminId, $adminInfo)) {
if (!self::canAccessOrder($order, $adminId, $adminInfo)) {
self::setError('无权限操作此订单');
return false;
}
@@ -2460,16 +2461,23 @@ class PrescriptionOrderLogic
}
$oldAmount = round((float) $order->amount, 2);
$oldAmountCents = (int) round($oldAmount * 100);
$newAmountCents = (int) round($newAmount * 100);
// 金额未变化
if (abs($newAmount - $oldAmount) < 0.01) {
if ($newAmountCents === $oldAmountCents) {
self::setError('金额未发生变化');
return false;
}
// 更新金额
$order->amount = $newAmount;
$order->save();
try {
$order->save();
} catch (\Throwable $e) {
self::setError($e->getMessage());
return false;
}
// 记录日志
$summary = sprintf('将订单金额从 ¥%.2f 修改为 ¥%.2f', $oldAmount, $newAmount);