From 97c80d5fa9f5bbfdd1927ec20619e102fb5b454f Mon Sep 17 00:00:00 2001 From: maochaoying <925670706@qq.com> Date: Tue, 21 Mar 2023 17:02:10 +0800 Subject: [PATCH] 123 --- src/controller/account.controller.js | 11 ++++++++++- src/controller/house.controller.js | 24 ++++++++++++------------ src/router/account.route.js | 8 +++++++- src/service/account.service.js | 16 +++++++++++++--- src/service/coop.service.js | 3 +-- src/service/house.service.js | 36 +++++++++++++++++++++++++++--------- 6 files changed, 70 insertions(+), 28 deletions(-) diff --git a/src/controller/account.controller.js b/src/controller/account.controller.js index 1dc32e6..016c9ad 100644 --- a/src/controller/account.controller.js +++ b/src/controller/account.controller.js @@ -1,5 +1,9 @@ const jwt = require("jsonwebtoken"); -const { createAccount, getAccountInfo } = require("../service/account.service"); +const { + createAccount, + getAccountInfo, + getAllPerson, +} = require("../service/account.service"); const Response = require("../utils/response"); const { JWT_SECRET } = require("../config/config.default"); @@ -38,6 +42,11 @@ class AccountController { ctx.app.emit("error", userLoginError, ctx); } } + + async allAccount(ctx, next) { + const res = await getAllPerson(); + ctx.body = Response(0, "获取所有用户信息成功", res); + } } module.exports = new AccountController(); diff --git a/src/controller/house.controller.js b/src/controller/house.controller.js index 6267a7a..1a795f0 100644 --- a/src/controller/house.controller.js +++ b/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 { id: belong } = ctx.state.user - const res = await getHouseListById(belong) - ctx.body = Response(0, '查询鸡厂列表成功', res) + const { id: belong, role } = ctx.state.user; + const res = await getHouseListById(belong, role); + 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(); diff --git a/src/router/account.route.js b/src/router/account.route.js index b29da3f..1975d9c 100644 --- a/src/router/account.route.js +++ b/src/router/account.route.js @@ -2,7 +2,11 @@ const Router = require("koa-router"); const router = new Router({ prefix: "/account" }); -const { register, login } = require("../controller/account.controller"); +const { + register, + login, + allAccount, +} = require("../controller/account.controller"); const { auth, hasAdminPermission } = require("../middleware/auth.middleware"); const { accountValidator, @@ -25,4 +29,6 @@ router.post( // 登录接口 router.post("/login", accountValidator, verifyLogin, login); +router.get("/all", auth, hasAdminPermission, allAccount); + module.exports = router; diff --git a/src/service/account.service.js b/src/service/account.service.js index 26339a4..895ad2c 100644 --- a/src/service/account.service.js +++ b/src/service/account.service.js @@ -9,18 +9,28 @@ class AccountService { return res.dataValues; } - async getAccountInfo({ id, username, password, role }) { + async getAccountInfo({ id, username, role }) { const whereOpt = {}; id && Object.assign(whereOpt, { id }); username && Object.assign(whereOpt, { username }); - password && Object.assign(whereOpt, { password }); role && Object.assign(whereOpt, { role }); const res = await Account.findOne({ - attributes: ["id", "username", "password", "role"], + attributes: ["id", "username", "role", "name"], where: whereOpt, }); return res ? res.dataValues : null; } + + async getAllPerson() { + const res = await Account.findAll({ + attributes: ["id", "username", "name"], + where: { + role: 0, + }, + }); + const arr = res?.map((item) => item.dataValues); + return arr; + } } module.exports = new AccountService(); diff --git a/src/service/coop.service.js b/src/service/coop.service.js index 867369e..1f1167f 100644 --- a/src/service/coop.service.js +++ b/src/service/coop.service.js @@ -7,8 +7,7 @@ class CoopService { house_id, }, }); - const arr = res.map((item) => item.dataValues); - // 根据belong 查询用户信息并拼接 + const arr = res?.map((item) => item.dataValues); return arr; } diff --git a/src/service/house.service.js b/src/service/house.service.js index f7570ac..25d20eb 100644 --- a/src/service/house.service.js +++ b/src/service/house.service.js @@ -1,15 +1,33 @@ const House = require("../model/house.model"); +const Coop = require("../model/coop.model"); +const { getAccountInfo } = require("./account.service"); class HouseService { - async getHouseListById(belong) { - const res = await House.findAll({ - where: { - belong, - }, + async getHouseListById(belong, role) { + let res = null; + if (role == 1) { + res = await House.findAll(); + } else { + res = await House.findAll({ + where: { + belong, + }, + }); + } + const arr = res?.map(async (item) => { + const personInfo = await getAccountInfo({ id: item.dataValues.belong }); + const coopList = await Coop.findAll({ + where: { + house_id: item.dataValues.id, + }, + }); + const coopRes = coopList?.map((item) => item.dataValues); + item.dataValues.coopList = coopRes; + item.dataValues.name = personInfo.name; + item.dataValues.phonenumber = personInfo.username; + return item.dataValues; }); - - const arr = res.map((item) => item.dataValues); - // 根据belong 查询用户信息并拼接 - return arr; + const real = Promise.all(arr); + return real; } async createHouse(belong, house_name, area) {