From 58739ebd061859f4e1afac79280422234f8c8bda Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Sat, 15 Apr 2023 14:55:42 +0800 Subject: [PATCH] 123 --- src/controller/overview.controller.js | 11 ++++++++++- src/router/overview.route.js | 4 +++- src/service/overview.service.js | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/controller/overview.controller.js b/src/controller/overview.controller.js index aadbbc1..93c5fde 100644 --- a/src/controller/overview.controller.js +++ b/src/controller/overview.controller.js @@ -1,4 +1,7 @@ -const { getAllOverViewList } = require("../service/overview.service"); +const { + getAllOverViewList, + getOverViewDetail, +} = require("../service/overview.service"); const Response = require("../utils/response"); class OverviewController { @@ -7,6 +10,12 @@ class OverviewController { const res = await getAllOverViewList(house_id, coop_ids, batch_ids); ctx.body = Response(0, "获取总览列表数据成功", res); } + + async detail(ctx, next) { + const { id } = ctx.request.query; + const res = await getOverViewDetail(id); + ctx.body = Response(0, "获取列表详情数据成功", res); + } } module.exports = new OverviewController(); diff --git a/src/router/overview.route.js b/src/router/overview.route.js index 0cb36bc..a518580 100644 --- a/src/router/overview.route.js +++ b/src/router/overview.route.js @@ -3,8 +3,10 @@ const Router = require("koa-router"); const router = new Router({ prefix: "/overview" }); const { auth } = require("../middleware/auth.middleware"); -const { list } = require("../controller/overview.controller"); +const { list, detail } = require("../controller/overview.controller"); router.post("/list", auth, list); +router.get("/detail", auth, detail); + module.exports = router; diff --git a/src/service/overview.service.js b/src/service/overview.service.js index 06ef58b..c7aca0f 100644 --- a/src/service/overview.service.js +++ b/src/service/overview.service.js @@ -1,6 +1,7 @@ const Chicken = require("../model/chicken.model"); const { getDayLife, haveSame } = require("../utils/common"); const { getDieTotal } = require("./die.service"); +const { getEnvironmentByCoopId } = require("./environment.service"); const { getBatchCoopByIds, getEmptyCoopList, @@ -87,6 +88,38 @@ class OverviewService { coopNum: hasCoopCount, }; } + + async getOverViewDetail(id) { + const res = await Chicken.findOne({ + where: { + id, + }, + }); + const info = res.dataValues; + + const ids = info.coop_id.split(","); + const allCoops = await getBatchCoopByIds(ids); + info.allCoops = allCoops + .map((item) => { + return item.coop_name; + }) + .join(","); + // 获取该鸡舍的环境数据 + const p = allCoops.map(async (item) => { + const coop_id = item.id; + const house_id = info.house_id; + const environment = await getEnvironmentByCoopId(house_id, coop_id); + item.environment = environment; + return item; + }); + const real = await Promise.all(p); + info.coopInfo = real; + // 需要减去死淘 + const dieNumber = await getDieTotal(ids, info.house_id); + info.now_number = info.chicken_number - dieNumber; + info.day_life = getDayLife(new Date(), info.real_life_init_time); + return info; + } } module.exports = new OverviewService();