From 225a268e329afde61c8bec71adae3bf215515290 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Mon, 21 Jul 2025 14:00:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=AE=BF=E7=AE=A1=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cursorignore | 3 + .../java/org/dromara/xg/controller/.gitkeep | 2 - .../xg/controller/XgDormAreaController.java | 105 ++++ .../controller/XgDormBuildingController.java | 105 ++++ .../xg/controller/XgDormCampusController.java | 105 ++++ .../XgDormManagerBuildingController.java | 105 ++++ .../controller/XgDormManagerController.java | 117 ++++ .../XgDormManagerSourceController.java | 120 ++++ .../main/java/org/dromara/xg/domain/.gitkeep | 2 - .../org/dromara/xg/domain/XgDormArea.java | 66 +++ .../org/dromara/xg/domain/XgDormBuilding.java | 76 +++ .../org/dromara/xg/domain/XgDormCampus.java | 61 ++ .../org/dromara/xg/domain/XgDormManager.java | 76 +++ .../xg/domain/XgDormManagerBuilding.java | 56 ++ .../xg/domain/XgDormManagerSource.java | 66 +++ .../java/org/dromara/xg/domain/bo/.gitkeep | 2 - .../dromara/xg/domain/bo/XgDormAreaBo.java | 58 ++ .../xg/domain/bo/XgDormBuildingBo.java | 69 +++ .../dromara/xg/domain/bo/XgDormCampusBo.java | 57 ++ .../dromara/xg/domain/bo/XgDormManagerBo.java | 77 +++ .../xg/domain/bo/XgDormManagerBuildingBo.java | 57 ++ .../xg/domain/bo/XgDormManagerSourceBo.java | 67 +++ .../java/org/dromara/xg/domain/vo/.gitkeep | 2 - .../org/dromara/xg/domain/vo/TeacherVO.java | 63 ++ .../dromara/xg/domain/vo/XgDormAreaVo.java | 71 +++ .../xg/domain/vo/XgDormBuildingVo.java | 95 +++ .../dromara/xg/domain/vo/XgDormCampusVo.java | 68 +++ .../xg/domain/vo/XgDormManagerBuildingVo.java | 68 +++ .../xg/domain/vo/XgDormManagerSourceVo.java | 80 +++ .../dromara/xg/domain/vo/XgDormManagerVo.java | 92 +++ .../main/java/org/dromara/xg/mapper/.gitkeep | 2 - .../dromara/xg/mapper/XgDormAreaMapper.java | 22 + .../xg/mapper/XgDormBuildingMapper.java | 22 + .../dromara/xg/mapper/XgDormCampusMapper.java | 15 + .../mapper/XgDormManagerBuildingMapper.java | 15 + .../xg/mapper/XgDormManagerMapper.java | 15 + .../xg/mapper/XgDormManagerSourceMapper.java | 15 + .../main/java/org/dromara/xg/service/.gitkeep | 2 - .../xg/service/IXgDormAreaService.java | 68 +++ .../xg/service/IXgDormBuildingService.java | 68 +++ .../xg/service/IXgDormCampusService.java | 68 +++ .../IXgDormManagerBuildingService.java | 68 +++ .../xg/service/IXgDormManagerService.java | 77 +++ .../service/IXgDormManagerSourceService.java | 78 +++ .../java/org/dromara/xg/service/impl/.gitkeep | 2 - .../service/impl/XgDormAreaServiceImpl.java | 134 +++++ .../impl/XgDormBuildingServiceImpl.java | 136 +++++ .../service/impl/XgDormCampusServiceImpl.java | 133 +++++ .../XgDormManagerBuildingServiceImpl.java | 135 +++++ .../impl/XgDormManagerServiceImpl.java | 182 ++++++ .../impl/XgDormManagerSourceServiceImpl.java | 191 +++++++ .../glysqgx/XgDormManagerSourceMapper.xml | 7 + .../XgDormManagerBuildingMapper.xml | 7 + .../mapper/ssglyxx/XgDormManagerMapper.xml | 7 + .../mapper/sslxx/XgDormBuildingMapper.xml | 51 ++ .../mapper/ssqxx/XgDormAreaMapper.xml | 37 ++ .../mapper/xqxx/XgDormCampusMapper.xml | 7 + backend/script/sql/xg_dorm_manager.sql | 29 + .../宿舍管理数据库建表脚本.sql | 12 +- .../学工管理-宿舍管理/菜单授权列表.sql | 60 ++ .../api/glysqgx/dormManagerSource/index.ts | 63 ++ .../api/glysqgx/dormManagerSource/types.ts | 126 ++++ .../glysslqxgx/dormManagerBuilding/index.ts | 63 ++ .../glysslqxgx/dormManagerBuilding/types.ts | 96 ++++ web/src/api/ssglyxx/dormManager/index.ts | 63 ++ web/src/api/ssglyxx/dormManager/types.ts | 156 +++++ web/src/api/sslxx/dormBuilding/index.ts | 85 +++ web/src/api/sslxx/dormBuilding/types.ts | 126 ++++ web/src/api/ssqxx/dormArea/index.ts | 63 ++ web/src/api/ssqxx/dormArea/types.ts | 91 +++ web/src/api/xqxx/dormCampus/index.ts | 63 ++ web/src/api/xqxx/dormCampus/types.ts | 86 +++ web/src/api/xsssgly/dormManager.ts | 53 ++ web/src/views/sslxx/dormBuilding/index.vue | 540 ++++++++++++++++++ web/src/views/ssqxx/dormArea/index.vue | 392 +++++++++++++ web/src/views/xqxx/dormCampus/index.vue | 250 ++++++++ .../views/xsssgly/components/AdminDialog.vue | 355 ++++++++++++ .../views/xsssgly/components/AdminTable.vue | 21 + .../views/xsssgly/components/ScopeDialog.vue | 153 +++++ web/src/views/xsssgly/index.vue | 445 +++++++++++++++ 80 files changed, 6931 insertions(+), 15 deletions(-) create mode 100644 .cursorignore delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormAreaController.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormBuildingController.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormCampusController.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerBuildingController.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerController.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerSourceController.java delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormArea.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormBuilding.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormCampus.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManager.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerBuilding.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerSource.java delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormAreaBo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormBuildingBo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormCampusBo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBuildingBo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerSourceBo.java delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/TeacherVO.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormAreaVo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormBuildingVo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormCampusVo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerBuildingVo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerSourceVo.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerVo.java delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormAreaMapper.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormBuildingMapper.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormCampusMapper.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerBuildingMapper.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerMapper.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerSourceMapper.java delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormAreaService.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormBuildingService.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormCampusService.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerBuildingService.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerService.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerSourceService.java delete mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/.gitkeep create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormAreaServiceImpl.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormBuildingServiceImpl.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormCampusServiceImpl.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerBuildingServiceImpl.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerServiceImpl.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerSourceServiceImpl.java create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysqgx/XgDormManagerSourceMapper.xml create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysslqxgx/XgDormManagerBuildingMapper.xml create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssglyxx/XgDormManagerMapper.xml create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/sslxx/XgDormBuildingMapper.xml create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssqxx/XgDormAreaMapper.xml create mode 100644 backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/xqxx/XgDormCampusMapper.xml create mode 100644 backend/script/sql/xg_dorm_manager.sql create mode 100644 docs/设计文档/database/学工管理-宿舍管理/菜单授权列表.sql create mode 100644 web/src/api/glysqgx/dormManagerSource/index.ts create mode 100644 web/src/api/glysqgx/dormManagerSource/types.ts create mode 100644 web/src/api/glysslqxgx/dormManagerBuilding/index.ts create mode 100644 web/src/api/glysslqxgx/dormManagerBuilding/types.ts create mode 100644 web/src/api/ssglyxx/dormManager/index.ts create mode 100644 web/src/api/ssglyxx/dormManager/types.ts create mode 100644 web/src/api/sslxx/dormBuilding/index.ts create mode 100644 web/src/api/sslxx/dormBuilding/types.ts create mode 100644 web/src/api/ssqxx/dormArea/index.ts create mode 100644 web/src/api/ssqxx/dormArea/types.ts create mode 100644 web/src/api/xqxx/dormCampus/index.ts create mode 100644 web/src/api/xqxx/dormCampus/types.ts create mode 100644 web/src/api/xsssgly/dormManager.ts create mode 100644 web/src/views/sslxx/dormBuilding/index.vue create mode 100644 web/src/views/ssqxx/dormArea/index.vue create mode 100644 web/src/views/xqxx/dormCampus/index.vue create mode 100644 web/src/views/xsssgly/components/AdminDialog.vue create mode 100644 web/src/views/xsssgly/components/AdminTable.vue create mode 100644 web/src/views/xsssgly/components/ScopeDialog.vue create mode 100644 web/src/views/xsssgly/index.vue diff --git a/.cursorignore b/.cursorignore new file mode 100644 index 00000000..4535580f --- /dev/null +++ b/.cursorignore @@ -0,0 +1,3 @@ +# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv) +temp/ +test/ diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/.gitkeep deleted file mode 100644 index b4578324..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 控制器层 -# 此目录用于存放REST API控制器类 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormAreaController.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormAreaController.java new file mode 100644 index 00000000..97bbc3a1 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormAreaController.java @@ -0,0 +1,105 @@ +package org.dromara.xg.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xg.domain.vo.XgDormAreaVo; +import org.dromara.xg.domain.bo.XgDormAreaBo; +import org.dromara.xg.service.IXgDormAreaService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 宿舍区信息 + * + * @author zlwu + * @date 2025-07-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ssqxx/dormArea") +public class XgDormAreaController extends BaseController { + + private final IXgDormAreaService xgDormAreaService; + + /** + * 查询宿舍区信息列表 + */ + @SaCheckPermission("ssqxx:dormArea:list") + @GetMapping("/list") + public TableDataInfo list(XgDormAreaBo bo, PageQuery pageQuery) { + return xgDormAreaService.queryPageList(bo, pageQuery); + } + + /** + * 导出宿舍区信息列表 + */ + @SaCheckPermission("ssqxx:dormArea:export") + @Log(title = "宿舍区信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XgDormAreaBo bo, HttpServletResponse response) { + List list = xgDormAreaService.queryList(bo); + ExcelUtil.exportExcel(list, "宿舍区信息", XgDormAreaVo.class, response); + } + + /** + * 获取宿舍区信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("ssqxx:dormArea:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xgDormAreaService.queryById(id)); + } + + /** + * 新增宿舍区信息 + */ + @SaCheckPermission("ssqxx:dormArea:add") + @Log(title = "宿舍区信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XgDormAreaBo bo) { + return toAjax(xgDormAreaService.insertByBo(bo)); + } + + /** + * 修改宿舍区信息 + */ + @SaCheckPermission("ssqxx:dormArea:edit") + @Log(title = "宿舍区信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XgDormAreaBo bo) { + return toAjax(xgDormAreaService.updateByBo(bo)); + } + + /** + * 删除宿舍区信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("ssqxx:dormArea:remove") + @Log(title = "宿舍区信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xgDormAreaService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormBuildingController.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormBuildingController.java new file mode 100644 index 00000000..fb7f45c2 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormBuildingController.java @@ -0,0 +1,105 @@ +package org.dromara.xg.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xg.domain.vo.XgDormBuildingVo; +import org.dromara.xg.domain.bo.XgDormBuildingBo; +import org.dromara.xg.service.IXgDormBuildingService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 宿舍楼信息 + * + * @author zlwu + * @date 2025-07-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/sslxx/dormBuilding") +public class XgDormBuildingController extends BaseController { + + private final IXgDormBuildingService xgDormBuildingService; + + /** + * 查询宿舍楼信息列表 + */ + @SaCheckPermission("sslxx:dormBuilding:list") + @GetMapping("/list") + public TableDataInfo list(XgDormBuildingBo bo, PageQuery pageQuery) { + return xgDormBuildingService.queryPageList(bo, pageQuery); + } + + /** + * 导出宿舍楼信息列表 + */ + @SaCheckPermission("sslxx:dormBuilding:export") + @Log(title = "宿舍楼信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XgDormBuildingBo bo, HttpServletResponse response) { + List list = xgDormBuildingService.queryList(bo); + ExcelUtil.exportExcel(list, "宿舍楼信息", XgDormBuildingVo.class, response); + } + + /** + * 获取宿舍楼信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("sslxx:dormBuilding:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xgDormBuildingService.queryById(id)); + } + + /** + * 新增宿舍楼信息 + */ + @SaCheckPermission("sslxx:dormBuilding:add") + @Log(title = "宿舍楼信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XgDormBuildingBo bo) { + return toAjax(xgDormBuildingService.insertByBo(bo)); + } + + /** + * 修改宿舍楼信息 + */ + @SaCheckPermission("sslxx:dormBuilding:edit") + @Log(title = "宿舍楼信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XgDormBuildingBo bo) { + return toAjax(xgDormBuildingService.updateByBo(bo)); + } + + /** + * 删除宿舍楼信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("sslxx:dormBuilding:remove") + @Log(title = "宿舍楼信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xgDormBuildingService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormCampusController.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormCampusController.java new file mode 100644 index 00000000..f9508230 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormCampusController.java @@ -0,0 +1,105 @@ +package org.dromara.xg.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xg.domain.vo.XgDormCampusVo; +import org.dromara.xg.domain.bo.XgDormCampusBo; +import org.dromara.xg.service.IXgDormCampusService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 校区信息 + * + * @author zlwu + * @date 2025-07-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/xqxx/dormCampus") +public class XgDormCampusController extends BaseController { + + private final IXgDormCampusService xgDormCampusService; + + /** + * 查询校区信息列表 + */ + @SaCheckPermission("xqxx:dormCampus:list") + @GetMapping("/list") + public TableDataInfo list(XgDormCampusBo bo, PageQuery pageQuery) { + return xgDormCampusService.queryPageList(bo, pageQuery); + } + + /** + * 导出校区信息列表 + */ + @SaCheckPermission("xqxx:dormCampus:export") + @Log(title = "校区信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XgDormCampusBo bo, HttpServletResponse response) { + List list = xgDormCampusService.queryList(bo); + ExcelUtil.exportExcel(list, "校区信息", XgDormCampusVo.class, response); + } + + /** + * 获取校区信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("xqxx:dormCampus:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xgDormCampusService.queryById(id)); + } + + /** + * 新增校区信息 + */ + @SaCheckPermission("xqxx:dormCampus:add") + @Log(title = "校区信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XgDormCampusBo bo) { + return toAjax(xgDormCampusService.insertByBo(bo)); + } + + /** + * 修改校区信息 + */ + @SaCheckPermission("xqxx:dormCampus:edit") + @Log(title = "校区信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XgDormCampusBo bo) { + return toAjax(xgDormCampusService.updateByBo(bo)); + } + + /** + * 删除校区信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("xqxx:dormCampus:remove") + @Log(title = "校区信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xgDormCampusService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerBuildingController.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerBuildingController.java new file mode 100644 index 00000000..c1dbe63f --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerBuildingController.java @@ -0,0 +1,105 @@ +package org.dromara.xg.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xg.domain.vo.XgDormManagerBuildingVo; +import org.dromara.xg.domain.bo.XgDormManagerBuildingBo; +import org.dromara.xg.service.IXgDormManagerBuildingService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 管理员宿舍楼权限关系 + * + * @author Lion Li + * @date 2025-07-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/glysslqxgx/dormManagerBuilding") +public class XgDormManagerBuildingController extends BaseController { + + private final IXgDormManagerBuildingService xgDormManagerBuildingService; + + /** + * 查询管理员宿舍楼权限关系列表 + */ + @SaCheckPermission("glysslqxgx:dormManagerBuilding:list") + @GetMapping("/list") + public TableDataInfo list(XgDormManagerBuildingBo bo, PageQuery pageQuery) { + return xgDormManagerBuildingService.queryPageList(bo, pageQuery); + } + + /** + * 导出管理员宿舍楼权限关系列表 + */ + @SaCheckPermission("glysslqxgx:dormManagerBuilding:export") + @Log(title = "管理员宿舍楼权限关系", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XgDormManagerBuildingBo bo, HttpServletResponse response) { + List list = xgDormManagerBuildingService.queryList(bo); + ExcelUtil.exportExcel(list, "管理员宿舍楼权限关系", XgDormManagerBuildingVo.class, response); + } + + /** + * 获取管理员宿舍楼权限关系详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("glysslqxgx:dormManagerBuilding:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + return R.ok(xgDormManagerBuildingService.queryById(id)); + } + + /** + * 新增管理员宿舍楼权限关系 + */ + @SaCheckPermission("glysslqxgx:dormManagerBuilding:add") + @Log(title = "管理员宿舍楼权限关系", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XgDormManagerBuildingBo bo) { + return toAjax(xgDormManagerBuildingService.insertByBo(bo)); + } + + /** + * 修改管理员宿舍楼权限关系 + */ + @SaCheckPermission("glysslqxgx:dormManagerBuilding:edit") + @Log(title = "管理员宿舍楼权限关系", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XgDormManagerBuildingBo bo) { + return toAjax(xgDormManagerBuildingService.updateByBo(bo)); + } + + /** + * 删除管理员宿舍楼权限关系 + * + * @param ids 主键串 + */ + @SaCheckPermission("glysslqxgx:dormManagerBuilding:remove") + @Log(title = "管理员宿舍楼权限关系", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(xgDormManagerBuildingService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerController.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerController.java new file mode 100644 index 00000000..edf6cd4b --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerController.java @@ -0,0 +1,117 @@ +package org.dromara.xg.controller; + +import java.util.List; +import java.util.Map; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xg.domain.vo.XgDormManagerVo; +import org.dromara.xg.domain.bo.XgDormManagerBo; +import org.dromara.xg.service.IXgDormManagerService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 宿舍管理员信息 + * + * @author zlwu + * @date 2025-07-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/ssglyxx/dormManager") +public class XgDormManagerController extends BaseController { + + private final IXgDormManagerService xgDormManagerService; + + /** + * 查询宿舍管理员信息列表 + */ + @SaCheckPermission("ssglyxx:dormManager:list") + @GetMapping("/list") + public TableDataInfo list(XgDormManagerBo bo, PageQuery pageQuery) { + return xgDormManagerService.queryPageList(bo, pageQuery); + } + + /** + * 导出宿舍管理员信息列表 + */ + @SaCheckPermission("ssglyxx:dormManager:export") + @Log(title = "宿舍管理员信息", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XgDormManagerBo bo, HttpServletResponse response) { + List list = xgDormManagerService.queryList(bo); + ExcelUtil.exportExcel(list, "宿舍管理员信息", XgDormManagerVo.class, response); + } + + /** + * 获取宿舍管理员信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("ssglyxx:dormManager:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { + return R.ok(xgDormManagerService.queryById(id)); + } + + /** + * 获取教师列表(用于下拉选择) + * + * @param name 教师姓名(可选,用于模糊查询) + * @param managerType 管理员类型(可选,用于查询不同类型的管理员) + */ + @SaCheckPermission("ssglyxx:dormManager:list") + @GetMapping("/teachers") + public R>> listTeachers(@RequestParam(required = false) String name, + @RequestParam(required = false) String managerType) { + return R.ok(xgDormManagerService.queryTeacherList(name, managerType)); + } + + /** + * 新增宿舍管理员信息 + */ + @SaCheckPermission("ssglyxx:dormManager:add") + @Log(title = "宿舍管理员信息", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XgDormManagerBo bo) { + return toAjax(xgDormManagerService.insertByBo(bo)); + } + + /** + * 修改宿舍管理员信息 + */ + @SaCheckPermission("ssglyxx:dormManager:edit") + @Log(title = "宿舍管理员信息", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XgDormManagerBo bo) { + return toAjax(xgDormManagerService.updateByBo(bo)); + } + + /** + * 删除宿舍管理员信息 + * + * @param ids 主键串 + */ + @SaCheckPermission("ssglyxx:dormManager:remove") + @Log(title = "宿舍管理员信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { + return toAjax(xgDormManagerService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerSourceController.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerSourceController.java new file mode 100644 index 00000000..c18ca25d --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/controller/XgDormManagerSourceController.java @@ -0,0 +1,120 @@ +package org.dromara.xg.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.xg.domain.vo.XgDormManagerSourceVo; +import org.dromara.xg.domain.bo.XgDormManagerSourceBo; +import org.dromara.xg.service.IXgDormManagerSourceService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 管理员授权关系 + * + * @author zlwu + * @date 2025-07-20 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/glysqgx/dormManagerSource") +public class XgDormManagerSourceController extends BaseController { + + private final IXgDormManagerSourceService xgDormManagerSourceService; + + /** + * 查询管理员授权关系列表 + */ + @SaCheckPermission("glysqgx:dormManagerSource:list") + @GetMapping("/list") + public TableDataInfo list(XgDormManagerSourceBo bo, PageQuery pageQuery) { + return xgDormManagerSourceService.queryPageList(bo, pageQuery); + } + + /** + * 导出管理员授权关系列表 + */ + @SaCheckPermission("glysqgx:dormManagerSource:export") + @Log(title = "管理员授权关系", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(XgDormManagerSourceBo bo, HttpServletResponse response) { + List list = xgDormManagerSourceService.queryList(bo); + ExcelUtil.exportExcel(list, "管理员授权关系", XgDormManagerSourceVo.class, response); + } + + /** + * 获取管理员授权关系详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("glysqgx:dormManagerSource:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) { + return R.ok(xgDormManagerSourceService.queryById(id)); + } + + /** + * 新增管理员授权关系 + */ + @SaCheckPermission("glysqgx:dormManagerSource:add") + @Log(title = "管理员授权关系", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody XgDormManagerSourceBo bo) { + return toAjax(xgDormManagerSourceService.insertByBo(bo)); + } + + /** + * 修改管理员授权关系 + */ + @SaCheckPermission("glysqgx:dormManagerSource:edit") + @Log(title = "管理员授权关系", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody XgDormManagerSourceBo bo) { + return toAjax(xgDormManagerSourceService.updateByBo(bo)); + } + + /** + * 删除管理员授权关系 + * + * @param ids 主键串 + */ + @SaCheckPermission("glysqgx:dormManagerSource:remove") + @Log(title = "管理员授权关系", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { + return toAjax(xgDormManagerSourceService.deleteWithValidByIds(List.of(ids), true)); + } + + /** + * 批量分配管理员数据范围 + * + * @param managerId 管理员ID + * @param authType 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + * @param authSourceIds 授权来源ID列表 + */ + @SaCheckPermission("glysqgx:dormManagerSource:edit") + @Log(title = "分配管理员数据范围", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PostMapping("/assignScope") + public R assignScope(@RequestParam @NotNull(message = "管理员ID不能为空") Long managerId, + @RequestParam @NotNull(message = "授权类型不能为空") Character authType, + @RequestBody @NotEmpty(message = "授权来源ID不能为空") List authSourceIds) { + return toAjax(xgDormManagerSourceService.assignScope(managerId, authType, authSourceIds)); + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/.gitkeep deleted file mode 100644 index 008b7da7..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 实体类 -# 此目录用于存放数据库实体类,对应数据库表结构 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormArea.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormArea.java new file mode 100644 index 00000000..3481a8da --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormArea.java @@ -0,0 +1,66 @@ +package org.dromara.xg.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 宿舍区信息对象 xg_dorm_area + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xg_dorm_area") +public class XgDormArea extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 宿舍区编码 + */ + private String areaCode; + + /** + * 宿舍区名称 + */ + private String areaName; + + /** + * 所属校区ID + */ + private Long campusId; + + /** + * 宿舍区描述 + */ + private String areaDescription; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic(value = "0", delval = "1") + private String deleted; + + /** + * 备注 + */ + private String remark; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormBuilding.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormBuilding.java new file mode 100644 index 00000000..439281f8 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormBuilding.java @@ -0,0 +1,76 @@ +package org.dromara.xg.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 宿舍楼信息对象 xg_dorm_building + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xg_dorm_building") +public class XgDormBuilding extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 宿舍楼编码 + */ + private String buildingCode; + + /** + * 宿舍楼名称 + */ + private String buildingName; + + /** + * 所属宿舍区ID + */ + private Long areaId; + + /** + * 所属校区ID + */ + private Long campusId; + + /** + * 宿舍楼类型(1男生楼 2女生楼 3混合楼) + */ + private String buildingType; + + /** + * 宿舍楼描述 + */ + private String buildingDescription; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic(value = "0", delval = "1") + private String deleted; + + /** + * 备注 + */ + private String remark; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormCampus.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormCampus.java new file mode 100644 index 00000000..c6502ccf --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormCampus.java @@ -0,0 +1,61 @@ +package org.dromara.xg.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 校区信息对象 xg_dorm_campus + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xg_dorm_campus") +public class XgDormCampus extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 校区编码 + */ + private String campusCode; + + /** + * 校区名称 + */ + private String campusName; + + /** + * 校区描述 + */ + private String campusDescription; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic(value = "0", delval = "1") + private String deleted; + + /** + * 备注 + */ + private String remark; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManager.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManager.java new file mode 100644 index 00000000..67519ce2 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManager.java @@ -0,0 +1,76 @@ +package org.dromara.xg.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 宿舍管理员信息对象 xg_dorm_manager + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xg_dorm_manager") +public class XgDormManager extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 管理员姓名 + */ + private String managerName; + + /** + * 管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员) + */ + private String managerType; + + /** + * 管理级别(1-5,1为最高) + */ + private Long managerLevel; + + /** + * 关联用户ID + */ + private Long userId; + + /** + * 联系电话 + */ + private String phone; + + /** + * 性别(0男 1女 2未知) + */ + private String gender; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic(value = "0", delval = "1") + private String deleted; + + /** + * 备注 + */ + private String remark; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerBuilding.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerBuilding.java new file mode 100644 index 00000000..7d479b77 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerBuilding.java @@ -0,0 +1,56 @@ +package org.dromara.xg.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 管理员宿舍楼权限关系对象 xg_dorm_manager_building + * + * @author Lion Li + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xg_dorm_manager_building") +public class XgDormManagerBuilding extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 管理员ID + */ + private Long managerId; + + /** + * 宿舍楼ID + */ + private Long buildingId; + + /** + * 状态(0有效 1已撤销) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic(value = "0", delval = "1") + private String deleted; + + /** + * 备注 + */ + private String remark; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerSource.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerSource.java new file mode 100644 index 00000000..dc9b6513 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/XgDormManagerSource.java @@ -0,0 +1,66 @@ +package org.dromara.xg.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 管理员授权关系对象 xg_dorm_manager_source + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("xg_dorm_manager_source") +public class XgDormManagerSource extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @TableId(value = "id") + private Long id; + + /** + * 管理员ID + */ + private Long managerId; + + /** + * 权限类型(1查看 2编辑 3完全管理) + */ + private String permissionType; + + /** + * 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + */ + private String authType; + + /** + * 授权来源ID(对应校区ID或宿舍区ID或楼栋ID) + */ + private Long authSource; + + /** + * 状态(0有效 1已撤销) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @TableLogic(value = "0", delval = "1") + private String deleted; + + /** + * 备注 + */ + private String remark; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/.gitkeep deleted file mode 100644 index efe1afff..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 业务对象(Business Object) -# 此目录用于存放业务对象类,用于接收前端参数和业务逻辑处理 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormAreaBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormAreaBo.java new file mode 100644 index 00000000..13d8b2a3 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormAreaBo.java @@ -0,0 +1,58 @@ +package org.dromara.xg.domain.bo; + +import org.dromara.xg.domain.XgDormArea; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 宿舍区信息业务对象 xg_dorm_area + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XgDormArea.class, reverseConvertGenerate = false) +public class XgDormAreaBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 宿舍区编码 + */ + @NotBlank(message = "宿舍区编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String areaCode; + + /** + * 宿舍区名称 + */ + @NotBlank(message = "宿舍区名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String areaName; + + /** + * 所属校区ID + */ + @NotNull(message = "所属校区ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long campusId; + + /** + * 宿舍区描述 + */ + private String areaDescription; + + /** + * 排序号 + */ + private Long sortOrder; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormBuildingBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormBuildingBo.java new file mode 100644 index 00000000..da4cdd69 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormBuildingBo.java @@ -0,0 +1,69 @@ +package org.dromara.xg.domain.bo; + +import org.dromara.xg.domain.XgDormBuilding; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 宿舍楼信息业务对象 xg_dorm_building + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XgDormBuilding.class, reverseConvertGenerate = false) +public class XgDormBuildingBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 宿舍楼编码 + */ + @NotBlank(message = "宿舍楼编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String buildingCode; + + /** + * 宿舍楼名称 + */ + @NotBlank(message = "宿舍楼名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String buildingName; + + /** + * 所属宿舍区ID + */ + @NotNull(message = "所属宿舍区ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long areaId; + + /** + * 所属校区ID + */ + @NotNull(message = "所属校区ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long campusId; + + /** + * 宿舍楼类型(1男生楼 2女生楼 3混合楼) + */ + private String buildingType; + + /** + * 宿舍楼描述 + */ + private String buildingDescription; + + /** + * 排序号 + */ + private Long sortOrder; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormCampusBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormCampusBo.java new file mode 100644 index 00000000..8b28cd70 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormCampusBo.java @@ -0,0 +1,57 @@ +package org.dromara.xg.domain.bo; + +import org.dromara.xg.domain.XgDormCampus; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 校区信息业务对象 xg_dorm_campus + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XgDormCampus.class, reverseConvertGenerate = false) +public class XgDormCampusBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 校区编码 + */ + @NotBlank(message = "校区编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private String campusCode; + + /** + * 校区名称 + */ + @NotBlank(message = "校区名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String campusName; + + /** + * 校区描述 + */ + private String campusDescription; + + /** + * 排序号 + */ + private Long sortOrder; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBo.java new file mode 100644 index 00000000..54ac2995 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBo.java @@ -0,0 +1,77 @@ +package org.dromara.xg.domain.bo; + +import org.dromara.xg.domain.XgDormManager; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 宿舍管理员信息业务对象 xg_dorm_manager + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XgDormManager.class, reverseConvertGenerate = false) +public class XgDormManagerBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 管理员姓名 + */ + @NotBlank(message = "管理员姓名不能为空", groups = { AddGroup.class, EditGroup.class }) + private String managerName; + + /** + * 管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员) + */ + @NotBlank(message = "管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String managerType; + + /** + * 管理级别(1-5,1为最高) + */ + private Long managerLevel; + + /** + * 关联用户ID + */ + private Long userId; + + /** + * 联系电话 + */ + private String phone; + + /** + * 性别(0男 1女 2未知) + */ + private String gender; + + /** + * 状态(0正常 1停用) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + private String deleted; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBuildingBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBuildingBo.java new file mode 100644 index 00000000..fffe51b4 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerBuildingBo.java @@ -0,0 +1,57 @@ +package org.dromara.xg.domain.bo; + +import org.dromara.xg.domain.XgDormManagerBuilding; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 管理员宿舍楼权限关系业务对象 xg_dorm_manager_building + * + * @author Lion Li + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XgDormManagerBuilding.class, reverseConvertGenerate = false) +public class XgDormManagerBuildingBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 管理员ID + */ + @NotNull(message = "管理员ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long managerId; + + /** + * 宿舍楼ID + */ + @NotNull(message = "宿舍楼ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long buildingId; + + /** + * 状态(0有效 1已撤销) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + private String deleted; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerSourceBo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerSourceBo.java new file mode 100644 index 00000000..abfdb13d --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/bo/XgDormManagerSourceBo.java @@ -0,0 +1,67 @@ +package org.dromara.xg.domain.bo; + +import org.dromara.xg.domain.XgDormManagerSource; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; + +/** + * 管理员授权关系业务对象 xg_dorm_manager_source + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = XgDormManagerSource.class, reverseConvertGenerate = false) +public class XgDormManagerSourceBo extends BaseEntity { + + /** + * 主键ID + */ + @NotNull(message = "主键ID不能为空", groups = { EditGroup.class }) + private Long id; + + /** + * 管理员ID + */ + @NotNull(message = "管理员ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long managerId; + + /** + * 权限类型(1查看 2编辑 3完全管理) + */ + private String permissionType; + + /** + * 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + */ + @NotBlank(message = "授权类型(1全校级 2校区级 3宿舍区级 4楼栋级)不能为空", groups = { AddGroup.class, EditGroup.class }) + private String authType; + + /** + * 授权来源ID(对应校区ID或宿舍区ID或楼栋ID) + */ + private Long authSource; + + /** + * 状态(0有效 1已撤销) + */ + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + private String deleted; + + /** + * 备注 + */ + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/.gitkeep deleted file mode 100644 index d65a4d5a..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 视图对象(View Object) -# 此目录用于存放视图对象类,用于返回给前端的数据结构 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/TeacherVO.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/TeacherVO.java new file mode 100644 index 00000000..51c8d956 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/TeacherVO.java @@ -0,0 +1,63 @@ +package org.dromara.xg.domain.vo; + +import lombok.Data; +import lombok.NoArgsConstructor; +import java.io.Serializable; + +/** + * 教师信息视图对象 + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@NoArgsConstructor +public class TeacherVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private Long userId; + + /** + * 用户名称 + */ + private String userName; + + /** + * 手机号码 + */ + private String phonenumber; + + /** + * 用户性别(0男 1女 2未知) + */ + private String sex; + + /** + * 头像地址 + */ + private String avatar; + + /** + * 部门名称 + */ + private String deptName; + + /** + * 备注 + */ + private String remark; + + /** + * 创建者 + */ + private Long createBy; + + /** + * 更新者 + */ + private Long updateBy; +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormAreaVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormAreaVo.java new file mode 100644 index 00000000..409daae4 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormAreaVo.java @@ -0,0 +1,71 @@ +package org.dromara.xg.domain.vo; + +import org.dromara.xg.domain.XgDormArea; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 宿舍区信息视图对象 xg_dorm_area + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XgDormArea.class) +public class XgDormAreaVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 宿舍区编码 + */ + @ExcelProperty(value = "宿舍区编码") + private String areaCode; + + /** + * 宿舍区名称 + */ + @ExcelProperty(value = "宿舍区名称") + private String areaName; + + /** + * 所属校区ID + */ + @ExcelProperty(value = "所属校区ID") + private Long campusId; + + /** + * 校区名称 + */ + @ExcelProperty(value = "校区名称") + private String campusName; + + /** + * 宿舍区描述 + */ + @ExcelProperty(value = "宿舍区描述") + private String areaDescription; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormBuildingVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormBuildingVo.java new file mode 100644 index 00000000..6709739e --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormBuildingVo.java @@ -0,0 +1,95 @@ +package org.dromara.xg.domain.vo; + +import org.dromara.xg.domain.XgDormBuilding; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 宿舍楼信息视图对象 xg_dorm_building + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XgDormBuilding.class) +public class XgDormBuildingVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 宿舍楼编码 + */ + @ExcelProperty(value = "宿舍楼编码") + private String buildingCode; + + /** + * 宿舍楼名称 + */ + @ExcelProperty(value = "宿舍楼名称") + private String buildingName; + + /** + * 所属宿舍区ID + */ + @ExcelProperty(value = "所属宿舍区ID") + private Long areaId; + + /** + * 宿舍区名称 + */ + @ExcelProperty(value = "宿舍区名称") + private String areaName; + + /** + * 所属校区ID + */ + @ExcelProperty(value = "所属校区ID") + private Long campusId; + + /** + * 校区名称 + */ + @ExcelProperty(value = "校区名称") + private String campusName; + + /** + * 宿舍楼类型(1男生楼 2女生楼 3混合楼) + */ + @ExcelProperty(value = "宿舍楼类型(1男生楼 2女生楼 3混合楼)", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "dorm_type") + private String buildingType; + + /** + * 宿舍楼描述 + */ + @ExcelProperty(value = "宿舍楼描述") + private String buildingDescription; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + + // 基础字段 + private Long createBy; // 创建者 + private Date createTime; // 创建时间 + private Long updateBy; // 更新者 + private Date updateTime; // 更新时间 +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormCampusVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormCampusVo.java new file mode 100644 index 00000000..dd4cb956 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormCampusVo.java @@ -0,0 +1,68 @@ +package org.dromara.xg.domain.vo; + +import org.dromara.xg.domain.XgDormCampus; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 校区信息视图对象 xg_dorm_campus + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XgDormCampus.class) +public class XgDormCampusVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 校区编码 + */ + @ExcelProperty(value = "校区编码") + private String campusCode; + + /** + * 校区名称 + */ + @ExcelProperty(value = "校区名称") + private String campusName; + + /** + * 校区描述 + */ + @ExcelProperty(value = "校区描述") + private String campusDescription; + + /** + * 排序号 + */ + @ExcelProperty(value = "排序号") + private Long sortOrder; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerBuildingVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerBuildingVo.java new file mode 100644 index 00000000..d404da1a --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerBuildingVo.java @@ -0,0 +1,68 @@ +package org.dromara.xg.domain.vo; + +import org.dromara.xg.domain.XgDormManagerBuilding; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 管理员宿舍楼权限关系视图对象 xg_dorm_manager_building + * + * @author Lion Li + * @date 2025-07-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XgDormManagerBuilding.class) +public class XgDormManagerBuildingVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 管理员ID + */ + @ExcelProperty(value = "管理员ID") + private Long managerId; + + /** + * 宿舍楼ID + */ + @ExcelProperty(value = "宿舍楼ID") + private Long buildingId; + + /** + * 状态(0有效 1已撤销) + */ + @ExcelProperty(value = "状态(0有效 1已撤销)") + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @ExcelProperty(value = "删除标志(0代表存在 1代表删除)") + private String deleted; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerSourceVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerSourceVo.java new file mode 100644 index 00000000..de49820c --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerSourceVo.java @@ -0,0 +1,80 @@ +package org.dromara.xg.domain.vo; + +import org.dromara.xg.domain.XgDormManagerSource; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 管理员授权关系视图对象 xg_dorm_manager_source + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XgDormManagerSource.class) +public class XgDormManagerSourceVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 管理员ID + */ + @ExcelProperty(value = "管理员ID") + private Long managerId; + + /** + * 权限类型(1查看 2编辑 3完全管理) + */ + @ExcelProperty(value = "权限类型(1查看 2编辑 3完全管理)") + private String permissionType; + + /** + * 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + */ + @ExcelProperty(value = "授权类型(1全校级 2校区级 3宿舍区级 4楼栋级)") + private String authType; + + /** + * 授权来源ID(对应校区ID或宿舍区ID或楼栋ID) + */ + @ExcelProperty(value = "授权来源ID(对应校区ID或宿舍区ID或楼栋ID)") + private Long authSource; + + /** + * 状态(0有效 1已撤销) + */ + @ExcelProperty(value = "状态(0有效 1已撤销)") + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @ExcelProperty(value = "删除标志(0代表存在 1代表删除)") + private String deleted; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerVo.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerVo.java new file mode 100644 index 00000000..ad1cac25 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/domain/vo/XgDormManagerVo.java @@ -0,0 +1,92 @@ +package org.dromara.xg.domain.vo; + +import org.dromara.xg.domain.XgDormManager; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 宿舍管理员信息视图对象 xg_dorm_manager + * + * @author zlwu + * @date 2025-07-20 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = XgDormManager.class) +public class XgDormManagerVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @ExcelProperty(value = "主键ID") + private Long id; + + /** + * 管理员姓名 + */ + @ExcelProperty(value = "管理员姓名") + private String managerName; + + /** + * 管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员) + */ + @ExcelProperty(value = "管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员)") + private String managerType; + + /** + * 管理级别(1-5,1为最高) + */ + @ExcelProperty(value = "管理级别(1-5,1为最高)") + private Long managerLevel; + + /** + * 关联用户ID + */ + @ExcelProperty(value = "关联用户ID") + private Long userId; + + /** + * 联系电话 + */ + @ExcelProperty(value = "联系电话") + private String phone; + + /** + * 性别(0男 1女 2未知) + */ + @ExcelProperty(value = "性别(0男 1女 2未知)") + private String gender; + + /** + * 状态(0正常 1停用) + */ + @ExcelProperty(value = "状态(0正常 1停用)") + private String status; + + /** + * 删除标志(0代表存在 1代表删除) + */ + @ExcelProperty(value = "删除标志(0代表存在 1代表删除)") + private String deleted; + + /** + * 备注 + */ + @ExcelProperty(value = "备注") + private String remark; + + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/.gitkeep deleted file mode 100644 index 9aa902fc..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 数据访问层 -# 此目录用于存放MyBatis Mapper接口 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormAreaMapper.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormAreaMapper.java new file mode 100644 index 00000000..d133e353 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormAreaMapper.java @@ -0,0 +1,22 @@ +package org.dromara.xg.mapper; + +import org.dromara.xg.domain.XgDormArea; +import org.dromara.xg.domain.vo.XgDormAreaVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xg.domain.bo.XgDormAreaBo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** + * 宿舍区信息Mapper接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface XgDormAreaMapper extends BaseMapperPlus { + + /** + * 分页查询并返回校区名称 + */ + Page selectPageWithCampusName(Page page, + @org.apache.ibatis.annotations.Param("bo") XgDormAreaBo bo); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormBuildingMapper.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormBuildingMapper.java new file mode 100644 index 00000000..acb29f7f --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormBuildingMapper.java @@ -0,0 +1,22 @@ +package org.dromara.xg.mapper; + +import org.dromara.xg.domain.XgDormBuilding; +import org.dromara.xg.domain.vo.XgDormBuildingVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.xg.domain.bo.XgDormBuildingBo; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; + +/** + * 宿舍楼信息Mapper接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface XgDormBuildingMapper extends BaseMapperPlus { + + /** + * 分页查询并返回校区名称和宿舍区名称 + */ + Page selectPageWithAreaAndCampusName(Page page, + @org.apache.ibatis.annotations.Param("bo") XgDormBuildingBo bo); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormCampusMapper.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormCampusMapper.java new file mode 100644 index 00000000..6e7716de --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormCampusMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xg.mapper; + +import org.dromara.xg.domain.XgDormCampus; +import org.dromara.xg.domain.vo.XgDormCampusVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 校区信息Mapper接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface XgDormCampusMapper extends BaseMapperPlus { + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerBuildingMapper.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerBuildingMapper.java new file mode 100644 index 00000000..bb9c2edf --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerBuildingMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xg.mapper; + +import org.dromara.xg.domain.XgDormManagerBuilding; +import org.dromara.xg.domain.vo.XgDormManagerBuildingVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 管理员宿舍楼权限关系Mapper接口 + * + * @author Lion Li + * @date 2025-07-20 + */ +public interface XgDormManagerBuildingMapper extends BaseMapperPlus { + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerMapper.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerMapper.java new file mode 100644 index 00000000..a98d6e0c --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xg.mapper; + +import org.dromara.xg.domain.XgDormManager; +import org.dromara.xg.domain.vo.XgDormManagerVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 宿舍管理员信息Mapper接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface XgDormManagerMapper extends BaseMapperPlus { + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerSourceMapper.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerSourceMapper.java new file mode 100644 index 00000000..55701bf0 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/mapper/XgDormManagerSourceMapper.java @@ -0,0 +1,15 @@ +package org.dromara.xg.mapper; + +import org.dromara.xg.domain.XgDormManagerSource; +import org.dromara.xg.domain.vo.XgDormManagerSourceVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 管理员授权关系Mapper接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface XgDormManagerSourceMapper extends BaseMapperPlus { + +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/.gitkeep deleted file mode 100644 index 693568b9..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 业务服务接口层 -# 此目录用于存放Service接口定义 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormAreaService.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormAreaService.java new file mode 100644 index 00000000..a0f10bab --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormAreaService.java @@ -0,0 +1,68 @@ +package org.dromara.xg.service; + +import org.dromara.xg.domain.vo.XgDormAreaVo; +import org.dromara.xg.domain.bo.XgDormAreaBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 宿舍区信息Service接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface IXgDormAreaService { + + /** + * 查询宿舍区信息 + * + * @param id 主键 + * @return 宿舍区信息 + */ + XgDormAreaVo queryById(Long id); + + /** + * 分页查询宿舍区信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宿舍区信息分页列表 + */ + TableDataInfo queryPageList(XgDormAreaBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的宿舍区信息列表 + * + * @param bo 查询条件 + * @return 宿舍区信息列表 + */ + List queryList(XgDormAreaBo bo); + + /** + * 新增宿舍区信息 + * + * @param bo 宿舍区信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XgDormAreaBo bo); + + /** + * 修改宿舍区信息 + * + * @param bo 宿舍区信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XgDormAreaBo bo); + + /** + * 校验并批量删除宿舍区信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormBuildingService.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormBuildingService.java new file mode 100644 index 00000000..513ccbe2 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormBuildingService.java @@ -0,0 +1,68 @@ +package org.dromara.xg.service; + +import org.dromara.xg.domain.vo.XgDormBuildingVo; +import org.dromara.xg.domain.bo.XgDormBuildingBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 宿舍楼信息Service接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface IXgDormBuildingService { + + /** + * 查询宿舍楼信息 + * + * @param id 主键 + * @return 宿舍楼信息 + */ + XgDormBuildingVo queryById(Long id); + + /** + * 分页查询宿舍楼信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宿舍楼信息分页列表 + */ + TableDataInfo queryPageList(XgDormBuildingBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的宿舍楼信息列表 + * + * @param bo 查询条件 + * @return 宿舍楼信息列表 + */ + List queryList(XgDormBuildingBo bo); + + /** + * 新增宿舍楼信息 + * + * @param bo 宿舍楼信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XgDormBuildingBo bo); + + /** + * 修改宿舍楼信息 + * + * @param bo 宿舍楼信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XgDormBuildingBo bo); + + /** + * 校验并批量删除宿舍楼信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormCampusService.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormCampusService.java new file mode 100644 index 00000000..ec47d9cc --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormCampusService.java @@ -0,0 +1,68 @@ +package org.dromara.xg.service; + +import org.dromara.xg.domain.vo.XgDormCampusVo; +import org.dromara.xg.domain.bo.XgDormCampusBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 校区信息Service接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface IXgDormCampusService { + + /** + * 查询校区信息 + * + * @param id 主键 + * @return 校区信息 + */ + XgDormCampusVo queryById(Long id); + + /** + * 分页查询校区信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 校区信息分页列表 + */ + TableDataInfo queryPageList(XgDormCampusBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的校区信息列表 + * + * @param bo 查询条件 + * @return 校区信息列表 + */ + List queryList(XgDormCampusBo bo); + + /** + * 新增校区信息 + * + * @param bo 校区信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XgDormCampusBo bo); + + /** + * 修改校区信息 + * + * @param bo 校区信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XgDormCampusBo bo); + + /** + * 校验并批量删除校区信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerBuildingService.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerBuildingService.java new file mode 100644 index 00000000..e20b1f7c --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerBuildingService.java @@ -0,0 +1,68 @@ +package org.dromara.xg.service; + +import org.dromara.xg.domain.vo.XgDormManagerBuildingVo; +import org.dromara.xg.domain.bo.XgDormManagerBuildingBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 管理员宿舍楼权限关系Service接口 + * + * @author Lion Li + * @date 2025-07-20 + */ +public interface IXgDormManagerBuildingService { + + /** + * 查询管理员宿舍楼权限关系 + * + * @param id 主键 + * @return 管理员宿舍楼权限关系 + */ + XgDormManagerBuildingVo queryById(Long id); + + /** + * 分页查询管理员宿舍楼权限关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 管理员宿舍楼权限关系分页列表 + */ + TableDataInfo queryPageList(XgDormManagerBuildingBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的管理员宿舍楼权限关系列表 + * + * @param bo 查询条件 + * @return 管理员宿舍楼权限关系列表 + */ + List queryList(XgDormManagerBuildingBo bo); + + /** + * 新增管理员宿舍楼权限关系 + * + * @param bo 管理员宿舍楼权限关系 + * @return 是否新增成功 + */ + Boolean insertByBo(XgDormManagerBuildingBo bo); + + /** + * 修改管理员宿舍楼权限关系 + * + * @param bo 管理员宿舍楼权限关系 + * @return 是否修改成功 + */ + Boolean updateByBo(XgDormManagerBuildingBo bo); + + /** + * 校验并批量删除管理员宿舍楼权限关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerService.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerService.java new file mode 100644 index 00000000..2a487ebe --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerService.java @@ -0,0 +1,77 @@ +package org.dromara.xg.service; + +import org.dromara.xg.domain.vo.XgDormManagerVo; +import org.dromara.xg.domain.bo.XgDormManagerBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 宿舍管理员信息Service接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface IXgDormManagerService { + + /** + * 查询宿舍管理员信息 + * + * @param id 主键 + * @return 宿舍管理员信息 + */ + XgDormManagerVo queryById(Long id); + + /** + * 分页查询宿舍管理员信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宿舍管理员信息分页列表 + */ + TableDataInfo queryPageList(XgDormManagerBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的宿舍管理员信息列表 + * + * @param bo 查询条件 + * @return 宿舍管理员信息列表 + */ + List queryList(XgDormManagerBo bo); + + /** + * 查询教师列表(用于下拉选择) + * + * @param name 教师姓名(可选,用于模糊查询) + * @return 教师列表 + */ + List> queryTeacherList(String name, String managerType); + + /** + * 新增宿舍管理员信息 + * + * @param bo 宿舍管理员信息 + * @return 是否新增成功 + */ + Boolean insertByBo(XgDormManagerBo bo); + + /** + * 修改宿舍管理员信息 + * + * @param bo 宿舍管理员信息 + * @return 是否修改成功 + */ + Boolean updateByBo(XgDormManagerBo bo); + + /** + * 校验并批量删除宿舍管理员信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerSourceService.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerSourceService.java new file mode 100644 index 00000000..a5628d61 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/IXgDormManagerSourceService.java @@ -0,0 +1,78 @@ +package org.dromara.xg.service; + +import org.dromara.xg.domain.vo.XgDormManagerSourceVo; +import org.dromara.xg.domain.bo.XgDormManagerSourceBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 管理员授权关系Service接口 + * + * @author zlwu + * @date 2025-07-20 + */ +public interface IXgDormManagerSourceService { + + /** + * 查询管理员授权关系 + * + * @param id 主键 + * @return 管理员授权关系 + */ + XgDormManagerSourceVo queryById(Long id); + + /** + * 分页查询管理员授权关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 管理员授权关系分页列表 + */ + TableDataInfo queryPageList(XgDormManagerSourceBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的管理员授权关系列表 + * + * @param bo 查询条件 + * @return 管理员授权关系列表 + */ + List queryList(XgDormManagerSourceBo bo); + + /** + * 新增管理员授权关系 + * + * @param bo 管理员授权关系 + * @return 是否新增成功 + */ + Boolean insertByBo(XgDormManagerSourceBo bo); + + /** + * 修改管理员授权关系 + * + * @param bo 管理员授权关系 + * @return 是否修改成功 + */ + Boolean updateByBo(XgDormManagerSourceBo bo); + + /** + * 校验并批量删除管理员授权关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 批量分配管理员数据范围 + * + * @param managerId 管理员ID + * @param authType 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + * @param authSourceIds 授权来源ID列表 + * @return 是否分配成功 + */ + Boolean assignScope(Long managerId, Character authType, List authSourceIds); +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/.gitkeep b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/.gitkeep deleted file mode 100644 index 637cd075..00000000 --- a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/.gitkeep +++ /dev/null @@ -1,2 +0,0 @@ -# 学工管理模块 - 业务服务实现层 -# 此目录用于存放Service接口的实现类 diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormAreaServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormAreaServiceImpl.java new file mode 100644 index 00000000..748ee59d --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormAreaServiceImpl.java @@ -0,0 +1,134 @@ +package org.dromara.xg.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.xg.domain.bo.XgDormAreaBo; +import org.dromara.xg.domain.vo.XgDormAreaVo; +import org.dromara.xg.domain.XgDormArea; +import org.dromara.xg.mapper.XgDormAreaMapper; +import org.dromara.xg.service.IXgDormAreaService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 宿舍区信息Service业务层处理 + * + * @author zlwu + * @date 2025-07-20 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class XgDormAreaServiceImpl implements IXgDormAreaService { + + private final XgDormAreaMapper baseMapper; + + /** + * 查询宿舍区信息 + * + * @param id 主键 + * @return 宿舍区信息 + */ + @Override + public XgDormAreaVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询宿舍区信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宿舍区信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XgDormAreaBo bo, PageQuery pageQuery) { + Page result = baseMapper.selectPageWithCampusName(pageQuery.build(), bo); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的宿舍区信息列表 + * + * @param bo 查询条件 + * @return 宿舍区信息列表 + */ + @Override + public List queryList(XgDormAreaBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XgDormAreaBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(XgDormArea::getId); + lqw.like(StringUtils.isNotBlank(bo.getAreaCode()), XgDormArea::getAreaCode, bo.getAreaCode()); + lqw.like(StringUtils.isNotBlank(bo.getAreaName()), XgDormArea::getAreaName, bo.getAreaName()); + lqw.like(StringUtils.isNotBlank(bo.getAreaDescription()), XgDormArea::getAreaDescription, + bo.getAreaDescription()); + return lqw; + } + + /** + * 新增宿舍区信息 + * + * @param bo 宿舍区信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XgDormAreaBo bo) { + XgDormArea add = MapstructUtils.convert(bo, XgDormArea.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改宿舍区信息 + * + * @param bo 宿舍区信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XgDormAreaBo bo) { + XgDormArea update = MapstructUtils.convert(bo, XgDormArea.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XgDormArea entity) { + // TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除宿舍区信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormBuildingServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormBuildingServiceImpl.java new file mode 100644 index 00000000..13a647d5 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormBuildingServiceImpl.java @@ -0,0 +1,136 @@ +package org.dromara.xg.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.xg.domain.bo.XgDormBuildingBo; +import org.dromara.xg.domain.vo.XgDormBuildingVo; +import org.dromara.xg.domain.XgDormBuilding; +import org.dromara.xg.mapper.XgDormBuildingMapper; +import org.dromara.xg.service.IXgDormBuildingService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 宿舍楼信息Service业务层处理 + * + * @author zlwu + * @date 2025-07-20 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class XgDormBuildingServiceImpl implements IXgDormBuildingService { + + private final XgDormBuildingMapper baseMapper; + + /** + * 查询宿舍楼信息 + * + * @param id 主键 + * @return 宿舍楼信息 + */ + @Override + public XgDormBuildingVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询宿舍楼信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宿舍楼信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XgDormBuildingBo bo, PageQuery pageQuery) { + Page result = baseMapper.selectPageWithAreaAndCampusName(pageQuery.build(), bo); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的宿舍楼信息列表 + * + * @param bo 查询条件 + * @return 宿舍楼信息列表 + */ + @Override + public List queryList(XgDormBuildingBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XgDormBuildingBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(XgDormBuilding::getId); + lqw.like(StringUtils.isNotBlank(bo.getBuildingCode()), XgDormBuilding::getBuildingCode, bo.getBuildingCode()); + lqw.like(StringUtils.isNotBlank(bo.getBuildingName()), XgDormBuilding::getBuildingName, bo.getBuildingName()); + lqw.eq(bo.getAreaId() != null, XgDormBuilding::getAreaId, bo.getAreaId()); + lqw.eq(bo.getCampusId() != null, XgDormBuilding::getCampusId, bo.getCampusId()); + lqw.eq(StringUtils.isNotBlank(bo.getBuildingType()), XgDormBuilding::getBuildingType, bo.getBuildingType()); + lqw.eq(bo.getSortOrder() != null, XgDormBuilding::getSortOrder, bo.getSortOrder()); + return lqw; + } + + /** + * 新增宿舍楼信息 + * + * @param bo 宿舍楼信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XgDormBuildingBo bo) { + XgDormBuilding add = MapstructUtils.convert(bo, XgDormBuilding.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改宿舍楼信息 + * + * @param bo 宿舍楼信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XgDormBuildingBo bo) { + XgDormBuilding update = MapstructUtils.convert(bo, XgDormBuilding.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XgDormBuilding entity) { + // TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除宿舍楼信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormCampusServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormCampusServiceImpl.java new file mode 100644 index 00000000..17b50884 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormCampusServiceImpl.java @@ -0,0 +1,133 @@ +package org.dromara.xg.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.xg.domain.bo.XgDormCampusBo; +import org.dromara.xg.domain.vo.XgDormCampusVo; +import org.dromara.xg.domain.XgDormCampus; +import org.dromara.xg.mapper.XgDormCampusMapper; +import org.dromara.xg.service.IXgDormCampusService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 校区信息Service业务层处理 + * + * @author zlwu + * @date 2025-07-20 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class XgDormCampusServiceImpl implements IXgDormCampusService { + + private final XgDormCampusMapper baseMapper; + + /** + * 查询校区信息 + * + * @param id 主键 + * @return 校区信息 + */ + @Override + public XgDormCampusVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询校区信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 校区信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XgDormCampusBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的校区信息列表 + * + * @param bo 查询条件 + * @return 校区信息列表 + */ + @Override + public List queryList(XgDormCampusBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XgDormCampusBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(XgDormCampus::getId); + lqw.like(StringUtils.isNotBlank(bo.getCampusCode()), XgDormCampus::getCampusCode, bo.getCampusCode()); + lqw.like(StringUtils.isNotBlank(bo.getCampusName()), XgDormCampus::getCampusName, bo.getCampusName()); + return lqw; + } + + /** + * 新增校区信息 + * + * @param bo 校区信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XgDormCampusBo bo) { + XgDormCampus add = MapstructUtils.convert(bo, XgDormCampus.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改校区信息 + * + * @param bo 校区信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XgDormCampusBo bo) { + XgDormCampus update = MapstructUtils.convert(bo, XgDormCampus.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XgDormCampus entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除校区信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerBuildingServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerBuildingServiceImpl.java new file mode 100644 index 00000000..70c2f087 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerBuildingServiceImpl.java @@ -0,0 +1,135 @@ +package org.dromara.xg.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.xg.domain.bo.XgDormManagerBuildingBo; +import org.dromara.xg.domain.vo.XgDormManagerBuildingVo; +import org.dromara.xg.domain.XgDormManagerBuilding; +import org.dromara.xg.mapper.XgDormManagerBuildingMapper; +import org.dromara.xg.service.IXgDormManagerBuildingService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 管理员宿舍楼权限关系Service业务层处理 + * + * @author Lion Li + * @date 2025-07-20 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class XgDormManagerBuildingServiceImpl implements IXgDormManagerBuildingService { + + private final XgDormManagerBuildingMapper baseMapper; + + /** + * 查询管理员宿舍楼权限关系 + * + * @param id 主键 + * @return 管理员宿舍楼权限关系 + */ + @Override + public XgDormManagerBuildingVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询管理员宿舍楼权限关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 管理员宿舍楼权限关系分页列表 + */ + @Override + public TableDataInfo queryPageList(XgDormManagerBuildingBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的管理员宿舍楼权限关系列表 + * + * @param bo 查询条件 + * @return 管理员宿舍楼权限关系列表 + */ + @Override + public List queryList(XgDormManagerBuildingBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XgDormManagerBuildingBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(XgDormManagerBuilding::getId); + lqw.eq(bo.getManagerId() != null, XgDormManagerBuilding::getManagerId, bo.getManagerId()); + lqw.eq(bo.getBuildingId() != null, XgDormManagerBuilding::getBuildingId, bo.getBuildingId()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), XgDormManagerBuilding::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getDeleted()), XgDormManagerBuilding::getDeleted, bo.getDeleted()); + return lqw; + } + + /** + * 新增管理员宿舍楼权限关系 + * + * @param bo 管理员宿舍楼权限关系 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XgDormManagerBuildingBo bo) { + XgDormManagerBuilding add = MapstructUtils.convert(bo, XgDormManagerBuilding.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改管理员宿舍楼权限关系 + * + * @param bo 管理员宿舍楼权限关系 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XgDormManagerBuildingBo bo) { + XgDormManagerBuilding update = MapstructUtils.convert(bo, XgDormManagerBuilding.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XgDormManagerBuilding entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除管理员宿舍楼权限关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerServiceImpl.java new file mode 100644 index 00000000..4f60aa02 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerServiceImpl.java @@ -0,0 +1,182 @@ +package org.dromara.xg.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.xg.domain.bo.XgDormManagerBo; +import org.dromara.xg.domain.vo.XgDormManagerVo; +import org.dromara.xg.domain.XgDormManager; +import org.dromara.xg.mapper.XgDormManagerMapper; +import org.dromara.xg.service.IXgDormManagerService; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.ArrayList; +import java.util.HashMap; + +/** + * 宿舍管理员信息Service业务层处理 + * + * @author zlwu + * @date 2025-07-20 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class XgDormManagerServiceImpl implements IXgDormManagerService { + + private final XgDormManagerMapper baseMapper; + private final JdbcTemplate jdbcTemplate; + + /** + * 查询宿舍管理员信息 + * + * @param id 主键 + * @return 宿舍管理员信息 + */ + @Override + public XgDormManagerVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询宿舍管理员信息列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 宿舍管理员信息分页列表 + */ + @Override + public TableDataInfo queryPageList(XgDormManagerBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的宿舍管理员信息列表 + * + * @param bo 查询条件 + * @return 宿舍管理员信息列表 + */ + @Override + public List queryList(XgDormManagerBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + /** + * 查询教师列表(用于下拉选择) + * + * @param name 教师姓名(可选,用于模糊查询) + * @return 教师列表 + */ + @Override + public List> queryTeacherList(String name, String managerType) { + StringBuilder sql = new StringBuilder(); + sql.append( + "SELECT u.user_id as value, u.nick_name as label, u.user_name as username,u.phonenumber as phonenumber, u.sex as sex "); + sql.append("FROM sys_user u "); + sql.append("INNER JOIN sys_user_role ur ON u.user_id = ur.user_id "); + sql.append("INNER JOIN sys_role r ON ur.role_id = r.role_id "); + sql.append( + "WHERE r.role_key = 'teacher' AND u.status = '0' and not exists (select 1 from xg_dorm_manager where user_id = u.user_id and deleted = '0' and manager_type = '" + + managerType + "') "); + + List params = new ArrayList<>(); + + if (StringUtils.isNotBlank(name)) { + sql.append("AND u.nick_name LIKE ? "); + params.add("%" + name + "%"); + } + + sql.append("ORDER BY u.nick_name"); + + try { + if (params.isEmpty()) { + return jdbcTemplate.queryForList(sql.toString()); + } else { + return jdbcTemplate.queryForList(sql.toString(), params.toArray()); + } + } catch (Exception e) { + log.error("查询教师列表异常", e); + return new ArrayList<>(); + } + } + + private LambdaQueryWrapper buildQueryWrapper(XgDormManagerBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(XgDormManager::getId); + lqw.like(StringUtils.isNotBlank(bo.getManagerName()), XgDormManager::getManagerName, bo.getManagerName()); + lqw.eq(StringUtils.isNotBlank(bo.getManagerType()), XgDormManager::getManagerType, bo.getManagerType()); + lqw.eq(bo.getManagerLevel() != null, XgDormManager::getManagerLevel, bo.getManagerLevel()); + lqw.eq(bo.getUserId() != null, XgDormManager::getUserId, bo.getUserId()); + lqw.eq(StringUtils.isNotBlank(bo.getPhone()), XgDormManager::getPhone, bo.getPhone()); + lqw.eq(StringUtils.isNotBlank(bo.getGender()), XgDormManager::getGender, bo.getGender()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), XgDormManager::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getDeleted()), XgDormManager::getDeleted, bo.getDeleted()); + return lqw; + } + + /** + * 新增宿舍管理员信息 + * + * @param bo 宿舍管理员信息 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XgDormManagerBo bo) { + XgDormManager add = MapstructUtils.convert(bo, XgDormManager.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改宿舍管理员信息 + * + * @param bo 宿舍管理员信息 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XgDormManagerBo bo) { + XgDormManager update = MapstructUtils.convert(bo, XgDormManager.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XgDormManager entity) { + // TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除宿舍管理员信息信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerSourceServiceImpl.java b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerSourceServiceImpl.java new file mode 100644 index 00000000..4cc797fa --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/java/org/dromara/xg/service/impl/XgDormManagerSourceServiceImpl.java @@ -0,0 +1,191 @@ +package org.dromara.xg.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.dromara.xg.domain.bo.XgDormManagerSourceBo; +import org.dromara.xg.domain.vo.XgDormManagerSourceVo; +import org.dromara.xg.domain.XgDormManagerSource; +import org.dromara.xg.mapper.XgDormManagerSourceMapper; +import org.dromara.xg.service.IXgDormManagerSourceService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; +import java.util.ArrayList; + +/** + * 管理员授权关系Service业务层处理 + * + * @author zlwu + * @date 2025-07-20 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class XgDormManagerSourceServiceImpl implements IXgDormManagerSourceService { + + private final XgDormManagerSourceMapper baseMapper; + + /** + * 查询管理员授权关系 + * + * @param id 主键 + * @return 管理员授权关系 + */ + @Override + public XgDormManagerSourceVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询管理员授权关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 管理员授权关系分页列表 + */ + @Override + public TableDataInfo queryPageList(XgDormManagerSourceBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的管理员授权关系列表 + * + * @param bo 查询条件 + * @return 管理员授权关系列表 + */ + @Override + public List queryList(XgDormManagerSourceBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(XgDormManagerSourceBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(XgDormManagerSource::getId); + lqw.eq(bo.getManagerId() != null, XgDormManagerSource::getManagerId, bo.getManagerId()); + lqw.eq(StringUtils.isNotBlank(bo.getPermissionType()), XgDormManagerSource::getPermissionType, + bo.getPermissionType()); + lqw.eq(StringUtils.isNotBlank(bo.getAuthType()), XgDormManagerSource::getAuthType, bo.getAuthType()); + lqw.eq(bo.getAuthSource() != null, XgDormManagerSource::getAuthSource, bo.getAuthSource()); + lqw.eq(StringUtils.isNotBlank(bo.getStatus()), XgDormManagerSource::getStatus, bo.getStatus()); + lqw.eq(StringUtils.isNotBlank(bo.getDeleted()), XgDormManagerSource::getDeleted, bo.getDeleted()); + return lqw; + } + + /** + * 新增管理员授权关系 + * + * @param bo 管理员授权关系 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(XgDormManagerSourceBo bo) { + XgDormManagerSource add = MapstructUtils.convert(bo, XgDormManagerSource.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改管理员授权关系 + * + * @param bo 管理员授权关系 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(XgDormManagerSourceBo bo) { + XgDormManagerSource update = MapstructUtils.convert(bo, XgDormManagerSource.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(XgDormManagerSource entity) { + // TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除管理员授权关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + // TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + /** + * 批量分配管理员数据范围 + * + * @param managerId 管理员ID + * @param authType 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + * @param authSourceIds 授权来源ID列表 + * @return 是否分配成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean assignScope(Long managerId, Character authType, List authSourceIds) { + if (managerId == null || authType == null || authSourceIds == null || authSourceIds.isEmpty()) { + return false; + } + + try { + // 1. 先逻辑删除该管理员现有的对应类型的授权数据 + LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(XgDormManagerSource.class) + .set(XgDormManagerSource::getDeleted, "1") + .eq(XgDormManagerSource::getManagerId, managerId) + .eq(XgDormManagerSource::getAuthType, authType.toString()) + .eq(XgDormManagerSource::getDeleted, "0"); + + baseMapper.update(null, updateWrapper); + + // 2. 批量插入新的授权数据 + List insertList = new ArrayList<>(); + for (Long authSourceId : authSourceIds) { + XgDormManagerSource entity = new XgDormManagerSource(); + entity.setManagerId(managerId); + entity.setAuthType(authType.toString()); + entity.setAuthSource(authSourceId); + entity.setPermissionType("3"); // 默认为完全管理权限 + entity.setStatus("0"); // 默认有效 + entity.setDeleted("0"); // 默认未删除 + insertList.add(entity); + } + + // 循环插入,确保每条数据都有唯一ID + for (XgDormManagerSource entity : insertList) { + baseMapper.insert(entity); + } + + return true; + } catch (Exception e) { + log.error("分配管理员数据范围失败", e); + throw e; + } + } +} diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysqgx/XgDormManagerSourceMapper.xml b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysqgx/XgDormManagerSourceMapper.xml new file mode 100644 index 00000000..6dee8388 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysqgx/XgDormManagerSourceMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysslqxgx/XgDormManagerBuildingMapper.xml b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysslqxgx/XgDormManagerBuildingMapper.xml new file mode 100644 index 00000000..ff467a03 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/glysslqxgx/XgDormManagerBuildingMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssglyxx/XgDormManagerMapper.xml b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssglyxx/XgDormManagerMapper.xml new file mode 100644 index 00000000..9e90d3fc --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssglyxx/XgDormManagerMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/sslxx/XgDormBuildingMapper.xml b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/sslxx/XgDormBuildingMapper.xml new file mode 100644 index 00000000..ac218bff --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/sslxx/XgDormBuildingMapper.xml @@ -0,0 +1,51 @@ + + + + + + diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssqxx/XgDormAreaMapper.xml b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssqxx/XgDormAreaMapper.xml new file mode 100644 index 00000000..78830e11 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/ssqxx/XgDormAreaMapper.xml @@ -0,0 +1,37 @@ + + + + + + diff --git a/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/xqxx/XgDormCampusMapper.xml b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/xqxx/XgDormCampusMapper.xml new file mode 100644 index 00000000..0294dd86 --- /dev/null +++ b/backend/ruoyi-modules/ruoyi-xg/src/main/resources/mapper/xqxx/XgDormCampusMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/backend/script/sql/xg_dorm_manager.sql b/backend/script/sql/xg_dorm_manager.sql new file mode 100644 index 00000000..a8f35995 --- /dev/null +++ b/backend/script/sql/xg_dorm_manager.sql @@ -0,0 +1,29 @@ +-- ---------------------------- +-- 宿舍管理员表 +-- ---------------------------- +drop table if exists xg_dorm_manager; +create table xg_dorm_manager ( + id bigint(20) not null comment '主键', + name varchar(100) not null comment '管理员姓名', + phone varchar(11) not null comment '手机号码', + sex int(1) default 0 comment '性别(0男 1女 2未知)', + manager_type int(1) default 0 comment '管理类型(0全校 1校区 2宿舍区 3宿舍楼)', + scope varchar(100) comment '管理范围(校区/宿舍区/宿舍楼)', + user_id bigint(20) comment '关联用户ID', + remark varchar(500) comment '备注', + create_by bigint(20) comment '创建者', + create_time datetime comment '创建时间', + update_by bigint(20) comment '更新者', + update_time datetime comment '更新时间', + deleted char(1) default '0' comment '删除标志(0代表存在 2代表删除)', + tenant_id varchar(20) default '000000' comment '租户编号', + primary key (id) +) engine=innodb comment = '宿舍管理员信息表'; + +-- ---------------------------- +-- 初始数据 +-- ---------------------------- +INSERT INTO xg_dorm_manager(id, name, phone, sex, manager_type, scope, user_id, remark, create_by, create_time, update_by, update_time, deleted, tenant_id) +VALUES (1, '张三', '13800000001', 0, 0, null, 2, '全校主管', 1, sysdate(), 1, sysdate(), '0', '000000'); +INSERT INTO xg_dorm_manager(id, name, phone, sex, manager_type, scope, user_id, remark, create_by, create_time, update_by, update_time, deleted, tenant_id) +VALUES (2, '李四', '13800000002', 1, 0, null, 3, '全校副主管', 1, sysdate(), 1, sysdate(), '0', '000000'); diff --git a/docs/设计文档/database/学工管理-宿舍管理/宿舍管理数据库建表脚本.sql b/docs/设计文档/database/学工管理-宿舍管理/宿舍管理数据库建表脚本.sql index 6e970fc7..c119eb1e 100644 --- a/docs/设计文档/database/学工管理-宿舍管理/宿舍管理数据库建表脚本.sql +++ b/docs/设计文档/database/学工管理-宿舍管理/宿舍管理数据库建表脚本.sql @@ -15,6 +15,7 @@ create table `xg_dorm_campus` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -35,6 +36,7 @@ create table `xg_dorm_area` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -58,6 +60,7 @@ create table `xg_dorm_building` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -83,6 +86,7 @@ create table `xg_dorm_room` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -131,6 +135,7 @@ create table `xg_dorm_bed_student` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -161,6 +166,7 @@ create table `xg_dorm_manager` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -182,6 +188,7 @@ create table `xg_dorm_manager_source` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -201,6 +208,7 @@ create table `xg_dorm_manager_building` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -224,6 +232,7 @@ create table `xg_dorm_college_manager` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -247,6 +256,7 @@ create table `xg_dorm_college_bed` ( `deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)', `tenant_id` bigint(20) default '0' comment '租户编号', `create_by` bigint(20) default null comment '创建者', + `create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门', `create_time` datetime default null comment '创建时间', `update_by` bigint(20) default null comment '更新者', `update_time` datetime default null comment '更新时间', @@ -257,4 +267,4 @@ create table `xg_dorm_college_bed` ( key `idx_bed_id` (`bed_id`), key `idx_building_id` (`building_id`), key `idx_room_id` (`room_id`) -) engine=innodb default charset=utf8mb4 comment='二级学院床位绑定关系表'; \ No newline at end of file +) engine=innodb default charset=utf8mb4 comment='二级学院床位绑定关系表'; \ No newline at end of file diff --git a/docs/设计文档/database/学工管理-宿舍管理/菜单授权列表.sql b/docs/设计文档/database/学工管理-宿舍管理/菜单授权列表.sql new file mode 100644 index 00000000..1a36c813 --- /dev/null +++ b/docs/设计文档/database/学工管理-宿舍管理/菜单授权列表.sql @@ -0,0 +1,60 @@ +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733426065409, '宿舍区信息', '1946805729728077826', '1', 'dormArea', 'ssqxx/dormArea/index', 1, 0, 'C', '0', '0', 'ssqxx:dormArea:list', '#', 103, 1, sysdate(), null, null, '宿舍区信息菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733426065410, '宿舍区信息查询', 1946809733426065409, '1', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733426065411, '宿舍区信息新增', 1946809733426065409, '2', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733426065412, '宿舍区信息修改', 1946809733426065409, '3', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733426065413, '宿舍区信息删除', 1946809733426065409, '4', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733426065414, '宿舍区信息导出', 1946809733426065409, '5', '#', '', 1, 0, 'F', '0', '0', 'ssqxx:dormArea:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809734004879362, '宿舍楼信息', '1946805729728077826', '1', 'dormBuilding', 'sslxx/dormBuilding/index', 1, 0, 'C', '0', '0', 'sslxx:dormBuilding:list', '#', 103, 1, sysdate(), null, null, '宿舍楼信息菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809734004879363, '宿舍楼信息查询', 1946809734004879362, '1', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809734004879364, '宿舍楼信息新增', 1946809734004879362, '2', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809734004879365, '宿舍楼信息修改', 1946809734004879362, '3', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809734004879366, '宿舍楼信息删除', 1946809734004879362, '4', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809734004879367, '宿舍楼信息导出', 1946809734004879362, '5', '#', '', 1, 0, 'F', '0', '0', 'sslxx:dormBuilding:export', '#', 103, 1, sysdate(), null, null, ''); + +-- 菜单 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733761609729, '校区信息', '1946805729728077826', '1', 'dormCampus', 'xqxx/dormCampus/index', 1, 0, 'C', '0', '0', 'xqxx:dormCampus:list', '#', 103, 1, sysdate(), null, null, '校区信息菜单'); + +-- 按钮 SQL +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733761609730, '校区信息查询', 1946809733761609729, '1', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:query', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733761609731, '校区信息新增', 1946809733761609729, '2', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:add', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733761609732, '校区信息修改', 1946809733761609729, '3', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:edit', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733761609733, '校区信息删除', 1946809733761609729, '4', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:remove', '#', 103, 1, sysdate(), null, null, ''); + +insert into sys_menu (menu_id, menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_dept, create_by, create_time, update_by, update_time, remark) +values(1946809733761609734, '校区信息导出', 1946809733761609729, '5', '#', '', 1, 0, 'F', '0', '0', 'xqxx:dormCampus:export', '#', 103, 1, sysdate(), null, null, ''); + diff --git a/web/src/api/glysqgx/dormManagerSource/index.ts b/web/src/api/glysqgx/dormManagerSource/index.ts new file mode 100644 index 00000000..f60d54f4 --- /dev/null +++ b/web/src/api/glysqgx/dormManagerSource/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DormManagerSourceVO, DormManagerSourceForm, DormManagerSourceQuery } from '@/api/glysqgx/dormManagerSource/types'; + +/** + * 查询管理员授权关系列表 + * @param query + * @returns {*} + */ + +export const listDormManagerSource = (query?: DormManagerSourceQuery): AxiosPromise => { + return request({ + url: '/glysqgx/dormManagerSource/list', + method: 'get', + params: query + }); +}; + +/** + * 查询管理员授权关系详细 + * @param id + */ +export const getDormManagerSource = (id: string | number): AxiosPromise => { + return request({ + url: '/glysqgx/dormManagerSource/' + id, + method: 'get' + }); +}; + +/** + * 新增管理员授权关系 + * @param data + */ +export const addDormManagerSource = (data: DormManagerSourceForm) => { + return request({ + url: '/glysqgx/dormManagerSource', + method: 'post', + data: data + }); +}; + +/** + * 修改管理员授权关系 + * @param data + */ +export const updateDormManagerSource = (data: DormManagerSourceForm) => { + return request({ + url: '/glysqgx/dormManagerSource', + method: 'put', + data: data + }); +}; + +/** + * 删除管理员授权关系 + * @param id + */ +export const delDormManagerSource = (id: string | number | Array) => { + return request({ + url: '/glysqgx/dormManagerSource/' + id, + method: 'delete' + }); +}; diff --git a/web/src/api/glysqgx/dormManagerSource/types.ts b/web/src/api/glysqgx/dormManagerSource/types.ts new file mode 100644 index 00000000..28012845 --- /dev/null +++ b/web/src/api/glysqgx/dormManagerSource/types.ts @@ -0,0 +1,126 @@ +export interface DormManagerSourceVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 管理员ID + */ + managerId: string | number; + + /** + * 权限类型(1查看 2编辑 3完全管理) + */ + permissionType: string; + + /** + * 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + */ + authType: string; + + /** + * 授权来源ID(对应校区ID或宿舍区ID或楼栋ID) + */ + authSource: number; + + /** + * 状态(0有效 1已撤销) + */ + status: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface DormManagerSourceForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 管理员ID + */ + managerId?: string | number; + + /** + * 权限类型(1查看 2编辑 3完全管理) + */ + permissionType?: string; + + /** + * 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + */ + authType?: string; + + /** + * 授权来源ID(对应校区ID或宿舍区ID或楼栋ID) + */ + authSource?: number; + + /** + * 状态(0有效 1已撤销) + */ + status?: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface DormManagerSourceQuery extends PageQuery { + + /** + * 管理员ID + */ + managerId?: string | number; + + /** + * 权限类型(1查看 2编辑 3完全管理) + */ + permissionType?: string; + + /** + * 授权类型(1全校级 2校区级 3宿舍区级 4楼栋级) + */ + authType?: string; + + /** + * 授权来源ID(对应校区ID或宿舍区ID或楼栋ID) + */ + authSource?: number; + + /** + * 状态(0有效 1已撤销) + */ + status?: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/web/src/api/glysslqxgx/dormManagerBuilding/index.ts b/web/src/api/glysslqxgx/dormManagerBuilding/index.ts new file mode 100644 index 00000000..aa43cb2c --- /dev/null +++ b/web/src/api/glysslqxgx/dormManagerBuilding/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DormManagerBuildingVO, DormManagerBuildingForm, DormManagerBuildingQuery } from '@/api/glysslqxgx/dormManagerBuilding/types'; + +/** + * 查询管理员宿舍楼权限关系列表 + * @param query + * @returns {*} + */ + +export const listDormManagerBuilding = (query?: DormManagerBuildingQuery): AxiosPromise => { + return request({ + url: '/glysslqxgx/dormManagerBuilding/list', + method: 'get', + params: query + }); +}; + +/** + * 查询管理员宿舍楼权限关系详细 + * @param id + */ +export const getDormManagerBuilding = (id: string | number): AxiosPromise => { + return request({ + url: '/glysslqxgx/dormManagerBuilding/' + id, + method: 'get' + }); +}; + +/** + * 新增管理员宿舍楼权限关系 + * @param data + */ +export const addDormManagerBuilding = (data: DormManagerBuildingForm) => { + return request({ + url: '/glysslqxgx/dormManagerBuilding', + method: 'post', + data: data + }); +}; + +/** + * 修改管理员宿舍楼权限关系 + * @param data + */ +export const updateDormManagerBuilding = (data: DormManagerBuildingForm) => { + return request({ + url: '/glysslqxgx/dormManagerBuilding', + method: 'put', + data: data + }); +}; + +/** + * 删除管理员宿舍楼权限关系 + * @param id + */ +export const delDormManagerBuilding = (id: string | number | Array) => { + return request({ + url: '/glysslqxgx/dormManagerBuilding/' + id, + method: 'delete' + }); +}; diff --git a/web/src/api/glysslqxgx/dormManagerBuilding/types.ts b/web/src/api/glysslqxgx/dormManagerBuilding/types.ts new file mode 100644 index 00000000..14fa8419 --- /dev/null +++ b/web/src/api/glysslqxgx/dormManagerBuilding/types.ts @@ -0,0 +1,96 @@ +export interface DormManagerBuildingVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 管理员ID + */ + managerId: string | number; + + /** + * 宿舍楼ID + */ + buildingId: string | number; + + /** + * 状态(0有效 1已撤销) + */ + status: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface DormManagerBuildingForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 管理员ID + */ + managerId?: string | number; + + /** + * 宿舍楼ID + */ + buildingId?: string | number; + + /** + * 状态(0有效 1已撤销) + */ + status?: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface DormManagerBuildingQuery extends PageQuery { + + /** + * 管理员ID + */ + managerId?: string | number; + + /** + * 宿舍楼ID + */ + buildingId?: string | number; + + /** + * 状态(0有效 1已撤销) + */ + status?: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/web/src/api/ssglyxx/dormManager/index.ts b/web/src/api/ssglyxx/dormManager/index.ts new file mode 100644 index 00000000..5c746455 --- /dev/null +++ b/web/src/api/ssglyxx/dormManager/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DormManagerVO, DormManagerForm, DormManagerQuery } from '@/api/ssglyxx/dormManager/types'; + +/** + * 查询宿舍管理员信息列表 + * @param query + * @returns {*} + */ + +export const listDormManager = (query?: DormManagerQuery): AxiosPromise => { + return request({ + url: '/ssglyxx/dormManager/list', + method: 'get', + params: query + }); +}; + +/** + * 查询宿舍管理员信息详细 + * @param id + */ +export const getDormManager = (id: string | number): AxiosPromise => { + return request({ + url: '/ssglyxx/dormManager/' + id, + method: 'get' + }); +}; + +/** + * 新增宿舍管理员信息 + * @param data + */ +export const addDormManager = (data: DormManagerForm) => { + return request({ + url: '/ssglyxx/dormManager', + method: 'post', + data: data + }); +}; + +/** + * 修改宿舍管理员信息 + * @param data + */ +export const updateDormManager = (data: DormManagerForm) => { + return request({ + url: '/ssglyxx/dormManager', + method: 'put', + data: data + }); +}; + +/** + * 删除宿舍管理员信息 + * @param id + */ +export const delDormManager = (id: string | number | Array) => { + return request({ + url: '/ssglyxx/dormManager/' + id, + method: 'delete' + }); +}; diff --git a/web/src/api/ssglyxx/dormManager/types.ts b/web/src/api/ssglyxx/dormManager/types.ts new file mode 100644 index 00000000..94fc3f50 --- /dev/null +++ b/web/src/api/ssglyxx/dormManager/types.ts @@ -0,0 +1,156 @@ +export interface DormManagerVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 管理员姓名 + */ + managerName: string; + + /** + * 管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员) + */ + managerType: string; + + /** + * 管理级别(1-5,1为最高) + */ + managerLevel: number; + + /** + * 关联用户ID + */ + userId: string | number; + + /** + * 联系电话 + */ + phone: string; + + /** + * 性别(0男 1女 2未知) + */ + gender: string; + + /** + * 状态(0正常 1停用) + */ + status: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface DormManagerForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 管理员姓名 + */ + managerName?: string; + + /** + * 管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员) + */ + managerType?: string; + + /** + * 管理级别(1-5,1为最高) + */ + managerLevel?: number; + + /** + * 关联用户ID + */ + userId?: string | number; + + /** + * 联系电话 + */ + phone?: string; + + /** + * 性别(0男 1女 2未知) + */ + gender?: string; + + /** + * 状态(0正常 1停用) + */ + status?: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface DormManagerQuery extends PageQuery { + + /** + * 管理员姓名 + */ + managerName?: string; + + /** + * 管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员) + */ + managerType?: string; + + /** + * 管理级别(1-5,1为最高) + */ + managerLevel?: number; + + /** + * 关联用户ID + */ + userId?: string | number; + + /** + * 联系电话 + */ + phone?: string; + + /** + * 性别(0男 1女 2未知) + */ + gender?: string; + + /** + * 状态(0正常 1停用) + */ + status?: string; + + /** + * 删除标志(0代表存在 1代表删除) + */ + deleted?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/web/src/api/sslxx/dormBuilding/index.ts b/web/src/api/sslxx/dormBuilding/index.ts new file mode 100644 index 00000000..90bdd29f --- /dev/null +++ b/web/src/api/sslxx/dormBuilding/index.ts @@ -0,0 +1,85 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DormBuildingVO, DormBuildingForm, DormBuildingQuery } from '@/api/sslxx/dormBuilding/types'; + +/** + * 查询宿舍楼信息列表 + * @param query + * @returns {*} + */ + +export const listDormBuilding = (query?: DormBuildingQuery): AxiosPromise => { + return request({ + url: '/sslxx/dormBuilding/list', + method: 'get', + params: query + }); +}; + +/** + * 查询宿舍楼信息详细 + * @param id + */ +export const getDormBuilding = (id: string | number): AxiosPromise => { + return request({ + url: '/sslxx/dormBuilding/' + id, + method: 'get' + }); +}; + +/** + * 新增宿舍楼信息 + * @param data + */ +export const addDormBuilding = (data: DormBuildingForm) => { + return request({ + url: '/sslxx/dormBuilding', + method: 'post', + data: data + }); +}; + +/** + * 修改宿舍楼信息 + * @param data + */ +export const updateDormBuilding = (data: DormBuildingForm) => { + return request({ + url: '/sslxx/dormBuilding', + method: 'put', + data: data + }); +}; + +/** + * 删除宿舍楼信息 + * @param id + */ +export const delDormBuilding = (id: string | number | Array) => { + return request({ + url: '/sslxx/dormBuilding/' + id, + method: 'delete' + }); +}; + +/** + * 获取校区选项列表 + */ +export const listCampusOptions = (): AxiosPromise => { + return request({ + url: '/xqxx/dormCampus/list', + method: 'get' + }); +}; + +/** + * 获取宿舍区树形数据 + * @param campusId 校区ID,如果指定则只返回该校区的宿舍区 + */ +export const listAreaTreeData = (campusId?: string | number): AxiosPromise => { + return request({ + url: '/ssqxx/dormArea/list', + method: 'get', + params: { campusId } + }); +}; diff --git a/web/src/api/sslxx/dormBuilding/types.ts b/web/src/api/sslxx/dormBuilding/types.ts new file mode 100644 index 00000000..f3e62a4b --- /dev/null +++ b/web/src/api/sslxx/dormBuilding/types.ts @@ -0,0 +1,126 @@ +export interface DormBuildingVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 宿舍楼编码 + */ + buildingCode: string; + + /** + * 宿舍楼名称 + */ + buildingName: string; + + /** + * 所属宿舍区ID + */ + areaId: string | number; + + /** + * 所属校区ID + */ + campusId: string | number; + + /** + * 宿舍楼类型(1男生楼 2女生楼 3混合楼) + */ + buildingType: string; + + /** + * 宿舍楼描述 + */ + buildingDescription: string; + + /** + * 排序号 + */ + sortOrder: number; + +} + +export interface DormBuildingForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 宿舍楼编码 + */ + buildingCode?: string; + + /** + * 宿舍楼名称 + */ + buildingName?: string; + + /** + * 所属宿舍区ID + */ + areaId?: string | number; + + /** + * 所属校区ID + */ + campusId?: string | number; + + /** + * 宿舍楼类型(1男生楼 2女生楼 3混合楼) + */ + buildingType?: string; + + /** + * 宿舍楼描述 + */ + buildingDescription?: string; + + /** + * 排序号 + */ + sortOrder?: number; + +} + +export interface DormBuildingQuery extends PageQuery { + + /** + * 宿舍楼编码 + */ + buildingCode?: string; + + /** + * 宿舍楼名称 + */ + buildingName?: string; + + /** + * 所属宿舍区ID + */ + areaId?: string | number; + + /** + * 所属校区ID + */ + campusId?: string | number; + + /** + * 宿舍楼类型(1男生楼 2女生楼 3混合楼) + */ + buildingType?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/web/src/api/ssqxx/dormArea/index.ts b/web/src/api/ssqxx/dormArea/index.ts new file mode 100644 index 00000000..2c5cad2c --- /dev/null +++ b/web/src/api/ssqxx/dormArea/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DormAreaVO, DormAreaForm, DormAreaQuery } from '@/api/ssqxx/dormArea/types'; + +/** + * 查询宿舍区信息列表 + * @param query + * @returns {*} + */ + +export const listDormArea = (query?: DormAreaQuery): AxiosPromise => { + return request({ + url: '/ssqxx/dormArea/list', + method: 'get', + params: query + }); +}; + +/** + * 查询宿舍区信息详细 + * @param id + */ +export const getDormArea = (id: string | number): AxiosPromise => { + return request({ + url: '/ssqxx/dormArea/' + id, + method: 'get' + }); +}; + +/** + * 新增宿舍区信息 + * @param data + */ +export const addDormArea = (data: DormAreaForm) => { + return request({ + url: '/ssqxx/dormArea', + method: 'post', + data: data + }); +}; + +/** + * 修改宿舍区信息 + * @param data + */ +export const updateDormArea = (data: DormAreaForm) => { + return request({ + url: '/ssqxx/dormArea', + method: 'put', + data: data + }); +}; + +/** + * 删除宿舍区信息 + * @param id + */ +export const delDormArea = (id: string | number | Array) => { + return request({ + url: '/ssqxx/dormArea/' + id, + method: 'delete' + }); +}; diff --git a/web/src/api/ssqxx/dormArea/types.ts b/web/src/api/ssqxx/dormArea/types.ts new file mode 100644 index 00000000..758dfe91 --- /dev/null +++ b/web/src/api/ssqxx/dormArea/types.ts @@ -0,0 +1,91 @@ +export interface DormAreaVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 宿舍区编码 + */ + areaCode: string; + + /** + * 宿舍区名称 + */ + areaName: string; + + /** + * 所属校区ID + */ + campusId: string | number; + + /** + * 宿舍区描述 + */ + areaDescription: string; + + /** + * 排序号 + */ + sortOrder: number; + +} + +export interface DormAreaForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 宿舍区编码 + */ + areaCode?: string; + + /** + * 宿舍区名称 + */ + areaName?: string; + + /** + * 所属校区ID + */ + campusId?: string | number; + + /** + * 宿舍区描述 + */ + areaDescription?: string; + + /** + * 排序号 + */ + sortOrder?: number; + +} + +export interface DormAreaQuery extends PageQuery { + + /** + * 宿舍区编码 + */ + areaCode?: string; + + /** + * 宿舍区名称 + */ + areaName?: string; + + /** + * 宿舍区描述 + */ + areaDescription?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/web/src/api/xqxx/dormCampus/index.ts b/web/src/api/xqxx/dormCampus/index.ts new file mode 100644 index 00000000..4c57ab3c --- /dev/null +++ b/web/src/api/xqxx/dormCampus/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DormCampusVO, DormCampusForm, DormCampusQuery } from '@/api/xqxx/dormCampus/types'; + +/** + * 查询校区信息列表 + * @param query + * @returns {*} + */ + +export const listDormCampus = (query?: DormCampusQuery): AxiosPromise => { + return request({ + url: '/xqxx/dormCampus/list', + method: 'get', + params: query + }); +}; + +/** + * 查询校区信息详细 + * @param id + */ +export const getDormCampus = (id: string | number): AxiosPromise => { + return request({ + url: '/xqxx/dormCampus/' + id, + method: 'get' + }); +}; + +/** + * 新增校区信息 + * @param data + */ +export const addDormCampus = (data: DormCampusForm) => { + return request({ + url: '/xqxx/dormCampus', + method: 'post', + data: data + }); +}; + +/** + * 修改校区信息 + * @param data + */ +export const updateDormCampus = (data: DormCampusForm) => { + return request({ + url: '/xqxx/dormCampus', + method: 'put', + data: data + }); +}; + +/** + * 删除校区信息 + * @param id + */ +export const delDormCampus = (id: string | number | Array) => { + return request({ + url: '/xqxx/dormCampus/' + id, + method: 'delete' + }); +}; diff --git a/web/src/api/xqxx/dormCampus/types.ts b/web/src/api/xqxx/dormCampus/types.ts new file mode 100644 index 00000000..f3fc31e2 --- /dev/null +++ b/web/src/api/xqxx/dormCampus/types.ts @@ -0,0 +1,86 @@ +export interface DormCampusVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 校区编码 + */ + campusCode: string; + + /** + * 校区名称 + */ + campusName: string; + + /** + * 校区描述 + */ + campusDescription: string; + + /** + * 排序号 + */ + sortOrder: number; + + /** + * 备注 + */ + remark: string; + +} + +export interface DormCampusForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 校区编码 + */ + campusCode?: string; + + /** + * 校区名称 + */ + campusName?: string; + + /** + * 校区描述 + */ + campusDescription?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 备注 + */ + remark?: string; + +} + +export interface DormCampusQuery extends PageQuery { + + /** + * 校区编码 + */ + campusCode?: string; + + /** + * 校区名称 + */ + campusName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/web/src/api/xsssgly/dormManager.ts b/web/src/api/xsssgly/dormManager.ts new file mode 100644 index 00000000..177876c2 --- /dev/null +++ b/web/src/api/xsssgly/dormManager.ts @@ -0,0 +1,53 @@ +import request from '@/utils/request'; + +// 获取教师列表(根据role_key=teacher筛选) +export function getTeacherList(name?: string, managerType?: string) { + return request({ + url: '/ssglyxx/dormManager/teachers', + method: 'get', + params: { name, managerType } + }); +} + +// 查询宿舍管理员列表 +export function listDormManager(query: any) { + return request({ + url: '/ssglyxx/dormManager/list', + method: 'get', + params: query + }); +} + +// 查询宿舍管理员详情 +export function getDormManager(id: number) { + return request({ + url: `/ssglyxx/dormManager/${id}`, + method: 'get' + }); +} + +// 新增宿舍管理员 +export function addDormManager(data: any) { + return request({ + url: '/ssglyxx/dormManager', + method: 'post', + data + }); +} + +// 修改宿舍管理员 +export function updateDormManager(data: any) { + return request({ + url: '/ssglyxx/dormManager', + method: 'put', + data + }); +} + +// 删除宿舍管理员 +export function deleteDormManager(ids: number | number[]) { + return request({ + url: `/ssglyxx/dormManager/${ids instanceof Array ? ids.join(',') : ids}`, + method: 'delete' + }); +} diff --git a/web/src/views/sslxx/dormBuilding/index.vue b/web/src/views/sslxx/dormBuilding/index.vue new file mode 100644 index 00000000..65a0f048 --- /dev/null +++ b/web/src/views/sslxx/dormBuilding/index.vue @@ -0,0 +1,540 @@ + + + + diff --git a/web/src/views/ssqxx/dormArea/index.vue b/web/src/views/ssqxx/dormArea/index.vue new file mode 100644 index 00000000..78c3745f --- /dev/null +++ b/web/src/views/ssqxx/dormArea/index.vue @@ -0,0 +1,392 @@ + + + + + diff --git a/web/src/views/xqxx/dormCampus/index.vue b/web/src/views/xqxx/dormCampus/index.vue new file mode 100644 index 00000000..cb49b0e8 --- /dev/null +++ b/web/src/views/xqxx/dormCampus/index.vue @@ -0,0 +1,250 @@ + + + diff --git a/web/src/views/xsssgly/components/AdminDialog.vue b/web/src/views/xsssgly/components/AdminDialog.vue new file mode 100644 index 00000000..ab94b74f --- /dev/null +++ b/web/src/views/xsssgly/components/AdminDialog.vue @@ -0,0 +1,355 @@ + + + + + diff --git a/web/src/views/xsssgly/components/AdminTable.vue b/web/src/views/xsssgly/components/AdminTable.vue new file mode 100644 index 00000000..b4e2d8f5 --- /dev/null +++ b/web/src/views/xsssgly/components/AdminTable.vue @@ -0,0 +1,21 @@ + + diff --git a/web/src/views/xsssgly/components/ScopeDialog.vue b/web/src/views/xsssgly/components/ScopeDialog.vue new file mode 100644 index 00000000..78269a84 --- /dev/null +++ b/web/src/views/xsssgly/components/ScopeDialog.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/web/src/views/xsssgly/index.vue b/web/src/views/xsssgly/index.vue new file mode 100644 index 00000000..0a1efbc7 --- /dev/null +++ b/web/src/views/xsssgly/index.vue @@ -0,0 +1,445 @@ + + + + +