基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】

 博主介绍:专注于Java技术领域和毕业项目实战

文末获取源码联系

 精彩专栏推荐订阅 不然下次找不到哟

Java项目精品实战案例(300套)

目录

一、效果演示

二、前言介绍

三、主要技术

四、系统设计(部分)

4.1、主要功能模块设计         

4.2、系统登录设计

五、运行截图

5.1、管理员功能模块

5.1.1、个人信息

5.1.2、住户管理

5.1.3、社区公告管理

5.1.4、维修工管理

5.1.5、接单信息管理

5.1.6、订单信息管理

5.1.7、在线沟通管理

5.1.8、举报信息管理

5.2、住户前台功能模块

5.2.1、个人中心

5.2.2、留言反馈

5.2.3、维修工

5.2.4、新闻资讯

5.2.5、维修订单

5.2.6、接单界面

5.2.7、交流界面

5.3、住户后台功能模块

5.3.1、个人信息

5.3.2、维修订单管理

5.3.3、接单信息管理

5.3.4、订单信息管理

5.3.5、在线沟通管理

5.3.6、举报信息管理

5.4、维修员前台功能模块

5.4.1、个人中心

5.4.2、新闻资讯

5.4.3、维修订单

5.4.4、 接单界面

5.4.5、 交流界面

5.5、维修员后台功能模块

5.5.1、接单信息

5.5.2、订单信息管理

5.5.3、在线沟通管理

六、数据库设计(部分)

七、代码参考

八、源码获取


一、效果演示

基于Springboot+vue的社区维修平台演示视频

二、前言介绍

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。

三、主要技术

技术名 作用
SpringBoot 后端框架
Vue 前端框架
MySQL 数据库

四、系统设计(部分)

4.1、主要功能模块设计         

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第1张图片

4.2、系统登录设计

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第2张图片

 

五、运行截图

5.1、管理员功能模块

管理员通过后台登录页面,可以进行填写用户名和密码,等信息,输入无误后进行登录操作,如图5-1所示

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第3张图片

管理员登录成功后进入到系统操作界面,可以对个人中心、住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理、留言板管理、系统管理等功能模块进行相对应操作。

管理员通过个人中心可以获取修改密码和个人信息两个子模块

5.1.1、个人信息

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第4张图片

图5-2个人信息页面

5.1.2、住户管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第5张图片

图5-3住户管理页面

5.1.3、社区公告管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第6张图片

图5-4社区公关管理页面

5.1.4、维修工管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第7张图片

图5-5维修工页面

5.1.5、接单信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第8张图片

图5-6接单信息管理

5.1.6、订单信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第9张图片

图5-7订单信息管理页面

5.1.7、在线沟通管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第10张图片

图5-8在线沟通管理界面图

5.1.8、举报信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第11张图片

图5-9举报信息管理页面

5.2、住户前台功能模块

维修员通过后台登录页面,可以进行填写用户名和密码,等信息,输入无误后进行登录操作,如图5-10所示

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第12张图片

图5-10维修员登录页面

5.2.1、个人中心

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第13张图片

图5-12个人中心页面

5.2.2、留言反馈

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第14张图片

图5-13留言反馈界面图

5.2.3、维修工

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第15张图片

图5-14维修工详情界面图

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第16张图片

图5-15维修工举报界面图

5.2.4、新闻资讯

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第17张图片

图5-16新闻资讯页面

5.2.5、维修订单

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第18张图片

图5-17维修订单界面图 

5.2.6、接单界面

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第19张图片

图5-18接单界面图

5.2.7、交流界面

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第20张图片

图5-19交流界面图 

5.3、住户后台功能模块

用户通过用户登录页面可以填写用户名和密码,等信息进行登录操作,用户登录成功后,进入用户后台系统页面可以查看个人中心、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理模块等功能模块,进行相对应操作。如图5-20所示。

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第21张图片

 

图5-20用户系统界面图

用户通过点击个人中心可以进行查看修改密码、个人信息两个子模块

5.3.1、个人信息

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第22张图片

图5-21个人信息页面

5.3.2、维修订单管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第23张图片

图5-22维修订单界面图 

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第24张图片

图5-23添加维修订单界面图

5.3.3、接单信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第25张图片

图5-24接单信息管理界面图

5.3.4、订单信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第26张图片

图5-26订单信息管理界面图

5.3.5、在线沟通管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第27张图片

图5-27在线沟通界面图

5.3.6、举报信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第28张图片

图5-28在线沟通界面图 

5.4、维修员前台功能模块

维修员通过后台登录页面,可以进行填写用户名和密码,等信息,输入无误后进行登录操作,如图5-29所示

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第29张图片

图5-30维修员登录页面

维修工通过登录进入到网站页面可以进行查看首页的社区公告、维修工、维修订单、新闻资讯、留言反馈、个人中心、后台管理等信息,进行查看社区维修的相对应操作。如图5-31所示。

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第30张图片

图5-31维修员系统页面

5.4.1、个人中心

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第31张图片

图5-32个人中心页面

5.4.2、新闻资讯

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第32张图片

图5-34新闻资讯页面

5.4.3、维修订单

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第33张图片

图5-35维修订单界面图

5.4.4、 接单界面

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第34张图片

图5-36接单界面图

5.4.5、 交流界面

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第35张图片

图5-37交流界面图

5.5、维修员后台功能模块

维修工通过登录页面可以填写用户名和密码,等信息进行登录操作,维修工登录成功后,进入用户后台系统页面可以查看个人中心、接单信息管理、订单信息管理、在线沟通管理模块等功能模块,进行相对应操作。

