This commit is contained in:
Your Name
2026-05-06 18:17:37 +08:00
parent c389fea73c
commit a7fd55aa1c
16 changed files with 2069 additions and 375 deletions
@@ -240,6 +240,31 @@ class PrescriptionOrderLogic
}
}
/**
* 菜单权限:查看/编辑业务订单「备注」(对内 remark_extra
*
* perms: tcm.prescriptionOrder/editRemarkExtra
*/
public static function canEditOrderRemarkExtra(array $adminInfo): bool
{
if (!empty($adminInfo['root']) && (int) $adminInfo['root'] === 1) {
return true;
}
$perms = AuthLogic::getAuthByAdminId((int) ($adminInfo['admin_id'] ?? 0));
return in_array('tcm.prescriptionOrder/editRemarkExtra', $perms, true);
}
/**
* @param array<string,mixed> $row
*/
public static function maskRemarkExtraIfNeeded(array &$row, array $adminInfo): void
{
if (!self::canEditOrderRemarkExtra($adminInfo)) {
unset($row['remark_extra']);
}
}
/** 定金门槛(元),0 表示不校验 */
public static function depositMinAmount(): float
{
@@ -613,7 +638,10 @@ class PrescriptionOrderLogic
$order->fee_type = (int) $params['fee_type'];
$order->amount = round((float) $params['amount'], 2);
$order->internal_cost = $internalCost;
$order->remark_extra = (string) ($params['remark_extra'] ?? '');
$order->remark_extra = self::canEditOrderRemarkExtra($adminInfo)
? (string) ($params['remark_extra'] ?? '')
: '';
$order->remark_assistant = (string) ($params['remark_assistant'] ?? '');
$order->linked_pay_order_id = $payOrderIds !== [] ? $payOrderIds[0] : null;
$order->prescription_audit_status = 0;
$order->prescription_audit_remark = '';
@@ -637,6 +665,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -658,6 +687,7 @@ class PrescriptionOrderLogic
}
$arr = $row->toArray();
self::maskInternalCostIfNeeded($arr, $adminInfo);
self::maskRemarkExtraIfNeeded($arr, $adminInfo);
self::attachLinkedPayOrders($arr);
// 添加创建人姓名
@@ -1050,7 +1080,10 @@ class PrescriptionOrderLogic
}
$order->fee_type = (int) $params['fee_type'];
$order->amount = round((float) $params['amount'], 2);
$order->remark_extra = (string) ($params['remark_extra'] ?? '');
if (self::canEditOrderRemarkExtra($adminInfo)) {
$order->remark_extra = (string) ($params['remark_extra'] ?? '');
}
$order->remark_assistant = (string) ($params['remark_assistant'] ?? '');
$diagId = (int) $order->diagnosis_id;
@@ -1141,6 +1174,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1219,6 +1253,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1287,6 +1322,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1365,6 +1401,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1503,6 +1540,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1589,6 +1627,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1659,6 +1698,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1775,6 +1815,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1885,6 +1926,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;
@@ -1972,6 +2014,7 @@ class PrescriptionOrderLogic
$out = $order->toArray();
self::maskInternalCostIfNeeded($out, $adminInfo);
self::maskRemarkExtraIfNeeded($out, $adminInfo);
self::attachLinkedPayOrders($out);
return $out;