This commit is contained in:
2026-06-11 14:26:41 +08:00
parent 08249451a7
commit e5959fd89a
7 changed files with 121 additions and 46 deletions
+2
View File
@@ -468,6 +468,8 @@ export function prescriptionOrderAddPayOrder(params: {
pay_amount: number pay_amount: number
pay_remark?: string pay_remark?: string
completion_request?: number completion_request?: number
/** 创建方式:fubei 付呗(默认) / express_cod 快递代收 */
pay_create_type?: 'fubei' | 'express_cod'
}) { }) {
return request.post({ url: '/tcm.prescriptionOrder/addPayOrder', params }) return request.post({ url: '/tcm.prescriptionOrder/addPayOrder', params })
} }
@@ -1522,13 +1522,14 @@
<el-form-item label="添加方式" prop="add_mode"> <el-form-item label="添加方式" prop="add_mode">
<el-radio-group v-model="addPayOrderForm.add_mode"> <el-radio-group v-model="addPayOrderForm.add_mode">
<el-radio value="create">付呗</el-radio> <el-radio value="create">付呗</el-radio>
<el-radio value="create_express">快递代收</el-radio>
<el-radio value="link">关联已有</el-radio> <el-radio value="link">关联已有</el-radio>
<el-radio value="completion_only">直接完单申请</el-radio> <el-radio value="completion_only">直接完单申请</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 付呗手动创建支付单 --> <!-- 付呗 / 快递代收手动创建支付单 -->
<template v-if="addPayOrderForm.add_mode === 'create'"> <template v-if="addPayOrderForm.add_mode === 'create' || addPayOrderForm.add_mode === 'create_express'">
<el-form-item label="费用类别" prop="order_type"> <el-form-item label="费用类别" prop="order_type">
<el-select v-model="addPayOrderForm.order_type" class="w-full"> <el-select v-model="addPayOrderForm.order_type" class="w-full">
<el-option label="挂号费" :value="1" /> <el-option label="挂号费" :value="1" />
@@ -4274,11 +4275,14 @@ const addPayOrderAlertTitle = computed(() => {
if (addPayOrderForm.add_mode === 'completion_only') { if (addPayOrderForm.add_mode === 'completion_only') {
return '不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。' return '不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。'
} }
if (addPayOrderForm.add_mode === 'create_express') {
return '通过快递代收创建新支付单(流转同付呗),或关联已存在但未绑定的支付单。'
}
return '可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。' return '可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。'
}) })
const addPayOrderForm = reactive({ const addPayOrderForm = reactive({
add_mode: 'create' as 'create' | 'link' | 'completion_only', add_mode: 'create' as 'create' | 'create_express' | 'link' | 'completion_only',
order_type: 3, order_type: 3,
pay_amount: undefined as number | undefined, pay_amount: undefined as number | undefined,
pay_remark: '', pay_remark: '',
@@ -4290,7 +4294,7 @@ const addPayOrderRules = computed<FormRules>(() => {
const rules: FormRules = { const rules: FormRules = {
add_mode: [{ required: true, message: '请选择添加方式', trigger: 'change' }] add_mode: [{ required: true, message: '请选择添加方式', trigger: 'change' }]
} }
if (addPayOrderForm.add_mode === 'create') { if (addPayOrderForm.add_mode === 'create' || addPayOrderForm.add_mode === 'create_express') {
rules.order_type = [{ required: true, message: '请选择费用类别', trigger: 'change' }] rules.order_type = [{ required: true, message: '请选择费用类别', trigger: 'change' }]
rules.pay_amount = [ rules.pay_amount = [
{ {
@@ -4377,14 +4381,19 @@ async function submitAddPayOrder() {
if (addPayOrderForm.add_mode === 'completion_only') { if (addPayOrderForm.add_mode === 'completion_only') {
await prescriptionOrderRequestCompletion({ id: addPayOrderRowId.value }) await prescriptionOrderRequestCompletion({ id: addPayOrderRowId.value })
feedback.msgSuccess('完单申请已提交,请等待支付审核') feedback.msgSuccess('完单申请已提交,请等待支付审核')
} else if (addPayOrderForm.add_mode === 'create') { } else if (
// 手动创建新支付单 addPayOrderForm.add_mode === 'create' ||
addPayOrderForm.add_mode === 'create_express'
) {
// 手动创建新支付单(付呗 / 快递代收)
await prescriptionOrderAddPayOrder({ await prescriptionOrderAddPayOrder({
id: addPayOrderRowId.value, id: addPayOrderRowId.value,
order_type: addPayOrderForm.order_type, order_type: addPayOrderForm.order_type,
pay_amount: addPayOrderForm.pay_amount!, pay_amount: addPayOrderForm.pay_amount!,
pay_remark: addPayOrderForm.pay_remark || '', pay_remark: addPayOrderForm.pay_remark || '',
completion_request: addPayOrderForm.completion_request completion_request: addPayOrderForm.completion_request,
pay_create_type:
addPayOrderForm.add_mode === 'create_express' ? 'express_cod' : 'fubei'
}) })
feedback.msgSuccess('支付单已新增,请等待审核') feedback.msgSuccess('支付单已新增,请等待审核')
} else { } else {
@@ -1998,13 +1998,14 @@
<el-form-item label="添加方式" prop="add_mode"> <el-form-item label="添加方式" prop="add_mode">
<el-radio-group v-model="addPayOrderForm.add_mode"> <el-radio-group v-model="addPayOrderForm.add_mode">
<el-radio value="create">付呗</el-radio> <el-radio value="create">付呗</el-radio>
<el-radio value="create_express">快递代收</el-radio>
<el-radio value="link">关联已有</el-radio> <el-radio value="link">关联已有</el-radio>
<el-radio value="completion_only">直接完单申请</el-radio> <el-radio value="completion_only">直接完单申请</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<!-- 付呗手动创建支付单 --> <!-- 付呗 / 快递代收手动创建支付单 -->
<template v-if="addPayOrderForm.add_mode === 'create'"> <template v-if="addPayOrderForm.add_mode === 'create' || addPayOrderForm.add_mode === 'create_express'">
<el-form-item label="费用类别" prop="order_type"> <el-form-item label="费用类别" prop="order_type">
<el-select v-model="addPayOrderForm.order_type" class="w-full"> <el-select v-model="addPayOrderForm.order_type" class="w-full">
<el-option label="挂号费" :value="1" /> <el-option label="挂号费" :value="1" />
@@ -4955,10 +4956,13 @@ const addPayOrderAlertTitle = computed(() => {
if (addPayOrderForm.add_mode === 'completion_only') { if (addPayOrderForm.add_mode === 'completion_only') {
return '不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。' return '不创建或关联支付单,仅提交完单申请,由审核人员在支付审核时处理。'
} }
if (addPayOrderForm.add_mode === 'create_express') {
return '通过快递代收创建新支付单(流转同付呗),或关联已存在但未绑定的支付单。'
}
return '可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。' return '可以通过付呗创建新支付单,或关联已存在但未绑定的支付单。'
}) })
const addPayOrderForm = reactive({ const addPayOrderForm = reactive({
add_mode: 'create' as 'create' | 'link' | 'completion_only', add_mode: 'create' as 'create' | 'create_express' | 'link' | 'completion_only',
order_type: 3, order_type: 3,
pay_amount: undefined as number | undefined, pay_amount: undefined as number | undefined,
pay_remark: '', pay_remark: '',
@@ -4970,7 +4974,7 @@ const addPayOrderRules = computed<FormRules>(() => {
const rules: FormRules = { const rules: FormRules = {
add_mode: [{ required: true, message: '请选择添加方式', trigger: 'change' }] add_mode: [{ required: true, message: '请选择添加方式', trigger: 'change' }]
} }
if (addPayOrderForm.add_mode === 'create') { if (addPayOrderForm.add_mode === 'create' || addPayOrderForm.add_mode === 'create_express') {
rules.order_type = [{ required: true, message: '请选择费用类别', trigger: 'change' }] rules.order_type = [{ required: true, message: '请选择费用类别', trigger: 'change' }]
rules.pay_amount = [ rules.pay_amount = [
{ required: true, message: '请输入支付金额', trigger: 'blur' }, { required: true, message: '请输入支付金额', trigger: 'blur' },
@@ -5054,14 +5058,19 @@ async function submitAddPayOrder() {
if (addPayOrderForm.add_mode === 'completion_only') { if (addPayOrderForm.add_mode === 'completion_only') {
await prescriptionOrderRequestCompletion({ id: addPayOrderRowId.value }) await prescriptionOrderRequestCompletion({ id: addPayOrderRowId.value })
feedback.msgSuccess('完单申请已提交,请等待支付审核') feedback.msgSuccess('完单申请已提交,请等待支付审核')
} else if (addPayOrderForm.add_mode === 'create') { } else if (
// addPayOrderForm.add_mode === 'create' ||
addPayOrderForm.add_mode === 'create_express'
) {
// /
await prescriptionOrderAddPayOrder({ await prescriptionOrderAddPayOrder({
id: addPayOrderRowId.value, id: addPayOrderRowId.value,
order_type: addPayOrderForm.order_type, order_type: addPayOrderForm.order_type,
pay_amount: addPayOrderForm.pay_amount!, pay_amount: addPayOrderForm.pay_amount!,
pay_remark: addPayOrderForm.pay_remark || '', pay_remark: addPayOrderForm.pay_remark || '',
completion_request: addPayOrderForm.completion_request completion_request: addPayOrderForm.completion_request,
pay_create_type:
addPayOrderForm.add_mode === 'create_express' ? 'express_cod' : 'fubei'
}) })
feedback.msgSuccess('支付单已新增,请等待审核') feedback.msgSuccess('支付单已新增,请等待审核')
} else { } else {
+31 -11
View File
@@ -220,7 +220,7 @@
编辑 编辑
</el-button> </el-button>
<el-button <el-button
v-if="row.status === 1 || row.status === 2 || (row.status === 5 && row.payment_method === 'fubei')" v-if="row.status === 1 || row.status === 2 || (row.status === 5 && (row.payment_method === 'fubei' || row.create_type === 'express_cod'))"
v-perms="['order.order/split']" v-perms="['order.order/split']"
type="primary" type="primary"
link link
@@ -237,7 +237,7 @@
小程序码 小程序码
</el-button> </el-button>
<el-button <el-button
v-if="row.status === 1 || (row.status === 5 && row.payment_method === 'fubei')" v-if="row.status === 1 || (row.status === 5 && (row.payment_method === 'fubei' || row.create_type === 'express_cod'))"
v-perms="['order.order/pay']" v-perms="['order.order/pay']"
type="success" type="success"
link link
@@ -255,7 +255,7 @@
退款 退款
</el-button> </el-button>
<el-button <el-button
v-if="row.status === 1 || (row.status === 5 && row.payment_method === 'fubei')" v-if="row.status === 1 || (row.status === 5 && (row.payment_method === 'fubei' || row.create_type === 'express_cod'))"
v-perms="['order.order/cancel']" v-perms="['order.order/cancel']"
type="danger" type="danger"
link link
@@ -434,7 +434,7 @@
type="warning" type="warning"
:closable="false" :closable="false"
class="mb-3" class="mb-3"
title="该单为付呗·待审核,请选择实际到账方式后确认「已支付」" title="该单为待审核(付呗/快递代收),请选择实际到账方式后确认「已支付」"
/> />
<el-form-item v-if="!payForm.fubeiPendingAudit" label="支付类型" required> <el-form-item v-if="!payForm.fubeiPendingAudit" label="支付类型" required>
<el-radio-group v-model="payForm.payType"> <el-radio-group v-model="payForm.payType">
@@ -502,6 +502,7 @@
<el-radio label="normal">普通订单</el-radio> <el-radio label="normal">普通订单</el-radio>
<el-radio label="wechat_work">企业微信对外收款</el-radio> <el-radio label="wechat_work">企业微信对外收款</el-radio>
<el-radio label="fubei">付呗</el-radio> <el-radio label="fubei">付呗</el-radio>
<el-radio label="express_cod">快递代收</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-alert <el-alert
@@ -524,7 +525,20 @@
<template #title>付呗</template> <template #title>付呗</template>
通过付呗收款的支付单创建后请按实际对账/审核流程在列表中处理 通过付呗收款的支付单创建后请按实际对账/审核流程在列表中处理
</el-alert> </el-alert>
<el-form-item v-if="createForm.createType === 'fubei'" label="支付单审核"> <el-alert
v-if="createForm.createType === 'express_cod'"
type="info"
:closable="false"
show-icon
class="mb-4"
>
<template #title>快递代收</template>
通过快递代收的支付单流转与付呗一致审核通过/确认到账后将更新为已支付
</el-alert>
<el-form-item
v-if="createForm.createType === 'fubei' || createForm.createType === 'express_cod'"
label="支付单审核"
>
<el-switch <el-switch
v-model="createForm.requirePaymentSlipAudit" v-model="createForm.requirePaymentSlipAudit"
active-text="申请审核" active-text="申请审核"
@@ -980,8 +994,8 @@ const patientLoading = ref(false)
const patientList = ref<any[]>([]) const patientList = ref<any[]>([])
const createForm = reactive({ const createForm = reactive({
createType: 'normal' as 'normal' | 'wechat_work' | 'fubei', createType: 'normal' as 'normal' | 'wechat_work' | 'fubei' | 'express_cod',
/** 「付呗」:开启后订单为待审核(5) */ /** 「付呗」「快递代收」:开启后订单为待审核(5) */
requirePaymentSlipAudit: false, requirePaymentSlipAudit: false,
patient_id: '', patient_id: '',
order_type: '', order_type: '',
@@ -1167,13 +1181,17 @@ const submitCreateOrder = async () => {
if (createForm.createType === 'fubei') { if (createForm.createType === 'fubei') {
params.payment_channel = 'fubei' params.payment_channel = 'fubei'
params.require_payment_slip_audit = createForm.requirePaymentSlipAudit ? 1 : 0 params.require_payment_slip_audit = createForm.requirePaymentSlipAudit ? 1 : 0
} else if (createForm.createType === 'express_cod') {
params.payment_channel = 'express_cod'
params.require_payment_slip_audit = createForm.requirePaymentSlipAudit ? 1 : 0
} else { } else {
params.payment_channel = 'normal' params.payment_channel = 'normal'
params.require_payment_slip_audit = 0 params.require_payment_slip_audit = 0
} }
await orderCreate(params) await orderCreate(params)
const tip = const tip =
createForm.createType === 'fubei' && createForm.requirePaymentSlipAudit (createForm.createType === 'fubei' || createForm.createType === 'express_cod') &&
createForm.requirePaymentSlipAudit
? '订单已创建,支付状态为「待审核」' ? '订单已创建,支付状态为「待审核」'
: '订单创建成功' : '订单创建成功'
feedback.msgSuccess(tip) feedback.msgSuccess(tip)
@@ -1254,10 +1272,11 @@ const getCreateTypeText = (row: any) => {
const createTypeMap: Record<string, string> = { const createTypeMap: Record<string, string> = {
normal: '普通订单', normal: '普通订单',
wechat_work: '企业微信对外收款', wechat_work: '企业微信对外收款',
fubei: '付呗' fubei: '付呗',
express_cod: '快递代收'
} }
const ct = row?.create_type const ct = row?.create_type
if (ct === 'wechat_work' || ct === 'fubei') { if (ct === 'wechat_work' || ct === 'fubei' || ct === 'express_cod') {
return createTypeMap[ct] return createTypeMap[ct]
} }
if (ct === 'normal' && row?.payment_method) { if (ct === 'normal' && row?.payment_method) {
@@ -1395,7 +1414,8 @@ const handleDetail = async (row: any) => {
// 支付订单 // 支付订单
const handlePay = (row: any) => { const handlePay = (row: any) => {
const fubeiPending = row.status === 5 && row.payment_method === 'fubei' const fubeiPending =
row.status === 5 && (row.payment_method === 'fubei' || row.create_type === 'express_cod')
payForm.value = { payForm.value = {
order_id: row.id, order_id: row.id,
order_no: row.order_no, order_no: row.order_no,
@@ -207,11 +207,17 @@ class OrderController extends BaseAdminController
$params['creator_id'] = $this->adminId; $params['creator_id'] = $this->adminId;
$params['payment_channel'] = (string)$this->request->post('payment_channel', 'normal'); $params['payment_channel'] = (string)$this->request->post('payment_channel', 'normal');
$params['require_payment_slip_audit'] = (int)$this->request->post('require_payment_slip_audit', 0); $params['require_payment_slip_audit'] = (int)$this->request->post('require_payment_slip_audit', 0);
// 创建方式:优先取前端透传的 create_type,否则按 payment_channel 派生(fubei→fubei,其余 normal // 创建方式:优先取前端透传的 create_type,否则按 payment_channel 派生(fubei→fubeiexpress_cod→express_cod其余 normal
$createTypeReq = (string)$this->request->post('create_type', ''); $createTypeReq = (string)$this->request->post('create_type', '');
$params['create_type'] = in_array($createTypeReq, ['normal', 'wechat_work', 'fubei'], true) if (in_array($createTypeReq, ['normal', 'wechat_work', 'fubei', 'express_cod'], true)) {
? $createTypeReq $params['create_type'] = $createTypeReq;
: ($params['payment_channel'] === 'fubei' ? 'fubei' : 'normal'); } elseif ($params['payment_channel'] === 'fubei') {
$params['create_type'] = 'fubei';
} elseif ($params['payment_channel'] === 'express_cod') {
$params['create_type'] = 'express_cod';
} else {
$params['create_type'] = 'normal';
}
$result = OrderLogic::create($params); $result = OrderLogic::create($params);
if (!$result) { if (!$result) {
+34 -14
View File
@@ -23,9 +23,9 @@ use think\facade\Log;
class OrderLogic class OrderLogic
{ {
/** /**
* 创建方式统一三值normal 普通订单 / wechat_work 企业微信对外收款 / fubei 付呗 * 创建方式:normal 普通订单 / wechat_work 企业微信对外收款 / fubei 付呗 / express_cod 快递代收
*/ */
private const CREATE_TYPES = ['normal', 'wechat_work', 'fubei']; private const CREATE_TYPES = ['normal', 'wechat_work', 'fubei', 'express_cod'];
/** /**
* @notes 生成订单号 * @notes 生成订单号
@@ -64,6 +64,15 @@ class OrderLogic
return 'normal'; return 'normal';
} }
/**
* 是否为「待审核(5)且需人工确认到账」的单:付呗(payment_method=fubei) 或 快递代收(create_type=express_cod)
*/
private static function isPendingManualAudit(Order $order): bool
{
return (string)($order->payment_method ?? '') === 'fubei'
|| (string)($order->create_type ?? '') === 'express_cod';
}
/** /**
* @notes 创建订单 * @notes 创建订单
* @param array $params * @param array $params
@@ -73,11 +82,16 @@ class OrderLogic
{ {
try { try {
$channel = (string)($params['payment_channel'] ?? 'normal'); $channel = (string)($params['payment_channel'] ?? 'normal');
if (!in_array($channel, ['normal', 'fubei'], true)) { if (!in_array($channel, ['normal', 'fubei', 'express_cod'], true)) {
$channel = 'normal'; $channel = 'normal';
} }
$paymentMethod = $channel === 'fubei' ? 'fubei' : null; $paymentMethod = $channel === 'fubei' ? 'fubei' : null;
$createType = self::normalizeCreateType((string)($params['create_type'] ?? ''), $paymentMethod); // 快递代收:以 express_cod 标记创建方式(与 fubei 流转一致,但 payment_method 待到账时再写)
$createTypeHint = $channel === 'express_cod' ? 'express_cod' : '';
$createType = self::normalizeCreateType(
(string)($params['create_type'] ?? $createTypeHint),
$paymentMethod
);
$requirePaymentSlipAudit = (int)($params['require_payment_slip_audit'] ?? 0) === 1; $requirePaymentSlipAudit = (int)($params['require_payment_slip_audit'] ?? 0) === 1;
$order = new Order(); $order = new Order();
@@ -87,10 +101,13 @@ class OrderLogic
$order->order_type = $params['order_type']; $order->order_type = $params['order_type'];
$order->amount = $params['amount']; $order->amount = $params['amount'];
$order->create_type = $createType; $order->create_type = $createType;
// 付呗且申请审核支付单:待审核(5);否则待支付(1) // 付呗/快递代收且申请审核支付单:待审核(5);否则待支付(1)
if ($channel === 'fubei') { if ($channel === 'fubei') {
$order->payment_method = 'fubei'; $order->payment_method = 'fubei';
$order->status = $requirePaymentSlipAudit ? 5 : 1; $order->status = $requirePaymentSlipAudit ? 5 : 1;
} elseif ($channel === 'express_cod') {
// payment_method 留空,待人工确认到账时再写真实支付方式
$order->status = $requirePaymentSlipAudit ? 5 : 1;
} else { } else {
$order->status = 1; // 待支付 $order->status = 1; // 待支付
} }
@@ -387,11 +404,11 @@ class OrderLogic
} }
$st = (int)$order->status; $st = (int)$order->status;
// 1=待支付;5=待审核(付呗+申请支付单审核) 时允许录入手动到账 // 1=待支付;5=待审核(付呗/快递代收+申请支付单审核) 时允许录入手动到账
if ($st === 1) { if ($st === 1) {
// 正常待支付 // 正常待支付
} elseif ($st === 5 && (string)($order->payment_method ?? '') === 'fubei') { } elseif ($st === 5 && self::isPendingManualAudit($order)) {
// 待审核的付呗单,通过人工确认后标记已支付 // 待审核的付呗/快递代收单,通过人工确认后标记已支付
} else { } else {
self::setError('订单状态不允许支付'); self::setError('订单状态不允许支付');
return false; return false;
@@ -424,8 +441,8 @@ class OrderLogic
} }
$st = (int)$order->status; $st = (int)$order->status;
if ($st !== 1 && !($st === 5 && (string)($order->payment_method ?? '') === 'fubei')) { if ($st !== 1 && !($st === 5 && self::isPendingManualAudit($order))) {
self::setError('只有待支付或待审核(付呗)的订单才能取消'); self::setError('只有待支付或待审核(付呗/快递代收)的订单才能取消');
return false; return false;
} }
@@ -509,13 +526,13 @@ class OrderLogic
} }
$st = (int) $order->status; $st = (int) $order->status;
if ($st === 5 && (string) ($order->payment_method ?? '') !== 'fubei') { if ($st === 5 && !self::isPendingManualAudit($order)) {
self::setError('待审核订单仅支持付呗渠道拆分'); self::setError('待审核订单仅支持付呗/快递代收渠道拆分');
return false; return false;
} }
if (! in_array($st, [1, 5, 2], true)) { if (! in_array($st, [1, 5, 2], true)) {
self::setError('仅「待支付」「待审核(付呗)」或「已支付」的订单可拆分'); self::setError('仅「待支付」「待审核(付呗/快递代收)」或「已支付」的订单可拆分');
return false; return false;
} }
@@ -586,7 +603,10 @@ class OrderLogic
(string) ($order->remark ?? '') (string) ($order->remark ?? '')
); );
if ($st === 5) { if ($st === 5) {
$n->payment_method = 'fubei'; // 付呗子单沿用 payment_method=fubei;快递代收子单 payment_method 留空,靠 create_type 标记
if ((string) ($order->payment_method ?? '') === 'fubei') {
$n->payment_method = 'fubei';
}
$n->status = 5; $n->status = 5;
} elseif ($st === 2) { } elseif ($st === 2) {
$n->status = 2; $n->status = 2;
@@ -2324,7 +2324,8 @@ class PrescriptionOrderLogic
->where(function ($query) { ->where(function ($query) {
$query->where('payment_method', 'manual') $query->where('payment_method', 'manual')
->whereOr('payment_method', 'fubei') ->whereOr('payment_method', 'fubei')
->whereOr('create_type', 'fubei'); ->whereOr('create_type', 'fubei')
->whereOr('create_type', 'express_cod');
}) })
->update([ ->update([
'status' => 5, // 待审核 'status' => 5, // 待审核
@@ -2403,6 +2404,9 @@ class PrescriptionOrderLogic
$amount = round((float) ($params['pay_amount'] ?? 0), 2); $amount = round((float) ($params['pay_amount'] ?? 0), 2);
$remark = mb_substr(trim((string) ($params['pay_remark'] ?? '')), 0, 200); $remark = mb_substr(trim((string) ($params['pay_remark'] ?? '')), 0, 200);
$completionRequest = (int) ($params['completion_request'] ?? 0); $completionRequest = (int) ($params['completion_request'] ?? 0);
// 创建方式:付呗(默认) 或 快递代收(express_cod)
$payCreateType = (string) ($params['pay_create_type'] ?? 'fubei');
$isExpressCod = $payCreateType === 'express_cod';
if ($amount < 0) { if ($amount < 0) {
self::$error = '支付单金额不能为负数'; self::$error = '支付单金额不能为负数';
@@ -2417,8 +2421,13 @@ class PrescriptionOrderLogic
$payOrder->order_type = $orderType; $payOrder->order_type = $orderType;
$payOrder->amount = $amount; $payOrder->amount = $amount;
$payOrder->status = 5; // 待审核 $payOrder->status = 5; // 待审核
$payOrder->payment_method = 'fubei'; // 补齐支付单按「付呗」记账 if ($isExpressCod) {
$payOrder->create_type = 'fubei'; // 快递代收:payment_method 留空,审核通过/到账后再写;用 create_type 标记
$payOrder->create_type = 'express_cod';
} else {
$payOrder->payment_method = 'fubei'; // 补齐支付单按「付呗」记账
$payOrder->create_type = 'fubei';
}
$payOrder->payment_time = null; // 审核通过后再设置支付时间 $payOrder->payment_time = null; // 审核通过后再设置支付时间
$payOrder->remark = $remark; $payOrder->remark = $remark;