高校宿舍调配管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(二)

简介: 高校宿舍调配管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL


四、核心代码

4.1 查询单条个人习惯

@RequestMapping(value = "/getMySettings", method = RequestMethod.GET)
@ApiOperation(value = "查询单条个人习惯")
public Result<MySettings> getMySettings(){
    User currUser = securityUtil.getCurrUser();
    MySettings mySettings = iMySettingsService.getById(currUser.getId());
    if(mySettings == null) {
        mySettings = MySettingsUtils.getMySettings(currUser);
        iMySettingsService.saveOrUpdate(mySettings);
    }
    return new ResultUtil<MySettings>().setData(mySettings);
}

4.2 查询我的室友

@RequestMapping(value = "/getMyFriend", method = RequestMethod.GET)
@ApiOperation(value = "查询我的室友")
public Result<List<MySettings>> getMyFriend(){
    User currUser = securityUtil.getCurrUser();
    MySettings mySettings = iMySettingsService.getById(currUser.getId());
    if(mySettings == null) {
        return ResultUtil.error("没有你的配置");
    }
    QueryWrapper<MySettings> qw = new QueryWrapper<>();
    qw.eq("dorm_id",mySettings.getDormId());
    return new ResultUtil<List<MySettings>>().setData(iMySettingsService.list(qw));
}

4.3 查询宿舍

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询宿舍")
public Result<IPage<Dorm>> getByPage(@ModelAttribute Dorm dorm ,@ModelAttribute PageVo page){
    QueryWrapper<Dorm> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(dorm.getHouse())) {
        qw.like("house",dorm.getHouse());
    }
    if(!ZwzNullUtils.isNull(dorm.getRoom())) {
        qw.like("room",dorm.getRoom());
    }
    if(!ZwzNullUtils.isNull(dorm.getType())) {
        qw.like("type",dorm.getType());
    }
    IPage<Dorm> data = iDormService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<Dorm>>().setData(data);
}

4.4 查询指定性别全部宿舍

@RequestMapping(value = "/getMyAll", method = RequestMethod.GET)
@ApiOperation(value = "查询指定性别全部宿舍")
public Result<List<Dorm>> getMyAll(){
    User currUser = securityUtil.getCurrUser();
    QueryWrapper<Dorm> qw = new QueryWrapper<>();
    if(Objects.equals("女",currUser.getSex())) {
        qw.eq("type","女生宿舍");
    } else {
        qw.eq("type","男生宿舍");
    }
    return new ResultUtil<List<Dorm>>().setData(iDormService.list(qw));
}

4.5 初次分配宿舍

