diff --git a/src/constant/constant.js b/src/constant/constant.js new file mode 100644 index 0000000..c24747d --- /dev/null +++ b/src/constant/constant.js @@ -0,0 +1,24 @@ +const { Op } = require("sequelize"); +const DATE_FILTER = { + 0: null, + 1: { + [Op.lt]: new Date(), + [Op.gt]: new Date(new Date() - 3 * 24 * 60 * 60 * 1000), + }, + 2: { + [Op.lt]: new Date(), + [Op.gt]: new Date(new Date() - 7 * 24 * 60 * 60 * 1000), + }, + 3: { + [Op.lt]: new Date(), + [Op.gt]: new Date(new Date() - 30 * 24 * 60 * 60 * 1000), + }, + 4: { + [Op.lt]: new Date(), + [Op.gt]: new Date(new Date() - 60 * 24 * 60 * 60 * 1000), + }, +}; + +module.exports = { + DATE_FILTER, +}; diff --git a/src/controller/chicken.controller.js b/src/controller/chicken.controller.js index 80d3d8c..f0a02eb 100644 --- a/src/controller/chicken.controller.js +++ b/src/controller/chicken.controller.js @@ -1,6 +1,7 @@ const { addChicken, getChickenInfoById, + getAllChickenInfo, } = require("../service/chicken.service"); const Response = require("../utils/response"); @@ -37,6 +38,17 @@ class ChickenController { const res = await getChickenInfoById(id, log_name); ctx.body = Response(0, "查询单个新进记录成功", res); } + + async all(ctx, next) { + const { batch_number, coop_ids, put_time, house_id } = ctx.request.body; + const res = await getAllChickenInfo( + batch_number, + coop_ids, + put_time, + house_id + ); + ctx.body = Response(0, "查询新进记录成功", res); + } } module.exports = new ChickenController(); diff --git a/src/router/chicken.route.js b/src/router/chicken.route.js index 6b1b439..9c29ca6 100644 --- a/src/router/chicken.route.js +++ b/src/router/chicken.route.js @@ -3,11 +3,14 @@ const Router = require("koa-router"); const router = new Router({ prefix: "/chicken" }); const { auth, hasAdminPermission } = require("../middleware/auth.middleware"); -const { add, info } = require("../controller/chicken.controller"); +const { add, info, all } = require("../controller/chicken.controller"); router.post("/add", auth, add); // 根据id获取新进鸡苗记录详情。 router.get("/info", auth, info); +// 根据条件查询新进记录 +router.post("/all", auth, all); + module.exports = router; diff --git a/src/service/chicken.service.js b/src/service/chicken.service.js index b24d48a..0bf5a93 100644 --- a/src/service/chicken.service.js +++ b/src/service/chicken.service.js @@ -4,6 +4,8 @@ const { getHouseById } = require("./house.service"); const { getFactoryById } = require("./factory.service"); const { getVarietyById } = require("./variety.service"); const { getBatchCoopByIds } = require("./coop.service"); +const { Op } = require("sequelize"); +const { DATE_FILTER } = require("../constant/constant"); class ChickenService { async addChicken( house_id, @@ -54,6 +56,28 @@ class ChickenService { } return null; } + + async getAllChickenInfo( + batch_number = "", + coop_ids, + put_time = "0", + house_id + ) { + let selectObj = { + batch_number: { + [Op.like]: `%${batch_number}%`, + }, + }; + house_id && Object.assign(selectObj, { house_id }); + DATE_FILTER[put_time] && + Object.assign(selectObj, { put_time: DATE_FILTER[put_time] }); + const res = await Chicken.findAll({ + where: selectObj, + }); + // 根据coop_ids进行筛选一次 + + return res; + } } module.exports = new ChickenService();