maochaoying 2 years ago
parent
commit
b8a6f1231a
  1. 7
      src/controller/environment.controller.js
  2. 11
      src/router/environment.route.js
  3. 85
      src/service/environment.service.js

7
src/controller/environment.controller.js

@ -1,6 +1,7 @@
const { const {
getEnvironmentByCoopId, getEnvironmentByCoopId,
addNewLog, addNewLog,
getEnvironmentHistoryList,
} = require("../service/environment.service"); } = require("../service/environment.service");
const Response = require("../utils/response"); const Response = require("../utils/response");
@ -34,6 +35,12 @@ class EnvironmentController {
); );
ctx.body = Response(0, "新增环境检测数据成功", res); ctx.body = Response(0, "新增环境检测数据成功", res);
} }
async statistics(ctx, next) {
const { coop_id, time_id, indicator_id } = ctx.request.body;
const res = await getEnvironmentHistoryList(coop_id, time_id, indicator_id);
ctx.body = Response(0, "获取环境监测历史数据成功", res);
}
} }
module.exports = new EnvironmentController(); module.exports = new EnvironmentController();

11
src/router/environment.route.js

@ -3,10 +3,19 @@ const Router = require("koa-router");
const router = new Router({ prefix: "/environment" }); const router = new Router({ prefix: "/environment" });
const { auth } = require("../middleware/auth.middleware"); const { auth } = require("../middleware/auth.middleware");
const { detail, addLog } = require("../controller/environment.controller");
const {
detail,
addLog,
statistics,
} = require("../controller/environment.controller");
// 获取某个鸡舍的环境数据
router.get("/detail", auth, detail); router.get("/detail", auth, detail);
// 添加监测数据
router.post("/log", auth, addLog); router.post("/log", auth, addLog);
// 获取环境监测历史数据,用来渲染统计图表
router.post("/statistics", auth, statistics);
module.exports = router; module.exports = router;

85
src/service/environment.service.js

@ -1,6 +1,7 @@
const Environment = require("../model/environment.model"); const Environment = require("../model/environment.model");
const { isIntTime } = require("../utils/common"); const { isIntTime } = require("../utils/common");
const moment = require("moment"); const moment = require("moment");
const { Op } = require("sequelize");
class EnvironmentService { class EnvironmentService {
async getEnvironmentByCoopId(coop_id) { async getEnvironmentByCoopId(coop_id) {
const res = await Environment.findOne({ const res = await Environment.findOne({
@ -37,6 +38,90 @@ class EnvironmentService {
} }
return null; return null;
} }
async getEnvironmentHistoryList(coop_id, time_id, indicator_id) {
let whereObj = {
coop_id,
};
// 需要根据id进行筛选 7天、全部、24小时
if (time_id == "1") {
// 24小时
Object.assign(whereObj, {
log_time: {
[Op.lt]: new Date(),
[Op.gt]: new Date(new Date() - 24 * 60 * 60 * 1000),
},
});
}
if (time_id == "2") {
Object.assign(whereObj, {
log_time: {
[Op.lt]: new Date(),
[Op.gt]: new Date(new Date() - 7 * 24 * 60 * 60 * 1000),
},
});
}
const res = await Environment.findAll({
where: whereObj,
});
const arr = res.map((item) => item.dataValues);
// 根据传来的indicator_id 筛选出对应的数据
console.log(arr);
const temperatureList = arr.map((item) => item.temperature);
const humidityList = arr.map((item) => item.humidity);
const co2List = arr.map((item) => item.co2);
const nh3List = arr.map((item) => item.nh3);
const illuminationList = arr.map((item) => item.illumination);
const windSpeedList = arr.map((item) => item.wind_speed);
const h2sList = arr.map((item) => item.h2s);
const timeList = arr.map((item) =>
moment(item.log_time).format("YYYY-MM-DD HH:mm:ss")
);
// 根据所选监测数据进行筛选
if (indicator_id == "1") {
return {
xData: temperatureList,
yData: timeList,
};
}
if (indicator_id == "2") {
return {
xData: nh3List,
yData: timeList,
};
}
if (indicator_id == "3") {
return {
xData: humidityList,
yData: timeList,
};
}
if (indicator_id == "4") {
return {
xData: co2List,
yData: timeList,
};
}
if (indicator_id == "5") {
return {
xData: illuminationList,
yData: timeList,
};
}
if (indicator_id == "6") {
return {
xData: windSpeedList,
yData: timeList,
};
}
if (indicator_id == "7") {
return {
xData: h2sList,
yData: timeList,
};
}
return null;
}
} }
module.exports = new EnvironmentService(); module.exports = new EnvironmentService();
Loading…
Cancel
Save