基于javaweb+mysql的社区疫情防控人员流动管理系统
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
住户、高风险住户、住户出入、访客出入、体温录入、用户等管理
技术框架
SpringBoot SpringMVC MyBatis Shiro Thymeleaf HTML JavaScript Layui……
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-green">实时</span>
<h5>地址统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins" id="addCount"></h1>
<small>当前地址总记录数</small>
</div>
</div>
</div>
</div>
var index = layer.open({
title: '添加登记信息',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['50%', '90%'],
offset: 'auto',
content: '',
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作,获取表格中选中的行数据
</select>
<select id="queryVisitorById" parameterType="integer" resultType="com.demo.dto.VistorDto">
select vis_id, add_id, vis_name, vis_phone, vis_remark
from tb_visitor
where vis_id = #{visId}
and deleted = 0
</select>
<insert id="addVistor" parameterType="com.demo.dto.VistorDto">
insert into tb_visitor(add_id, vis_name, vis_phone, vis_remark)
values (#{addId}, #{visName}, #{visPhone}, #{visRemark})
</insert>
<update id="updateVistor" parameterType="com.demo.dto.VistorDto">
update tb_visitor v left join tb_address a
on v.add_id = a.add_id and v.deleted = 0
set
v.vis_id = #{visId},
v.add_id = #{addId},
v.vis_name = #{visName},
v.vis_phone = #{visPhone},
v.vis_remark = #{visRemark},
a.add_name =#{addName},
a.add_house = #{addHouse},
<script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
</div>
</div>
<script>
layui.use(['form', 'table','miniPage','element','laydate'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
laydate = layui.laydate,
miniPage = layui.miniPage;
table.render({
//渲染的表格对应ID
return residentMapper.queryResPeril(page);
}
@Override
public Result queryResCountByDate() {
String beginTime = null;
String endTime = null;
int size = 0;
Date date = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
HashMap<String, HashMap<String, Object>> map = new HashMap<>();
HashMap<String, Object> dataMap = new HashMap<>();
HashMap<String, Object> dateMap = new HashMap<>();
ArrayList<Integer> list = new ArrayList<>();
ArrayList<String> dateList = new ArrayList<>();
calendar.add(Calendar.DATE, -6);
beginTime = dateFormat.format(calendar.getTime());
calendar.add(Calendar.DATE, 1);
endTime = dateFormat.format(calendar.getTime());
size = residentMapper.queryResCountByDate(beginTime, endTime).size();
dateList.add(beginTime);
list.add(size);
if (userMapper.queryUserByAccount(account).getUserPhone().equals(userPhone) ){
//生成验证码
/*GenerateWord generateWord = new GenerateWord();
verCode = generateWord.RandomNum();*/
String verCode = RandomStringUtils.randomNumeric(4);
HashMap<String, Object> map = new HashMap<>();
map.put("code",verCode);
System.out.println(verCode);
//将生产的验证码存放到数据库中
VercodeDto vercodeDto = new VercodeDto();
vercodeDto.setAccount(account);
vercodeDto.setVerCode(verCode);
vercodeMapper.insert(vercodeDto);
/*Boolean message = sendSms.sendMessage(userPhone,map);
if (message){
<tip>地址编号不可修改!</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">用户账号</label>
<div class="layui-input-block">
<input type="text" readonly="readonly" name="account" id="account" placeholder="请输入用户账号" autocomplete="off" class="layui-input">
<tip>用户账号不可修改!</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">密码</label>
<div class="layui-input-block">
<input type="password" name="password" id="password" lay-verify="required" placeholder="请输入密码" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">访客姓名</label>
<div class="layui-input-block">
<input type="text" name="visName" lay-verify="required" lay-reqtext="姓名不能为空" placeholder="请输入姓名" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">联系方式</label>
<div class="layui-input-block">
<input type="text" name="visPhone" lay-verify="required|phone" lay-reqtext="手机号不能为空" placeholder="请输入联系方式" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item" id="resId">
<label class="layui-form-label required">小区名称</label>
<div class="layui-input-block">
<input type="text" name="addName" lay-reqtext="小区名称不能为空" placeholder="请输入小区名称" value="" class="layui-input">
</div>
</div>
<div class="layui-form-item" style="padding-left: 40px">
<div class="layui-inline">
layer.msg("修改成功!", {
icon: 6,
time: 300
}, function () {
parent.window.location.reload();//刷新页面
var iframeIndex = parent.layer.getFrameIndex(window.name);
parent.layer.close(iframeIndex)
});
} else {
layer.msg("修改失败!", {icon: 2});
}
}, error: function (data) {
layer.close(loadIndex);
layer.msg(data.responseJSON.msg, {icon: 2});
}
});
ArrayList<TableFill> list = new ArrayList<>();
list.add(creatTime);
list.add(updateTime);
strategy.setTableFillList(list);
// 驼峰命名
strategy.setRestControllerStyle(true);
strategy.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategy);
mpg.execute();//执行
}
}
package com.demo.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.demo.dto.ResidentDto;
import com.demo.service.ResidentService;
import com.demo.utils.JsonObject;
import com.demo.utils.Result;
public RecordDto queryRecordById(String recId) {
return recordMapper.queryRecordById(recId);
}
@Override
public Result updateRecord(RecordDto recordDto) {
//判断登记者类型,0为住户,1为访客
if (recordDto.getRecPerType() == 0) {
recordMapper.updateRecordRes(recordDto);
return Result.ok("更新登记信息成功!");
} else {
recordMapper.updateRecordVis(recordDto);
return Result.ok("更新登记信息成功!");
}
}
@Override
public Result deleteRecord(Integer[] ids) {
//删除ID是否为空
if (ids.length > 0) {
}
//整合thymeleaf shiro标签
@Bean(name = "shiroDialect")
public ShiroDialect shiroDialect() {
return new ShiroDialect();
}
}
package com.demo.service.impl;
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
//使用弹出层
layer.open({
title: '修改信息',
type: 1,
shade: 0.0,
maxmin: true,
shadeClose: true,
area: ['50%', '80%'],
offset: ['100px', '20%'],
content: $("#updateRec")
});
if (data.recPerType == 0) {
document.getElementById("addHouse").style.display = "none";
document.getElementById("addUnit").style.display = "none";
setFormValue(obj, data);
} else {
setFormValue(obj, data);
}
<label class="layui-form-label">单元号</label>
<div class="layui-input-inline">
<input type="text" name="addUnit" placeholder="搜索的单元号" autocomplete="off"
class="layui-input">
</div>
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索
</button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button type="submit" class="layui-btn layui-btn-sm" lay-submit lay-filter="data-all"><i
class="layui-icon layui-icon-home"></i>全部住户
return Result.fail(updateUserPwd);
}
}
@PostMapping("/infoSubmit")
@ResponseBody
public Result infoSubmit(UserDto userDto) {
Boolean info = userService.updateUserInfo(userDto);
System.out.println(info);
if (info) {
return Result.ok();
} else {
return Result.fail("保存个人信息失败!");
}
}
// 用户注销
@ApiOperation("用户注销方法")
/**
* @creat 2021-01
* <p>
* 登录控制器
*/
@Slf4j
@Controller
@RequestMapping("/User")
@Api(value = "用户登录模块,进行个人信息管理", tags = "用户登录相关信息接口")
public class LoginController {
@Autowired
private UserService userService;
@Resource