49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import express from "express";
|
|
import u from "@/utils";
|
|
import { z } from "zod";
|
|
import { success } from "@/lib/responseFormat";
|
|
import { validateFields } from "@/middleware/middleware";
|
|
const router = express.Router();
|
|
|
|
// 保存分镜图
|
|
export default router.post(
|
|
"/",
|
|
validateFields({
|
|
id: z.number(),
|
|
filePath: z.string(),
|
|
prompt: z.string(),
|
|
}),
|
|
async (req, res) => {
|
|
const { filePath, id, prompt } = req.body;
|
|
const savePath = new URL(filePath).pathname;
|
|
|
|
let imageUrl = "";
|
|
|
|
const oldImage = await u.db("t_assets").where("id", id).select("filePath").first();
|
|
const oldFilePath = oldImage?.filePath;
|
|
|
|
if (!oldFilePath || oldFilePath !== savePath) {
|
|
imageUrl = savePath;
|
|
|
|
if (oldFilePath) {
|
|
await u.db("t_image").insert({
|
|
assetsId: id,
|
|
filePath: oldFilePath,
|
|
type: "分镜",
|
|
});
|
|
|
|
await u.db("t_image").where("assetsId", id).andWhere("filePath", savePath).del();
|
|
}
|
|
} else {
|
|
imageUrl = oldFilePath;
|
|
}
|
|
|
|
await u.db("t_assets").where("id", id).update({
|
|
filePath: imageUrl,
|
|
prompt,
|
|
});
|
|
|
|
res.status(200).send({ message: "保存分镜图成功" });
|
|
}
|
|
);
|