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

server/2025/2/9 5:20:04/

🎬 秋野酱:《个人主页》
🔥 个人专栏:《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.ppmy.cn/server/166130.html

相关文章

DeepFM:融合因子分解机与深度学习的CTR预测模型

引言 点击率&#xff08;Click-Through Rate, CTR&#xff09;预测是推荐系统和计算广告领域的核心任务。传统方法通常依赖人工特征工程或单一模型架构&#xff0c;难以同时捕捉低阶与高阶特征交互。为了克服这些限制&#xff0c;研究者们不断探索新的模型架构&#xff0c;以更…

基于ArcGIS的SWAT模型+CENTURY模型模拟流域生态系统水-碳-氮耦合过程研究

流域是一个相对独立的自然地理单元&#xff0c;它是以水系为纽带&#xff0c;将系统内各自然地理要素连结成一个不可分割的整体。碳和氮是陆地生态系统中最重要的两种化学元素&#xff0c;而在流域系统内&#xff0c;水-碳-氮是相互联动、不可分割的耦合体。随着流域内人类活动…

ansible自动化运维

ansible自动化运维 1、实现远程连接主机 2、批量配置&#xff0c;批量操作&#xff0c;ansible可以对主机进行组划分&#xff0c;也可以把名下所有的主机进行划分&#xff0c;进行批量的操作。 3、远程自动化运维&#xff08;脚本-------------playbook剧本&#xff09; an…

自定义飞书Webhook机器人api接口

自定义飞书Webhook机器人api接口 使用方法&#xff1a; 在网站目录新建一个名为api.php的文件&#xff0c;将以上代码粘贴进去即可 然后访问域名/api.php?title洛小柒 - QQ沐编程&content小柒祝大家新年快乐&#xff01;&urlwww.qqmu.com&type1 title是标题 con…

用 HTML、CSS 和 JavaScript 实现抽奖转盘效果

顺序抽奖 前言 这段代码实现了一个简单的抽奖转盘效果。页面上有一个九宫格布局的抽奖区域&#xff0c;周围八个格子分别放置了不同的奖品名称&#xff0c;中间是一个 “开始抽奖” 的按钮。点击按钮后&#xff0c;抽奖区域的格子会快速滚动&#xff0c;颜色不断变化&#xf…

基于ssm的药店管理系统

一、系统架构 前端&#xff1a;jsp | bootstrap | jquery | css | ajax 后端&#xff1a;spring| springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | tomcat 二、代码及数据 三、功能介绍 01. 注册 02. 登录 03. 管理员-药品基础信息 04.…

DeepSeek 的含金量还在上升

大家好啊&#xff0c;我是董董灿。 最近 DeepSeek 越来越火了。 网上有很多针对 DeepSeek 的推理测评&#xff0c;除此之外&#xff0c;也有很多人从技术的角度来探讨 DeepSeek 带给行业的影响。 比如今天就看到了一篇文章&#xff0c;探讨 DeepSeek 在使用 GPU 进行模型训练…

团体程序设计天梯赛-练习集——L1-034 点赞

前言 20分的题目题目不难&#xff0c;理解也不难&#xff0c;做起来有点问题 L1-034 点赞 微博上有个“点赞”功能&#xff0c;你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签&#xff0c;而你点赞的博文的类型&#xff0c;也间接刻画了你的特性。本…