🍅文末获取源码联系🍅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
千份开题报告和答辩PPT下载
一、采用技术:
后端:Java+SpringBoot
前端:Vue
数据库:MySQL
开发软件:Eclipse、MyEclipse、IDEA都可以运行
二、系统功能:
本系统主要由信息入手。将居民用户登记到系统上的基本信息存入数据库做为基础数据,由管理员进行统一管理,可以通过风险地区用户的行程来进行排查用户,并可进行隔离等操作等等。整个系统主要分为:系统管理、权限管理、信息管理、用户管理,预约管理等模块。每个模块拥有不同的功能,具体功能如下。系统管理:公告管理、疫情信息统计的管理;权限管理:社区管理员权限的管理,社区管控的管理;信息管理:社区管理员对用户信息的登记,对用户风险信息的排查管理、用户自身基本信息的登记、用户风险途径信息的登报、用户查看本地疫情信息及风险地区;用户管理:系统管理员对社区管理员的维护操作、社区管理员对于用户的登记和管控处理、用户的登录注册一系列操作;预约管理:用户对于核酸检测和新冠疫苗注射的预约和取消等操作。本系统主要使用的技术:使用SpringBoot来设计整个系统,使用MySQL数据库来存储数据,使用Ajax实现前后端数据的交互,使用git来上传代码。主要使用的开发工具为IntelliJ
IDEA、Navicat for MySQL和git-bash。
用户可以通过直接登陆网站或扫描二维码进入网站进行注册或者登录操作,在登陆后就需对个人的基本信息进行登记,然后就可以通过网站浏览疫情信息,查看公告板中的公告,预约核酸检测和疫苗注射等一系列操作。管理员则在登录后可以对于角色的权限,功能,信息进行维护、在公告板发布一些公告,对居民用户进行调查管理等等。
本系统旨在让所有用户都能通过此系统在疫情到来之际做好个人准备和防护,让社区工作者减轻工作负担,并可以有效地减少相互之间的接触,减少病毒的传播,从根源上抑制病毒的传播。存储于数据库中的疫情信息还可以坐于记录存档在案,有很好的保存性。
三、运行截图:
四、关键代码:
/**
* 用户账户:用于保存用户登录信息(User)表控制层
*/
@Slf4j
@RestController
@RequestMapping("user")
public class UserController extends BaseController<User, UserService> {
/**
* 服务对象
*/
@Autowired
public UserController(UserService service) {
setService(service);
}
/**
* Token服务
*/
@Autowired
private AccessTokenService tokenService;
@Autowired
private UserGroupService userGroupService;
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 找回密码
* @param form
* @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 = service.select(query, service.readConfig(request));
List list = select.getResultList();
if (list.size() > 0) {
User o = (User) list.get(0);
JSONObject query2 = new JSONObject();
JSONObject form2 = new JSONObject();
// 修改用户密码
query2.put("user_id",o.getUserId());
form2.put("password",service.encryption(password));
service.update(query, service.readConfig(request), form2);
return success(1);
}
return error(70000,"用户不存在");
}
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
}