调整备货单功能
This commit is contained in:
@@ -61,43 +61,49 @@ class StockOrdersController extends BaseController
|
||||
if (isset($data['pick_up_date']) && $data['pick_up_date'] > 0) $data['pick_up_date'] = date('Y-m-d', $data['pick_up_date']);
|
||||
if (isset($data['collect_all_date']) && $data['collect_all_date'] > 0) $data['collect_all_date'] = date('Y-m-d', $data['collect_all_date']);
|
||||
|
||||
// 处理文件附件
|
||||
// 处理文件附件:只允许 _url 字段调用 OSS 生成私有链接
|
||||
$fileTypes = [
|
||||
'contract' => \app\common\model\StockOrdersFiles::CONTRACT,
|
||||
'transaction_slip' => \app\common\model\StockOrdersFiles::TRANSACTION_SLIP,
|
||||
'pi_doc' => \app\common\model\StockOrdersFiles::PI_DOC
|
||||
];
|
||||
|
||||
|
||||
// 初始化文件字段
|
||||
foreach (array_keys($fileTypes) as $field) {
|
||||
$data[$field] = [];
|
||||
$data[$field . '_url'] = [];
|
||||
$data[$field] = []; // 存储原始文件信息(不包含签名链接)
|
||||
$data[$field . '_url'] = []; // 存储通过OSS生成的私有链接
|
||||
}
|
||||
|
||||
// 按file_code分组文件
|
||||
|
||||
// 按 file_code 分组文件
|
||||
if (!empty($data['files'])) {
|
||||
$groupedFiles = [];
|
||||
foreach ($data['files'] as $file) {
|
||||
if (!isset($groupedFiles[$file['file_code']])) {
|
||||
$groupedFiles[$file['file_code']] = [];
|
||||
$code = $file['file_code'];
|
||||
if (!isset($groupedFiles[$code])) {
|
||||
$groupedFiles[$code] = [];
|
||||
}
|
||||
$groupedFiles[$file['file_code']][] = $file['file_url'];
|
||||
$groupedFiles[$code][] = [
|
||||
'url' => $file['file_url'], // 原始路径
|
||||
'original_name' => $file['original_name'] // 原始文件名
|
||||
];
|
||||
}
|
||||
|
||||
// 映射到对应字段
|
||||
|
||||
// 映射到对应字段,并仅对 _url 调用 OSS 服务
|
||||
foreach ($fileTypes as $field => $fileCode) {
|
||||
if (isset($groupedFiles[$fileCode])) {
|
||||
// 原始URL数组
|
||||
// 主字段存储基本信息(无签名链接)
|
||||
$data[$field] = $groupedFiles[$fileCode];
|
||||
|
||||
// 完整URL数组
|
||||
$fullUrls = [];
|
||||
foreach ($groupedFiles[$fileCode] as $url) {
|
||||
$fullUrls[] = (new \app\common\service\OssService)->generatePrivateUrl($url);
|
||||
|
||||
// 只有 *_url 字段才生成带签名的完整 URL
|
||||
$signedUrls = [];
|
||||
foreach ($groupedFiles[$fileCode] as $fileInfo) {
|
||||
$signedUrls[] = (new \app\common\service\OssService)->generatePrivateUrl($fileInfo['url']);
|
||||
}
|
||||
$data[$field . '_url'] = $fullUrls;
|
||||
$data[$field . '_url'] = $signedUrls;
|
||||
}
|
||||
}
|
||||
|
||||
// 清理临时数据
|
||||
unset($data['files']);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user