当前位置: 首页 > article >正文

基于javaweb的SpringBoot小区智慧园区管理系统(源码+文档+部署讲解)

🎬 秋野酱:《个人主页》
🔥 个人专栏:《Java专栏》《Python专栏》

⛺️心若有所向往,何惧道阻且长

文章目录

    • 运行环境
    • 开发工具
    • 适用
    • 功能说明

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基于javaweb的SpringBoot小区智慧园区管理系统(java+springboot+maven+vue+mybatis+jquery+mysql)

项目介绍 本项目为后台管理系统,分为管理员与业主两种角色;
管理员主要功能包括: 首页、公告查询、轮播图、资源管理、园区咨询、咨询分类、系统用户、模块管理;

业主主要功能包括: 首页、公告查询、园区咨询、修改密码、投诉服务、报修管理、业主信息、房屋信息等;

```java
if (value instanceof String) {
    sql.append("'").append(value).append("'").append(",");
} else {
    sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(") INTO ").append(table).append(";");
log.info("{} -- 插入操作: {}", table, sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}

@Transactional
public void update(Map<String, String> query, Map<String, String> config, Map<String, Object> body) {
    StringBuilder sql = new StringBuilder("UPDATE ").append("'").append(table).append("'").append(" SET ");
    for (Map.Entry<String, Object> entry : body.entrySet()) {
        Object value = entry.getValue();
        if (value instanceof String) {
            sql.append("'").append(lineToEntry(entry.getKey())).append("'").append("=").append("'").append(value).append("'").append(",");
        } else {
            sql.append("'").append(lineToEntry(entry.getKey())).append("'").append("=").append(value).append(",");
        }
    }
    sql.deleteCharAt(sql.length() - 1);
    sql.append(where(query, config.get(FindConfig.LINK), config.get(FindConfig.SQLWHERE)));
    log.info("{} -- 更新操作: {}", table, sql);
    Query query1 = runCountSql(sql.toString());
    query1.executeUpdate();
}

public Map<String, Object> selectToMap(Map<String, String> query, Map<String, String> config) {
    Query select = select(query, config);
    Map<String, Object> map = new HashMap<>();
    map.put("list", select.getResultList());
    map.put("count", select.getCount().getSingleResult());
    return map;
}

public Map<String, Object> selectToList(Map<String, String> query, Map<String, String> config) {
    Query select = selectGroupCount(query, config);
    Map<String, Object> map = new HashMap<>();
    map.put("list", select.getResultList());
    return map;
}

public Map<String, Object> selectBarGroup(Map<String, String> query, Map<String, String> config) {
    Query select = barGroup(query, config);
    Map<String, Object> map = new HashMap<>();
    map.put("list", select.getResultList());
    return map;
}
```java
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
    log.info("上传失败: {}", e.getMessage());
    log.error("error=={}", e);
    return error(30001, "上传失败");
}
}

@PostMapping("/import_db")
public Map<String, Object> importDB(@RequestParam("file") MultipartFile file) throws IOException {
    service.importDB(file);
    return success();
}

@RequestMapping("/export_db")
public void exportDB(HttpServletRequest request, HttpServletResponse response) throws IOException {
    HSSFWorkbook sheets = service.exportDB(service.readQuery(request), service.readConfig(request));
    response.setContentType("application/octet - stream");
    response.setHeader("Content - disposition", "attachment;filename=employee.xls");
    response.flushBuffer();
    sheets.write(response.getOutputStream());
    sheets.close();
}

