maochaoying 2 years ago
parent
commit
2365fa5db6
  1. 12
      src/controller/overview.controller.js
  2. 10
      src/router/overview.route.js
  3. 9
      src/service/coop.service.js
  4. 44
      src/service/overview.service.js

12
src/controller/overview.controller.js

@ -0,0 +1,12 @@
const { getAllOverViewList } = require("../service/overview.service");
const Response = require("../utils/response");
class OverviewController {
async list(ctx, next) {
const { house_id } = ctx.request.body;
const res = await getAllOverViewList(house_id);
ctx.body = Response(0, "获取总览列表数据成功", res);
}
}
module.exports = new OverviewController();

10
src/router/overview.route.js

@ -0,0 +1,10 @@
const Router = require("koa-router");
const router = new Router({ prefix: "/overview" });
const { auth } = require("../middleware/auth.middleware");
const { list } = require("../controller/overview.controller");
router.post("/list", auth, list);
module.exports = router;

9
src/service/coop.service.js

@ -131,6 +131,15 @@ class CoopService {
// realRes 即为空闲 鸡舍 // realRes 即为空闲 鸡舍
return realRes; return realRes;
} }
async getCoopNumbyHouseId(house_id) {
const res = Coop.count({
where: {
house_id,
},
});
return res;
}
} }
module.exports = new CoopService(); module.exports = new CoopService();

44
src/service/overview.service.js

@ -0,0 +1,44 @@
const Chicken = require("../model/chicken.model");
const { getDayLife } = require("../utils/common");
const { getDieTotal } = require("./die.service");
const {
getBatchCoopByIds,
getEmptyCoopList,
getCoopNumbyHouseId,
} = require("./coop.service");
class OverviewService {
async getAllOverViewList(house_id) {
const res = await Chicken.findAll({
where: {
house_id,
is_marketed: 0,
},
});
const arr = res?.map((item) => item.dataValues);
const p = arr.map(async (item) => {
const ids = item.coop_id.split(",");
const allCoops = await getBatchCoopByIds(ids);
item.allCoops = allCoops
.map((item) => {
return item.coop_name;
})
.join(",");
// 需要减去死淘
const dieNumber = await getDieTotal(ids, house_id);
item.now_number = item.chicken_number - dieNumber;
item.day_life = getDayLife(new Date(), item.real_life_init_time);
return item;
});
const result = await Promise.all(p);
const emptyCoop = await getEmptyCoopList(house_id);
const totalCount = await getCoopNumbyHouseId(house_id);
const hasCoopCount = totalCount - (emptyCoop?.length || 0);
const real = [...result, ...emptyCoop];
return {
list: real,
coopNum: hasCoopCount,
};
}
}
module.exports = new OverviewService();
Loading…
Cancel
Save