@RequestMapping(value = "/createDorm", method = RequestMethod.GET)
@ApiOperation(value = "初次分配宿舍")
public Result<Object> createDorm(){
    User currUser = securityUtil.getCurrUser();
    MySettings mySettings = iMySettingsService.getById(currUser.getId());
    if(mySettings == null) {
        return ResultUtil.error("未初始化");
    }
    if(!ZwzNullUtils.isNull(mySettings.getDormId())) {
        return ResultUtil.error("您的宿舍已分配!");
    }
    QueryWrapper<DormChange> qw2 = new QueryWrapper<>();
    qw2.eq("user_id",currUser.getId());
    qw2.eq("status","未审核");
    if(iDormChangeService.count(qw2) > 0L) {
        return ResultUtil.error("您已申请,请等待审核!");
    }
    // 确认学生的性别
    String sex = mySettings.getSex();
    if(!Objects.equals("女",sex)) {
        sex = "男";
    }
    // 查询所有宿舍
    List<Dorm> dormList = iDormService.list();
    // 次优解,空宿舍
    Dorm ans2 = null;
    // 最优解,有人且符合条件的宿舍
    Dorm ans1 = null;
    // 最优解符合的条件数
    Integer ansCount = -1;
    for (Dorm d : dormList) {
        if(Objects.equals("男",sex) && Objects.equals("女生宿舍",d.getType()) || Objects.equals("女",sex) && Objects.equals("男生宿舍",d.getType())) {
            // 宿舍性别过滤
            continue;
        }
        // 查询宿舍内的学生
        QueryWrapper<MySettings> sQw = new QueryWrapper<>();
        sQw.eq("dorm_id",d.getId());
        List<MySettings> settingsList = iMySettingsService.list(sQw);
        if(settingsList.size() > 1) {
            // 设定两人满员,过滤该宿舍
        } else if(settingsList.size() < 1) {
            // 找到次优解
            if(ans2 == null) {
                ans2 = d;
            }
        } else {
            // 宿舍内满足条件的数量
            Integer maxCount = 0;
            MySettings se = settingsList.get(0);
            if(se == null) {
                continue;
            }
            // 计算和室友关系的匹配指标
            if(Objects.equals(se.getSetting1(),mySettings.getSetting1())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting2(),mySettings.getSetting2())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting3(),mySettings.getSetting3())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting4(),mySettings.getSetting4())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting5(),mySettings.getSetting5())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting6(),mySettings.getSetting6())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting7(),mySettings.getSetting7())) {
                maxCount ++;
            }
            if(Objects.equals(se.getSetting8(),mySettings.getSetting8())) {
                maxCount ++;
            }
            if(maxCount > ansCount) {
                // 如果满足最优条件
                ansCount = maxCount;
                ans1 = d;
            }
        }
    }
    if(ans1 != null) {
        DormChange dc = MySettingsUtils.createDormChange(mySettings, ans1);
        iDormChangeService.saveOrUpdate(dc);
    } else if(ans2 != null) {
        DormChange dc = MySettingsUtils.createDormChange(mySettings, ans2);
        iDormChangeService.saveOrUpdate(dc);
    } else {
        return ResultUtil.error("没有合适的宿舍");
    }
    return ResultUtil.success();
}

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
7月前
|
人工智能 运维 Java
SpringBoot+MySQL实现动态定时任务
这是一个基于Spring Boot的动态定时任务Demo,利用spring-context模块实现任务调度功能。服务启动时会扫描数据库中的任务表,将任务添加到调度器中,并通过固定频率运行的ScheduleUpdater任务动态更新任务状态和Cron表达式。核心功能包括任务的新增、删除与Cron调整,支持通过ScheduledFuture对象控制任务执行。项目依赖Spring Boot 2.2.10.RELEASE,使用MySQL存储任务信息,包含任务基类ITask及具体实现(如FooTask),便于用户扩展运维界面以增强灵活性。
267 10
|
3月前
|
前端开发 安全 Java
基于springboot+vue开发的会议预约管理系统
一个完整的会议预约管理系统,包含前端用户界面、管理后台和后端API服务。 ### 后端 - **框架**: Spring Boot 2.7.18 - **数据库**: MySQL 5.6+ - **ORM**: MyBatis Plus 3.5.3.1 - **安全**: Spring Security + JWT - **Java版本**: Java 11 ### 前端 - **框架**: Vue 3.3.4 - **UI组件**: Element Plus 2.3.8 - **构建工具**: Vite 4.4.5 - **状态管理**: Pinia 2.1.6 - **HTTP客户端
423 4
基于springboot+vue开发的会议预约管理系统
|
7月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
681 1
|
8月前
|
前端开发 Java 关系型数据库
基于Java+Springboot+Vue开发的鲜花商城管理系统源码+运行
基于Java+Springboot+Vue开发的鲜花商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Java编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Java的鲜花商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。技术学习共同进步
532 7
|
4月前
|
前端开发 JavaScript Java
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
本系统基于SpringBoot与Vue3开发,实现校园食堂评价功能。前台支持用户注册登录、食堂浏览、菜品查看及评价发布;后台提供食堂、菜品与评价管理模块,支持权限控制与数据维护。技术栈涵盖SpringBoot、MyBatisPlus、Vue3、ElementUI等,适配响应式布局,提供完整源码与数据库脚本,可直接运行部署。
265 6
基于springboot+vue开发的校园食堂评价系统【源码+sql+可运行】【50809】
|
7月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
535 17
|
7月前
|
供应链 JavaScript BI
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
这是一款专为小微企业打造的 SaaS ERP 管理系统,基于 SpringBoot+Vue+ElementUI+UniAPP 技术栈开发,帮助企业轻松上云。系统覆盖进销存、采购、销售、生产、财务、品质、OA 办公及 CRM 等核心功能,业务流程清晰且操作简便。支持二次开发与商用,提供自定义界面、审批流配置及灵活报表设计,助力企业高效管理与数字化转型。
647 2
ERP系统源码,基于SpringBoot+Vue+ElementUI+UniAPP开发
|
8月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
2004 26
|
8月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu系统的Docker上安装MySQL的方法
以上的步骤就是在Ubuntu系统的Docker上安装MySQL的详细方法,希望对你有所帮助!
888 12

热门文章

最新文章

推荐镜像

更多