基于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));
}
// 这个方法自己写的改成下划线