初始版本,目前线上可用

This commit is contained in:
2025-11-19 12:49:16 +08:00
commit cb7f1c45e8
178 changed files with 30336 additions and 0 deletions

View File

@@ -0,0 +1,212 @@
import * as express from "express";
import { getConnection, getRepository } from "typeorm";
import DeceasedRetail from "../../entity/DeceasedRetail";
import curd from "@/lib/curd/curd";
import SeletedServiceList from "@/entity/SeletedServiceList";
import Deceased from "@/entity/Deceased";
const router = express.Router();
async function GetData(result) {
const ids = Array.from(
new Set(result.list.map((item) => Number(item.deceasedId)))
);
if (ids.length) {
const manyResult = await getConnection()
.getRepository(Deceased)
.createQueryBuilder("deceased")
.where("deceased.id IN (:...ids)", {
ids,
})
.getMany();
result.list = result.list.map((item: any) => {
let findData = manyResult.find(
(fitem: any) => fitem.id === item.deceasedId
);
return {
...findData,
...item,
deceased: findData,
};
});
}
}
router.post("/query", async (req, res) => {
try {
const result = await curd({
entity: DeceasedRetail,
req,
params: {
retailType: 2,
},
}).queryList();
await GetData(result);
res.send({ code: 200, data: result });
} catch (err) {
res.status(500).send({ code: 500, msg: err.message });
}
});
router.get("/list", async (req, res) => {
try {
const result: any = await curd({
entity: DeceasedRetail,
req,
params: {
retailType: 2,
},
}).queryList();
await GetData(result);
res.send({ code: 200, data: result });
} catch (err) {
res.status(500).send({ code: 500, msg: err.message });
}
});
router.get("/checkout", async (req, res) => {
let { id } = req.query;
if (!id) {
return res.status(500).send({ code: 500, msg: "未传入结账id" });
}
let deceasedRetailRep = getConnection().getRepository(DeceasedRetail);
let deceasedRetail = await deceasedRetailRep.findOne(Number(id));
if (!deceasedRetail)
return res.status(500).send({ code: 500, msg: "该记录不存在" });
deceasedRetail.retailState = 1;
await deceasedRetailRep.save(deceasedRetail);
res.status(200).send({ code: 200, data: deceasedRetail, msg: "结账成功!" });
});
router.post("/add", async (req, res) => {
delete req.body.id;
const connection = getConnection();
try {
const tempServiceItems = req.body.services.map((item) => {
delete item.id;
return item;
});
req.body.serviceItems = "";
const deceasedRetailRep = connection.getRepository(DeceasedRetail);
let newDeceasedRetail = new DeceasedRetail();
newDeceasedRetail = Object.assign(newDeceasedRetail, req.body);
newDeceasedRetail.retailType = 2;
if (tempServiceItems.length) {
tempServiceItems.forEach((item) => {
item.retailId = newDeceasedRetail.id;
item.hasDeceased = 0;
});
let executeData = await connection
.getRepository(SeletedServiceList)
.save(tempServiceItems);
newDeceasedRetail.serviceItems = executeData
.map((item) => item.id)
.join(",");
await deceasedRetailRep.save(newDeceasedRetail);
}
res.send({ code: 200, msg: "添加成功", data: newDeceasedRetail });
} catch (err) {
res.status(500).send({ code: 500, msg: err.message });
}
});
router.post("/update", async (req, res) => {
const id = Number(req.body.id);
if (!id) {
return res.send({ code: 400, msg: "逝者ID不能为空" });
}
try {
const connection = getConnection();
const deceasedRepository = connection.getRepository(DeceasedRetail);
const tempServiceItems = req.body.services.map((item) => {
delete item.id;
return item;
});
let findData = await deceasedRepository.findOne(id);
const ids = findData.serviceItems.split(",").map((id) => Number(id));
if (ids.length) {
await connection
.getRepository(SeletedServiceList)
.createQueryBuilder("seleted_service_list")
.where("seleted_service_list.id IN (:...ids)", {
ids,
})
.delete()
.execute();
}
findData = { ...findData, ...req.body };
if (tempServiceItems.length) {
tempServiceItems.forEach((item) => {
item.retailId = id;
item.hasDeceased = 0;
item.updateDate = new Date();
item.createDate = new Date();
});
let executeData = await connection
.getRepository(SeletedServiceList)
.save(tempServiceItems);
findData.serviceItems = executeData.map((item) => item.id).join(",");
await deceasedRepository.save(findData);
}
res.send({ code: 200, msg: "更新成功", data: findData });
} catch (err) {
res.status(500).send({ code: 500, msg: err.message });
}
});
router.get("/delete", async (req, res) => {
const id = Number(req.query.id);
if (!id) {
return res.send({ code: 400, msg: "数据ID不能为空" });
}
try {
const connection = getConnection();
const deceasedRepository = connection.getRepository(DeceasedRetail);
const findData = await deceasedRepository.findOne(id);
const ids = findData.serviceItems.split(",").map((id) => Number(id));
if (ids.length) {
await connection
.getRepository(SeletedServiceList)
.createQueryBuilder("seleted_service_list")
.where("seleted_service_list.id IN (:...ids)", {
ids,
})
.delete()
.execute();
}
await deceasedRepository.remove(findData);
res.send({ code: 200, msg: "删除成功!" });
} catch (err) {
res.status(500).send({ code: 500, msg: err.message });
}
});
export default router;