update资源分发小程序
This commit is contained in:
@@ -55,34 +55,59 @@ class AssetResourceController extends BaseAdminController
|
||||
public function add()
|
||||
{
|
||||
$params = $this->request->post();
|
||||
if (empty($params['type']) || empty($params['title']) || empty($params['file_url'])) {
|
||||
$type = $params['type'] ?? 0;
|
||||
$title = trim((string)($params['title'] ?? ''));
|
||||
|
||||
// 兼容单图(字符串)与多图批量上传(数组)
|
||||
$fileUrl = $params['file_url'] ?? '';
|
||||
if (is_array($fileUrl)) {
|
||||
$fileUrls = array_values(array_filter($fileUrl, fn($v) => trim((string)$v) !== ''));
|
||||
} else {
|
||||
$fileUrls = trim((string)$fileUrl) !== '' ? [$fileUrl] : [];
|
||||
}
|
||||
|
||||
if (empty($type) || $title === '' || empty($fileUrls)) {
|
||||
return $this->fail('请填写完整的资源信息');
|
||||
}
|
||||
|
||||
|
||||
// 仅图片支持批量;视频/语音只取首个
|
||||
if ($type != 1) {
|
||||
$fileUrls = [$fileUrls[0]];
|
||||
}
|
||||
|
||||
$multi = count($fileUrls) > 1;
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
$resource = AssetResource::create([
|
||||
'type' => $params['type'],
|
||||
'title' => $params['title'],
|
||||
'file_url' => $params['file_url'],
|
||||
'cover_url' => $params['cover_url'] ?? '',
|
||||
]);
|
||||
|
||||
// 绑定用户
|
||||
if (!empty($params['user_ids']) && is_array($params['user_ids'])) {
|
||||
$userResources = [];
|
||||
foreach ($params['user_ids'] as $userId) {
|
||||
$userResources[] = [
|
||||
'user_id' => $userId,
|
||||
'resource_id' => $resource->id,
|
||||
'create_time' => time(),
|
||||
];
|
||||
$createdIds = [];
|
||||
$index = 0;
|
||||
foreach ($fileUrls as $url) {
|
||||
$index++;
|
||||
$resource = AssetResource::create([
|
||||
'type' => $type,
|
||||
'title' => $multi ? $title . '_' . $index : $title,
|
||||
'file_url' => $url,
|
||||
'cover_url' => $params['cover_url'] ?? '',
|
||||
]);
|
||||
|
||||
// 绑定用户
|
||||
if (!empty($params['user_ids']) && is_array($params['user_ids'])) {
|
||||
$userResources = [];
|
||||
foreach ($params['user_ids'] as $userId) {
|
||||
$userResources[] = [
|
||||
'user_id' => $userId,
|
||||
'resource_id' => $resource->id,
|
||||
'create_time' => time(),
|
||||
];
|
||||
}
|
||||
(new AssetUserResource())->saveAll($userResources);
|
||||
}
|
||||
(new AssetUserResource())->saveAll($userResources);
|
||||
|
||||
$createdIds[] = $resource->id;
|
||||
}
|
||||
|
||||
|
||||
Db::commit();
|
||||
return $this->success('添加并分配成功', ['id' => $resource->id]);
|
||||
return $this->success('添加并分配成功', ['ids' => $createdIds]);
|
||||
} catch (\Exception $e) {
|
||||
Db::rollback();
|
||||
return $this->fail('操作失败: ' . $e->getMessage());
|
||||
|
||||
Reference in New Issue
Block a user