maochaoying 2 years ago
parent
commit
577eae6dfd
  1. 1
      src/constant/err.type.js
  2. 41
      src/controller/coop.controller.js
  3. 24
      src/controller/house.controller.js
  4. 15
      src/middleware/coop.middleware.js
  5. 32
      src/model/coop.model.js
  6. 15
      src/router/coop.route.js
  7. 52
      src/service/coop.service.js

1
src/constant/err.type.js

@ -12,4 +12,5 @@ module.exports = {
noAuthorization: Response("40002", "Authorization头部为空"),
noAdminPermission: Response("40003", "没有超级管理员权限"),
houseNameAlreadyExisted: Response("50001", "鸡厂名称已存在"),
coopNameAlreadyExisted: Response("50002", "鸡舍名称重复"),
};

41
src/controller/coop.controller.js

@ -0,0 +1,41 @@
const {
getCoopListById,
createCoop,
updateCoop,
} = require("../service/coop.service");
const Response = require("../utils/response");
class CoopController {
async list(ctx, next) {
const { house_id } = ctx.request.query;
const res = await getCoopListById(house_id);
ctx.body = Response(0, "查询鸡舍列表成功", res);
}
async create(ctx, next) {
const { coop_name, coop_cage_number, chicken_number, house_id } =
ctx.request.body;
const res = await createCoop(
coop_name,
coop_cage_number,
chicken_number,
house_id
);
ctx.body = Response(0, "新增鸡舍成功", res);
}
async update(ctx, next) {
const { coop_name, coop_cage_number, chicken_number, house_id, id } =
ctx.request.body;
const res = await updateCoop(
coop_name,
coop_cage_number,
chicken_number,
house_id,
id
);
ctx.body = Response(0, "更新鸡舍信息成功", res);
}
}
module.exports = new CoopController();

24
src/controller/house.controller.js

@ -2,27 +2,27 @@ const {
getHouseListById,
createHouse,
updateHouse,
} = require("../service/house.service");
const Response = require("../utils/response");
} = require('../service/house.service')
const Response = require('../utils/response')
class HouseController {
async list(ctx, next) {
const { belong } = ctx.request.query;
const res = await getHouseListById(belong);
ctx.body = Response(0, "查询鸡厂列表成功", res);
const { id: belong } = ctx.state.user
const res = await getHouseListById(belong)
ctx.body = Response(0, '查询鸡厂列表成功', res)
}
async create(ctx, next) {
const { belong, house_name, area } = ctx.request.body;
const res = await createHouse(belong, house_name, area);
ctx.body = Response(0, "新增鸡厂成功", res);
const { belong, house_name, area } = ctx.request.body
const res = await createHouse(belong, house_name, area)
ctx.body = Response(0, '新增鸡厂成功', res)
}
async update(ctx, next) {
const { belong, house_name, area, id } = ctx.request.body;
const res = await updateHouse(belong, house_name, area, id);
ctx.body = Response(0, "更新鸡厂信息成功", res);
const { belong, house_name, area, id } = ctx.request.body
const res = await updateHouse(belong, house_name, area, id)
ctx.body = Response(0, '更新鸡厂信息成功', res)
}
}
module.exports = new HouseController();
module.exports = new HouseController()

15
src/middleware/coop.middleware.js

@ -0,0 +1,15 @@
const { getCoopByNameAndHouseId } = require("../service/coop.service");
const { coopNameAlreadyExisted } = require("../constant/err.type");
const verifyCoopExisted = async (ctx, next) => {
const { coop_name, house_id } = ctx.request.body;
if (await getCoopByNameAndHouseId(coop_name, house_id)) {
ctx.app.emit("error", coopNameAlreadyExisted, ctx);
return;
}
await next();
};
module.exports = {
verifyCoopExisted,
};

32
src/model/coop.model.js

@ -0,0 +1,32 @@
const { DataTypes } = require("sequelize");
const seq = require("../db/seq");
const Coop = seq.define("chicken_coop", {
// id 会被sequelize自动创建, 管理
coop_name: {
type: DataTypes.STRING,
allowNull: false,
comment: "鸡舍名称",
},
coop_cage_number: {
type: DataTypes.INTEGER,
allowNull: false,
comment: "鸡舍笼位",
},
chicken_number: {
type: DataTypes.INTEGER,
allowNull: false,
comment: "每笼鸡位",
},
house_id: {
type: DataTypes.INTEGER,
allowNull: false,
comment: "所属鸡场id, 相当于外键",
},
});
// 强制同步数据库(创建数据表)
// Coop.sync({ force: true });
module.exports = Coop;

15
src/router/coop.route.js

@ -0,0 +1,15 @@
const Router = require("koa-router");
const router = new Router({ prefix: "/coop" });
const { auth, hasAdminPermission } = require("../middleware/auth.middleware");
const { verifyCoopExisted } = require("../middleware/coop.middleware");
const { list, create, update } = require("../controller/coop.controller");
router.get("/list", auth, list);
router.post("/create", auth, verifyCoopExisted, create);
router.post("/update", auth, update);
module.exports = router;

52
src/service/coop.service.js

@ -0,0 +1,52 @@
const Coop = require("../model/coop.model");
class CoopService {
async getCoopListById(house_id) {
const res = await Coop.findAll({
where: {
house_id,
},
});
const arr = res.map((item) => item.dataValues);
// 根据belong 查询用户信息并拼接
return arr;
}
async createCoop(coop_name, coop_cage_number, chicken_number, house_id) {
const res = await Coop.create({
coop_name,
coop_cage_number,
chicken_number,
house_id,
});
return res ? res.dataValues : null;
}
async getCoopByNameAndHouseId(coop_name, house_id) {
const whereOpt = {};
coop_name && Object.assign(whereOpt, { coop_name });
house_id && Object.assign(whereOpt, { house_id });
const res = await Coop.findOne({
where: whereOpt,
});
return res ? res.dataValues : null;
}
async updateCoop(coop_name, coop_cage_number, chicken_number, house_id, id) {
const res = await Coop.update(
{
coop_name,
coop_cage_number,
chicken_number,
house_id,
},
{
where: {
id,
},
}
);
return res;
}
}
module.exports = new CoopService();
Loading…
Cancel
Save