5.5.1、接单信息

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第36张图片

图5-38接单信息管理界面图

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第37张图片

图5-39维修订单界面图

5.5.2、订单信息管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第38张图片

图5-40订单信息管理界面图

5.5.3、在线沟通管理

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第39张图片

图5-41在线沟通界面图

 

六、数据库设计(部分)

数据模型中的实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,公司中的每个员工,家里中的每个家具。

本系统的E-R图如下图所示:

1、用户信息实体图如图4-4所示:

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第40张图片

图4-4用户信息实体图

公告信息实体E-R图,如图4.5所示。

基于Java+SpringBoot+vue的社区维修平台设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第41张图片

 图4.5公告信息E-R图

七、代码参考

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;

/**
 * 通用接口
 */
@RestController
public class CommonController{
	@Autowired
	private CommonService commonService;
	
	@Autowired
	private ConfigService configService;
	
	private static AipFace client = null;
	
	private static String BAIDU_DITU_AK = null;
	
	@RequestMapping("/location")
	public R location(String lng,String lat) {
		if(BAIDU_DITU_AK==null) {
			BAIDU_DITU_AK = configService.selectOne(new EntityWrapper().eq("name", "baidu_ditu_ak")).getValue();
			if(BAIDU_DITU_AK==null) {
				return R.error("请在配置管理中正确配置baidu_ditu_ak");
			}
		}
		Map map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
		return R.ok().put("data", map);
	}
	
	/**
	 * 人脸比对
	 * 
	 * @param face1 人脸1
	 * @param face2 人脸2
	 * @return
	 */
	@RequestMapping("/matchFace")
	public R matchFace(String face1, String face2) {
		if(client==null) {
			/*String AppID = configService.selectOne(new EntityWrapper().eq("name", "AppID")).getValue();*/
			String APIKey = configService.selectOne(new EntityWrapper().eq("name", "APIKey")).getValue();
			String SecretKey = configService.selectOne(new EntityWrapper().eq("name", "SecretKey")).getValue();
			String token = BaiduUtil.getAuth(APIKey, SecretKey);
			if(token==null) {
				return R.error("请在配置管理中正确配置APIKey和SecretKey");
			}
			client = new AipFace(null, APIKey, SecretKey);
			client.setConnectionTimeoutInMillis(2000);
			client.setSocketTimeoutInMillis(60000);
		}
		JSONObject res = null;
		try {
			File file1 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face1);
			File file2 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face2);
			String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
			String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
			MatchRequest req1 = new MatchRequest(img1, "BASE64");
			MatchRequest req2 = new MatchRequest(img2, "BASE64");
			ArrayList requests = new ArrayList();
			requests.add(req1);
			requests.add(req2);
			res = client.match(requests);
			System.out.println(res.get("result"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return R.error("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
		} 
		return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
	}
    
	/**
	 * 获取table表中的column列表(联动接口)
	 * @param table
	 * @param column
	 * @return
	 */
	@IgnoreAuth
	@RequestMapping("/option/{tableName}/{columnName}")
	public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		if(StringUtils.isNotBlank(level)) {
			params.put("level", level);
		}
		if(StringUtils.isNotBlank(parent)) {
			params.put("parent", parent);
		}
		List data = commonService.getOption(params);
		return R.ok().put("data", data);
	}
	
	/**
	 * 根据table中的column获取单条记录
	 * @param table
	 * @param column
	 * @return
	 */
	@IgnoreAuth
	@RequestMapping("/follow/{tableName}/{columnName}")
	public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		params.put("columnValue", columnValue);
		Map result = commonService.getFollowByOption(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * 修改table表的sfsh状态
	 * @param table
	 * @param map
	 * @return
	 */
	@RequestMapping("/sh/{tableName}")
	public R sh(@PathVariable("tableName") String tableName, @RequestBody Map map) {
		map.put("table", tableName);
		commonService.sh(map);
		return R.ok();
	}
	
	/**
	 * 获取需要提醒的记录数
	 * @param tableName
	 * @param columnName
	 * @param type 1:数字 2:日期
	 * @param map
	 * @return
	 */
	@IgnoreAuth
	@RequestMapping("/remind/{tableName}/{columnName}/{type}")
	public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, 
						 @PathVariable("type") String type,@RequestParam Map map) {
		map.put("table", tableName);
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		int count = commonService.remindCount(map);
		return R.ok().put("count", count);
	}
	
	/**
	 * 单列求和
	 */
	@IgnoreAuth
	@RequestMapping("/cal/{tableName}/{columnName}")
	public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		Map result = commonService.selectCal(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * 分组统计
	 */
	@IgnoreAuth
	@RequestMapping("/group/{tableName}/{columnName}")
	public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		List> result = commonService.selectGroup(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * (按值统计)
	 */
	@IgnoreAuth
	@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}")
	public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("xColumn", xColumnName);
		params.put("yColumn", yColumnName);
		List> result = commonService.selectValue(params);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		for(Map m : result) {
			for(String k : m.keySet()) {
				if(m.get(k) instanceof Date) {
					m.put(k, sdf.format((Date)m.get(k)));
				}
			}
		}
		return R.ok().put("data", result);
	}
	
}

八、源码获取

大家点赞、收藏、关注、评论啦 、查看文章结尾获取联系方式

精彩专栏推荐订阅:下方专栏

Java项目精品实战案例(300套)

私信我即可打包获取300多个项目源码+论文+演示视频~

​​​​

你可能感兴趣的:(java毕业设计,java,spring,boot,vue.js,大学生项目实战,毕业设计)