springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例
項(xiàng)目介紹
springboot搭建的訪客管理系統(tǒng),針對(duì)高端基地做嚴(yán)格把控來訪人員信息管理,用戶后端可以設(shè)置多個(gè)管理員帳號(hào),給予不同部門的管理層使用,用戶管理可以增加/修改內(nèi)部成員的基本信息,需要到訪的人員必須通過進(jìn)入程序,在訪客預(yù)約里面提交預(yù)約申請(qǐng),預(yù)約后管理員可查詢預(yù)約記錄以及訪客出入記錄。
項(xiàng)目適用人群
正在做畢設(shè)的學(xué)生,或者需要項(xiàng)目實(shí)戰(zhàn)練習(xí)的Java學(xué)習(xí)者
開發(fā)環(huán)境
- jdk 8
- intellij idea
- tomcat 8.5.40
- mysql 5.7
所用技術(shù)
- springboot
- mybatis
- layUi
- JSP
項(xiàng)目訪問地址
http://localhost:8090
帳號(hào):admin 密碼:admin
項(xiàng)目截圖
登錄

子賬號(hào)管理

新增成員

預(yù)約列表

歷史預(yù)約

出入影像記錄

表格導(dǎo)出

訪客預(yù)約申請(qǐng)

關(guān)鍵代碼:
用戶信息
public class SmartUser {
@ApiModelProperty(value="用戶編號(hào)",dataType="String",name="password")
private Long id;
@ApiModelProperty(value="登錄帳號(hào)",dataType="String",name="account")
private String account;
@ApiModelProperty(value="用戶名稱",dataType="String",name="name")
private String name;
@ApiModelProperty(value="用戶年齡",dataType="Integer",name="age")
private int age;
@ApiModelProperty(value="手機(jī)號(hào)",dataType="String",name="phone")
private String phone;
@ApiModelProperty(value="密碼",dataType="String",name="password")
private String password;
@ApiModelProperty(value="mac",dataType="String",name="mac")
private String mac;
@ApiModelProperty(value="備注",dataType="String",name="remark")
private String remark ;
@ApiModelProperty(value="創(chuàng)建時(shí)間",dataType="String",name="createTime")
private String createTime;
private String headPic;
}
添加訪客記錄
@ApiOperation(value="添加預(yù)約",notes="添加預(yù)約")
@ResponseBody
@PostMapping("/addVisitor")
public Response<String> addVisitor(Visitor visitor){
SmartUser smartUser=new SmartUser();
smartUser.setPhone(visitor.getUserPhone());
smartUser.setName(visitor.getUserName());
smartUser=smartUserService.login(smartUser);
if(null!=smartUser){
return visitorService.saveOrUpdate(visitor);
}else{
return Response.error(300);//查無一人
}
}
訪客記錄導(dǎo)出
@GetMapping("/exportExcel")
public void exportExcel(HttpServletResponse response) {
try{
List<List<String>> rows =new ArrayList<>();
List<String> row1 = CollUtil.newArrayList("訪客姓名", "訪客手機(jī)號(hào)", "被訪人姓名", "被訪人電話", "預(yù)約日期", "訪問事由");
rows.add(row1);
List<VisitorRecord> list=smartUserService.getAll();
for(VisitorRecord vr:list){
rows.add(CollUtil.newArrayList(vr.getVisitorName(), vr.getPhone(),vr.getUserPhone(),vr.getUserName(),vr.getAppointmentTime(),vr.getReasons()));
}
ExcelWriter writer = ExcelUtil.getWriter();
writer.write(rows);
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition","attachment;filename="+ DateUtils.getTime3()+"visitorRecord.xls");
ServletOutputStream out=response.getOutputStream();
writer.flush(out);
writer.close();
IoUtil.close(out);
}catch (Exception e){
e.printStackTrace();
}
}
4.過期預(yù)約做定時(shí)清理
@Scheduled(cron = "0 0/1 * * * ?")
private void configureTasks() {
List<Visitor> list=visitorService.findVisitorList("");
if(list.size()>0){
for(Visitor v:list){
Long now=Long.valueOf(DateUtils.getTime2());
Long appointmentTime=Long.valueOf(v.getAppointmentTime().replaceAll("-","").replaceAll(" ",""));
if(appointmentTime-now<=0){
VisitorRecord visitorRecord=new VisitorRecord();
BeanUtils.copyProperties(v,visitorRecord);
visitorRecordService.save(visitorRecord);
visitorService.deleteUserById(Long.valueOf(v.getId()));
}
}
}
}
注意事項(xiàng)
- 預(yù)約地址需要有管理端分享地址給房主,由房主分享給到訪的做預(yù)約登記
- 后期增加房主端,新增房主查看記錄
備注:基礎(chǔ)版做的比較簡(jiǎn)單,有條件的同學(xué)可以對(duì)接硬件設(shè)備,跑完整體流程
到此這篇關(guān)于springboot搭建訪客管理系統(tǒng)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)springboot搭建訪客管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實(shí)現(xiàn)設(shè)置動(dòng)態(tài)定時(shí)任務(wù)的方法詳解
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)設(shè)置動(dòng)態(tài)定時(shí)任務(wù)的方法詳解,SpringBoot是一個(gè)快速開發(fā)的Java框架,而動(dòng)態(tài)定時(shí)任務(wù)是指可以在運(yùn)行時(shí)動(dòng)態(tài)添加、修改和刪除定時(shí)任務(wù)的功能,需要的朋友可以參考下2023-10-10
Java面試synchronized偏向鎖后hashcode存址
這篇文章主要為大家介紹了Java面試中synchronized偏向鎖后hashcode存址詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Java使用異或運(yùn)算實(shí)現(xiàn)簡(jiǎn)單的加密解密算法實(shí)例代碼
這篇文章主要介紹了Java使用異或運(yùn)算實(shí)現(xiàn)簡(jiǎn)單的加密解密算法實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
SpringMVC用XML方式實(shí)現(xiàn)AOP的方法示例
這篇文章主要介紹了SpringMVC用XML方式實(shí)現(xiàn)AOP的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Java創(chuàng)建數(shù)組的幾種方式總結(jié)
下面小編就為大家?guī)硪黄狫ava創(chuàng)建數(shù)組的幾種方式總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10
Springcloud ribbon負(fù)載均衡算法實(shí)現(xiàn)
這篇文章主要介紹了Springcloud ribbon負(fù)載均衡算法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