public Map<String, Object> success(Object o) {
    Map<String, Object> map = new HashMap<>();
    if (o == null) {
        map.put("result", null);
        return map;
    }
    if (o instanceof List) {
        if (((List) o).size() == 1) {
            o = ((List) o).get(0);
            map.put("result", o);
        } else {
            String jsonString = JSONObject.toJSONString(o);
            JSONArray objects = service.convertArray(JSONObject.parseArray(jsonString));
            map.put("result", objects);
        }
    } else if (o instanceof Integer || o instanceof String) {
        map.put("result", o);
    } else {
        String jsonString = JSONObject.toJSONString(o);
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
```java
/**
 * @return
 */
@PostMapping("forget_password")
public Map<String, Object> forgetPassword(@RequestBody User form, HttpServletRequest request) {
    JSONObject ret = new JSONObject();
    String username = form.getUsername();
    String code = form.getCode();
    String password = form.getPassword();
    // 判断验证码
    if (code == null || code.length() == 0) {
        return error(30000, "验证码不能为空");
    }
    if (username == null || username.length() == 0) {
        return error(30000, "用户名不能为空");
    }
    if (password == null || password.length() == 0) {
        return error(30000, "密码不能为空");
    }
    // 查询用户
    Map<String, String> query = new HashMap<>();
    query.put("username", username);
    Query select = select(query, service.readConfig(request));
    List list = select.getResultList();
    if (list.size() > 0) {
        User o = (User) list.get(0);
        JSONObject user2 = new JSONObject();
        JSONObject form2 = new JSONObject();
        // 修改用户密码
        query2.put("password", service.encryption(password));
        form2.put("user_id", o.getId());
        service.update(query, service.readConfig(request), form2);
        return success();
    }
    return error(70000, "用户不存在");
}

/**
 * 登录
 * @param data
 * @param request
 * @return
 */
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
    log.info("【执行登录接口】");
```java
public static String humpToLine(String str) {
    if (str == null) {
        return null;
    }
    // 将驼峰字符串转换成数组
    char[] charArray = str.toCharArray();
    StringBuilder buffer = new StringBuilder();
    // 处理字符串
    for (int i = 0, l = charArray.length; i < l; i++) {
        if (charArray[i] >= 65 && charArray[i] <= 90) {
            buffer.append("_").append((char)(charArray[i] + 32));
        } else {
            buffer.append(charArray[i]);
        }
    }
    String s = buffer.toString();
    if (s.startsWith("_")) {
        return s.substring(1);
    } else {
        return s;
    }
}

public JSONObject covertObject(JSONObject object) {
    if (object == null) {
        return null;
    }
    JSONObject newObject = new JSONObject();
    Set<String> set = object.keySet();
    for (String key : set) {
        Object value = object.get(key);
        if (value instanceof JSONArray) {
            // 数组
            value = covertArray(object.getJSONArray(key));
        } else if (value instanceof JSONObject) {
            // 对象
            value = covertObject(object.getJSONObject(key));
        }
        // 这个方法自己写的改成下划线


http://www.kler.cn/a/538254.html

相关文章:

  • Redis持久化机制详解
  • 在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。
  • 前沿科技一览未来发展趋势
  • 查看云机器的一些常用配置
  • SQL最佳实践(笔记)
  • amis组件crud使用踩坑
  • PCA9685 16路PWM 控制板 STM32F103 驱动
  • Python—批量获取文件夹内文件名及重命名文件教程(附赠GUI版本)—2025-2-7
  • DeepSeek如何在有限的计算资源下开发高级AI模型
  • firebase简介
  • vue实现自定义校验值是否有效
  • NginxWeb负载均衡集群搭建
  • java练习(11)
  • JVM虚拟机以及跨平台原理
  • SwiftUI 学习 Toggle 遇到的问题
  • MarkupLM:用于视觉丰富文档理解的文本和标记语言预训练
  • 2024最新版Java面试题及答案,【来自于各大厂】
  • 【11天从零基础入门flask】第 6 章:模板优化
  • 个人职业发展——效率为王:AI赋能前端开发
  • C语言简单练习题
  • 我的年度写作计划
  • 机器学习中常用的数据预处理方法
  • 深入解析AI技术原理
  • docker环境下部署face-search开源人脸识别模型
  • 我使用deepseek高效学习-分析外文网站Cron定时执行任务
  • 【GeeRPC】Day3:服务注册(Service Register)