77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
const crud = require("../service/biz_admin_crud");
|
|
const baseModel = require("../../middleware/baseModel");
|
|
const audit = require("../service/biz_audit_service");
|
|
|
|
module.exports = {
|
|
"POST /biz_plan/page": async (ctx) => {
|
|
const body = ctx.getBody();
|
|
const data = await crud.page("biz_plan", body);
|
|
ctx.success({ rows: data.rows, count: data.count });
|
|
},
|
|
"POST /biz_plan/add": async (ctx) => {
|
|
const body = ctx.getBody();
|
|
const row = await crud.add("biz_plan", body);
|
|
await audit.logAudit({
|
|
admin_user_id: audit.pickAdminId(ctx),
|
|
action: "biz_plan.add",
|
|
resource_type: "biz_plan",
|
|
resource_id: row.id,
|
|
detail: { plan_code: row.plan_code },
|
|
});
|
|
ctx.success(row);
|
|
},
|
|
"POST /biz_plan/edit": async (ctx) => {
|
|
const body = ctx.getBody();
|
|
await crud.edit("biz_plan", body);
|
|
await audit.logAudit({
|
|
admin_user_id: audit.pickAdminId(ctx),
|
|
action: "biz_plan.edit",
|
|
resource_type: "biz_plan",
|
|
resource_id: body.id,
|
|
});
|
|
ctx.success({});
|
|
},
|
|
"POST /biz_plan/del": async (ctx) => {
|
|
const body = ctx.getBody();
|
|
await crud.del("biz_plan", body);
|
|
await audit.logAudit({
|
|
admin_user_id: audit.pickAdminId(ctx),
|
|
action: "biz_plan.del",
|
|
resource_type: "biz_plan",
|
|
resource_id: body.id,
|
|
});
|
|
ctx.success({});
|
|
},
|
|
"GET /biz_plan/detail": async (ctx) => {
|
|
const q = ctx.query || {};
|
|
const row = await crud.detail("biz_plan", { id: q.id || q.ID });
|
|
ctx.success(row);
|
|
},
|
|
"GET /biz_plan/all": async (ctx) => {
|
|
const rows = await crud.all("biz_plan");
|
|
ctx.success(rows);
|
|
},
|
|
"POST /biz_plan/toggle": async (ctx) => {
|
|
const body = ctx.getBody();
|
|
const id = body.id;
|
|
if (id == null) return ctx.fail("缺少 id");
|
|
const row = await baseModel.biz_plan.findByPk(id);
|
|
if (!row) return ctx.fail("套餐不存在");
|
|
const next = row.status === "active" ? "inactive" : "active";
|
|
await row.update({ status: next });
|
|
await audit.logAudit({
|
|
admin_user_id: audit.pickAdminId(ctx),
|
|
action: "biz_plan.toggle",
|
|
resource_type: "biz_plan",
|
|
resource_id: id,
|
|
detail: { status: next },
|
|
});
|
|
ctx.success({ status: next });
|
|
},
|
|
"POST /biz_plan/export": async (ctx) => {
|
|
const body = ctx.getBody();
|
|
const res = await crud.exportCsv("biz_plan", body);
|
|
ctx.success(res);
|
|
},
|
|
};
|