feat: first commit

This commit is contained in:
2025-03-27 19:37:24 +08:00
commit 3e2aa46ea1
81 changed files with 106573 additions and 0 deletions
+15
View File
@@ -0,0 +1,15 @@
// import RouterFactor from "../RouterFactory.mjs";
// import DBHelper from "../DBHelper.mjs";
import {RouterFactor,DBHelper} from "funjia-server/lib/funjia-server.mjs";
const getDataLog = (router) => {
const rF = new RouterFactor({
router,
db: DBHelper.logDB,
name: "dataLog"
});
rF.creaetBaseRouter();
}
export default getDataLog;
+173
View File
@@ -0,0 +1,173 @@
import cuid from "cuid";
// import getDb from "../dbServer.mjs";
import _ from "lodash";
import { getDb } from "funjia-server/lib/funjia-server.mjs";
const getEmployee = (router) => {
router.post('/api/employee/list', async (ctx) => {
// 设置头类型, 如果不设置,会直接下载该页面
ctx.type = 'application/json';
const db = await getDb();
const body = ctx.request.body;
const data = db.data?.employee?.filter((item) => {
let isMatch = true;
for (let field in body) {
if (["page", "pageSize"].includes(field)) {
continue;
}
if (typeof (item[field]) == "string") {
isMatch = item[field]?.indexOf?.(body[field]) > -1;
} else if (typeof (item[field]) == "number") {
isMatch = item[field] == body[field];
}
if (!isMatch)
break;
}
return isMatch;
});
const {
page,
pageSize
} = body;
let batchData = data;
if (page && pageSize) {
batchData = data.slice((page - 1) * pageSize, page * pageSize);
}
ctx.body = {
code: 0,
data: batchData || [],
total: data.length
};
});
router.get('/api/employee', async (ctx) => {
// 设置头类型, 如果不设置,会直接下载该页面
ctx.type = 'application/json';
const db = await getDb();
const data = db.data.employee;
const query = ctx.request.query;
console.log("参数:", query, ctx.request.body, ctx.query);
let detail = {};
if (query.id && data) {
detail = data.find((item) => {
return item.id == query.id;
});
}
ctx.body = {
code: 0,
data: detail || {}
};
});
router.post('/api/employee/add', async (ctx) => {
ctx.type = 'application/json';
const db = await getDb();
// You can also use this syntax if you prefer
if (!db.data?.employee)
db.data.employee = [];
const {
employee
} = db.data;
const data = ctx.request.body;
console.log("add:", data);
data.id = cuid();
data.createTime = new Date();
employee.push(data)
// Write db.data content to db.json
await db.write()
ctx.body = {
code: 0,
};
});
router.post('/api/employee/upd', async (ctx) => {
ctx.type = 'application/json';
const db = await getDb();
// You can also use this syntax if you prefer
if (!db.data?.employee)
db.data = {
employee: []
}
const {
employee
} = db.data;
const data = ctx.request.body;
const id = data.id;
console.log("数据Id", id);
if (id && employee) {
const currentDetail = employee.find(item => item.id == id);
if (currentDetail) {
_.merge(currentDetail, data);
}
// Write db.data content to db.json
await db.write()
}
ctx.body = {
code: 0,
};
});
router.post('/api/employee/delete', async (ctx) => {
ctx.type = 'application/json';
const db = await getDb();
// You can also use this syntax if you prefer
if (!db.data?.employee)
db.data = {
employee: []
}
let {
employee
} = db.data;
const data = ctx.request.body;
const ids = data.ids;
if (ids?.length > 0 && employee) {
let id = null;
for (let i = 0; i < ids.length; i++) {
id = ids[i];
const idx = employee.findIndex(item => item.id == id);
if (idx != -1) {
employee.splice(idx, 1);
}
}
// Write db.data content to db.json
await db.write()
}
ctx.body = {
code: 0,
};
});
router.post('/api/employee/login', async (ctx) => {
// 设置头类型, 如果不设置,会直接下载该页面
ctx.type = 'application/json';
const db = await getDb();
const data = db.data.employee;
const params = ctx.request.body;
let detail = {};
if (data) {
detail = data.find((item) => {
return item.userName == params.userName && item.pwd == params.pwd;
});
}
const code = detail ? 0 : 1;
ctx.body = {
code,
data: detail || {}
};
});
}
export default getEmployee;
+154
View File
@@ -0,0 +1,154 @@
import cuid from "cuid";
// import getDb from "../dbServer.mjs";
import {getDb} from "funjia-server/lib/funjia-server.mjs";
import _ from "lodash";
const getNotice = (router) => {
router.post('/api/Notice/list', async (ctx) => {
// 设置头类型, 如果不设置,会直接下载该页面
ctx.type = 'application/json';
const db = await getDb();
const body = ctx.request.body;
const data = db.data?.Notice?.filter((item) => {
let isMatch = true;
for (let field in body) {
if (["page", "pageSize"].includes(field)) {
continue;
}
if (typeof (item[field]) == "string") {
isMatch = item[field]?.indexOf?.(body[field]) > -1;
} else if (typeof (item[field]) == "number") {
isMatch = item[field] == body[field];
}
if (!isMatch)
break;
}
return isMatch;
});
const {
page,
pageSize
} = body;
let batchData = data;
if (page && pageSize) {
batchData = data.slice((page - 1) * pageSize, page * pageSize);
}
ctx.body = {
code: 0,
data: batchData.sort((a, b) => {
return a.sort - b.sort;
}) || [],
total: data.length
};
});
router.get('/api/Notice', async (ctx) => {
// 设置头类型, 如果不设置,会直接下载该页面
ctx.type = 'application/json';
const db = await getDb();
const data = db.data.Notice;
const query = ctx.request.query;
console.log("参数:", query, ctx.request.body, ctx.query);
let detail = {};
if (query.id && data) {
detail = data.find((item) => {
return item.id == query.id;
});
}
ctx.body = {
code: 0,
data: detail || {}
};
});
router.post('/api/Notice/add', async (ctx) => {
ctx.type = 'application/json';
const db = await getDb();
// You can also use this syntax if you prefer
if (!db.data?.Notice)
db.data.Notice = [];
const {
Notice
} = db.data;
const data = ctx.request.body;
console.log("add:", data);
data.id = cuid();
data.createTime = new Date();
Notice.push(data)
// Write db.data content to db.json
await db.write()
ctx.body = {
code: 0,
};
});
router.post('/api/Notice/upd', async (ctx) => {
ctx.type = 'application/json';
const db = await getDb();
// You can also use this syntax if you prefer
if (!db.data?.Notice)
db.data = {
Notice: []
}
const {
Notice
} = db.data;
const data = ctx.request.body;
const id = data.id;
console.log("数据Id", id);
if (id && Notice) {
const currentDetail = Notice.find(item => item.id == id);
if (currentDetail) {
_.merge(currentDetail, data);
}
// Write db.data content to db.json
await db.write()
}
ctx.body = {
code: 0,
};
});
router.post('/api/Notice/delete', async (ctx) => {
ctx.type = 'application/json';
const db = await getDb();
// You can also use this syntax if you prefer
if (!db.data?.Notice)
db.data = {
Notice: []
}
let {
Notice
} = db.data;
const data = ctx.request.body;
const ids = data.ids;
if (ids?.length > 0 && Notice) {
let id = null;
for (let i = 0; i < ids.length; i++) {
id = ids[i];
const idx = Notice.findIndex(item => item.id == id);
if (idx != -1) {
Notice.splice(idx, 1);
}
}
// Write db.data content to db.json
await db.write()
}
ctx.body = {
code: 0,
};
});
}
export default getNotice;
+16
View File
@@ -0,0 +1,16 @@
// import RouterFactor from "../RouterFactory.mjs";
// import DBHelper from "../DBHelper.mjs";
import {RouterFactor,DBHelper} from "funjia-server/lib/funjia-server.mjs";
const getQA = (router) => {
const rF = new RouterFactor({
router,
db: DBHelper.baseDB,
name: "qa"
});
rF.creaetBaseRouter();
}
export default getQA;