123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- import express from "express";
- const router = express.Router();
- import { v4 as uuidv4 } from "uuid";
- import { shanghaiTime, shanghaiTimeFormat } from "#utils";
- import {
- addMoreRecord,
- updataMoreRecord,
- delMoreRecord,
- record_update,
- getRecordInfoById,
- getFileByRecordId,
- delFileByRecordId,
- delByRecordId,
- getMoreRecordList,
- getMoreRecordByMoreId,
- getTypesById,
- } from "#db";
- import { getTypeInfoFn, setFilesById, setFilesByRecord, getFileUrl } from "./utils.js";
- // 添加多个账单记录
- router.post("/", async function (req, res) {
- const {
- name = "",
- remark = "",
- book_id = "",
- start_time = "",
- end_time = "",
- total_fee = 0,
- log_day = '',
- type = "",
- files = [],
- userInfo = {},
- } = req.body;
- const more_id = `M_${uuidv4()}`;
- const type_id = await getTypeInfoFn({ userInfo, book_id, type });
- await addMoreRecord({
- more_id,
- book_id,
- type_id: type_id,
- author_id: userInfo.user_id,
- total_fee,
- name,
- remark,
- log_day,
- start_time: shanghaiTimeFormat(start_time, "YYYY-MM-DD") + " 00:00:00",
- end_time: shanghaiTimeFormat(end_time, "YYYY-MM-DD") + " 23:59:59",
- create_time: shanghaiTime().format("YYYY-MM-DD HH:mm:ss"),
- update_time: shanghaiTime().format("YYYY-MM-DD HH:mm:ss"),
- });
- await setFilesByRecord({
- files,
- book_id,
- more_id,
- userInfo,
- });
- res.json({
- code: 200,
- data: {
- record_id: more_id,
- },
- });
- });
- // 编辑多个账单记录
- router.put("/:more_id", async function (req, res) {
- const more_id = req.params.more_id; // 获取 fileId 参数
- const {
- name = "",
- remark = "",
- book_id = "",
- start_time = "",
- end_time = "",
- total_fee = 0,
- type = "",
- log_day = "",
- files = [],
- userInfo = {},
- } = req.body;
- // 更新附件信息
- await setFilesById({
- record_id: more_id,
- userInfo,
- book_id,
- files,
- });
- // 更新类型
- const typeId = await getTypeInfoFn({
- userInfo,
- book_id,
- type,
- });
- // 更新数据内容
- const recordInfo = await updataMoreRecord({
- name,
- more_id,
- type_id: typeId,
- author_id: userInfo.user_id,
- total_fee: total_fee,
- remark: remark,
- log_day,
- start_time: shanghaiTimeFormat(start_time, "YYYY-MM-DD") + " 00:00:00",
- end_time: shanghaiTimeFormat(end_time, "YYYY-MM-DD") + " 23:59:59",
- update_time: shanghaiTime().format("YYYY-MM-DD HH:mm:ss"),
- });
- res.json({
- code: 200,
- data: recordInfo ? "" : "更新失败",
- });
- });
- // 删除单个账单记录
- router.delete("/:more_id", async function (req, res) {
- const more_id = req.params.more_id; // 获取 fileId 参数
- const { userInfo = {} } = req.body;
- // const recordInfo = await getRecordInfoById(more_id);
- // 删除附件映射关系
- const getAllFiles = await getFileByRecordId(more_id);
- if (getAllFiles.length) {
- await Promise.all(
- getAllFiles.map((elm) => delFileByRecordId(more_id, elm.file_id))
- );
- }
- // 删除record数据
- await delMoreRecord(more_id, userInfo.user_id);
- res.json({
- code: 200,
- data: "",
- });
- });
- // 获取所有批量账单记录
- router.post("/list/:book_id", async function (req, res) {
- const book_id = req.params.book_id; // 获取 fileId 参数
- const { userInfo = {} } = req.body;
- const moreRecordList = await getMoreRecordList(book_id, userInfo.user_id);
- res.json({
- code: 200,
- data: moreRecordList.map((elm) => ({
- name: elm.name,
- more_id: elm.more_id,
- remark: elm.remark,
- total_fee: elm.total_fee,
- create_time: shanghaiTimeFormat(elm.create_time),
- start_time: shanghaiTimeFormat(elm.start_time),
- end_time: shanghaiTimeFormat(elm.end_time),
- })),
- });
- });
- // 获取所有批量账单记录
- router.get("/:more_id", async function (req, res) {
- const more_id = req.params.more_id; // 获取 fileId 参数
- const { userInfo = {} } = req.body;
- const files = await getFileByRecordId(more_id);
- const moreRecordInfo = await getMoreRecordByMoreId(more_id, userInfo.user_id);
- const typesRes = await getTypesById({
- typeId: moreRecordInfo.type_id,
- book_id: moreRecordInfo.book_id,
- author_id: moreRecordInfo.author_id,
- });
- if (typesRes) {
- moreRecordInfo.type = typesRes.name;
- } else {
- moreRecordInfo.type = "";
- }
- res.json({
- code: 200,
- data: {
- type: moreRecordInfo.type,
- name: moreRecordInfo.name,
- more_id: moreRecordInfo.more_id,
- remark: moreRecordInfo.remark,
- total_fee: moreRecordInfo.total_fee,
- log_day: moreRecordInfo.log_day,
- create_time: shanghaiTimeFormat(moreRecordInfo.create_time),
- start_time: shanghaiTimeFormat(moreRecordInfo.start_time),
- end_time: shanghaiTimeFormat(moreRecordInfo.end_time),
- files: files.map((elm) => getFileUrl(req, elm)),
- },
- });
- });
- export default router;
|