当前位置: 首页 > 编程日记 > 正文

Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)

源码获取:博客首页 "资源" 里下载!

一、项目简述

本系统主要实现的功能有:
社区疫情流动人员管理系统,住户管理,出入管理,访客管理,体温录入,高风险警示等等。

二、项目运行

环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

Springboot+ SpringMVC + MyBatis + Jsp + Html+ JavaScript + JQuery + Ajax + maven等等

系统用户后台管理代码:

/*** 系统用户** @author Mark*/
@RestController
@RequestMapping("/sys/user")
public class SysUserController extends AbstractController {@Autowiredprivate SysUserService sysUserService;@Autowiredprivate SysUserRoleService sysUserRoleService;/*** 所有用户列表*/@GetMapping("/list")@RequiresPermissions("sys:user:list")public R list(@RequestParam Map<String, Object> params){//只有超级管理员,才能查看所有管理员列表if(getUserId() != Constant.SUPER_ADMIN){params.put("createUserId", getUserId());}PageUtils page = sysUserService.queryPage(params);return R.ok().put("page", page);}/*** 获取登录的用户信息*/@GetMapping("/info")public R info(){return R.ok().put("user", getUser());}/*** 修改登录用户密码*/@SysLog("修改密码")@PostMapping("/password")public R password(@RequestBody PasswordForm form){Assert.isBlank(form.getNewPassword(), "新密码不为能空");//sha256加密String password = new Sha256Hash(form.getPassword(), getUser().getSalt()).toHex();//sha256加密String newPassword = new Sha256Hash(form.getNewPassword(), getUser().getSalt()).toHex();//更新密码boolean flag = sysUserService.updatePassword(getUserId(), password, newPassword);if(!flag){return R.error("原密码不正确");}return R.ok();}/*** 用户信息*/@GetMapping("/info/{userId}")@RequiresPermissions("sys:user:info")public R info(@PathVariable("userId") Long userId){SysUserEntity user = sysUserService.getById(userId);//获取用户所属的角色列表List<Long> roleIdList = sysUserRoleService.queryRoleIdList(userId);user.setRoleIdList(roleIdList);return R.ok().put("user", user);}/*** 保存用户*/@SysLog("保存用户")@PostMapping("/save")@RequiresPermissions("sys:user:save")public R save(@RequestBody SysUserEntity user){ValidatorUtils.validateEntity(user, AddGroup.class);user.setCreateUserId(getUserId());sysUserService.saveUser(user);return R.ok();}/*** 修改用户*/@SysLog("修改用户")@PostMapping("/update")@RequiresPermissions("sys:user:update")public R update(@RequestBody SysUserEntity user){ValidatorUtils.validateEntity(user, UpdateGroup.class);user.setCreateUserId(getUserId());sysUserService.update(user);return R.ok();}/*** 删除用户*/@SysLog("删除用户")@PostMapping("/delete")@RequiresPermissions("sys:user:delete")public R delete(@RequestBody Long[] userIds){if(ArrayUtils.contains(userIds, 1L)){return R.error("系统管理员不能删除");}if(ArrayUtils.contains(userIds, getUserId())){return R.error("当前用户不能删除");}sysUserService.deleteBatch(userIds);return R.ok();}
}

主要负责用户的密码找回和注册功能:

/*** 主要负责用户的密码找回和注册功能*/
@Slf4j
@RestController
@RequestMapping("/User")
@Api(tags = "登录相关接口")
public class UserLoginController {@Autowiredprivate UserService userService;//发送验证码@PostMapping("/sendSms")public Result sendSms(@RequestParam String account,@RequestParam String userPhone) {return userService.sendSms(account, userPhone);}//验证验证码@PostMapping("/lookForPwdSubmit")public Result lookForPwd(RetrievePwdDto retrievePwdDto) {return userService.checkVesCode(retrievePwdDto);}//重置密码@PostMapping("/retrievePwdSubmit")public Result retrievePwdSubmit(RetrievePwdDto retrievePwdDto) {System.out.println(retrievePwdDto);return userService.updateUserPwd(retrievePwdDto.getAccount(), retrievePwdDto.getNewPwd());}//用户注册@PostMapping("/registerUser")public Result registerUser(UserDto userDto) {return userService.registerUser(userDto);}}

登录控制器:

/**** 登录控制器*/
@Slf4j
@Controller
@RequestMapping("/User")
@Api(value = "用户登录模块,进行个人信息管理",tags = "用户登录相关信息接口")
public class LoginController {@Autowiredprivate UserService userService;@Resourceprivate MyShiroRealm shiroRealm;@RequestMapping("/main")public String mainPage(HttpServletRequest request,Model model){String account = CookieUtil.getCookieValue(request, "account");UserDto user = userService.queryUserDtoByAccount(account);model.addAttribute("user",user);request.getSession().setAttribute("user",user);return "index";}@PostMapping("/doLogin")@ResponseBodypublic Result doLoginPage(@RequestParam String loginAccount, @RequestParam String password,@RequestParam(defaultValue = "false") Boolean remeber){Subject subject = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken();token.setUsername(loginAccount);token.setPassword(password.toCharArray());//开启RememberMetoken.setRememberMe(remeber);try {//进行登录的认证subject.login(token);//登录认证成功后,将shiro中保存的用户对象取出,放到session中String userAccount = (String)subject.getPrincipal();UserDto user = userService.queryUserDtoByAccount(userAccount);//将用户对象的ID放到session域中Session session = SecurityUtils.getSubject().getSession();session.setAttribute("userSession",user);return Result.ok("登录成功",user);}catch (UnknownAccountException e){return Result.fail("账号不存在!");}catch (IncorrectCredentialsException e){return Result.fail("密码错误!");} catch (ExcessiveAttemptsException e){return Result.fail("登录失败!");}}//修改密码@PostMapping("/pwdSubmit")@ResponseBodypublic Result pwdSubmit(HttpServletRequest request,@RequestParam String oldPwd,@RequestParam String newPwd){String account = CookieUtil.getCookieValue(request, "account");UserDto user = userService.queryUserDtoByAccount(account);String updateUserPwd = userService.updateUserPwd(user.getAccount(),oldPwd,newPwd);if ("true".equals(updateUserPwd)){//修改密码后需要将当前用户shiro缓存中的数据清空shiroRealm.clearCachedAuthenticationInfo(SecurityUtils.getSubject().getPrincipals());//清除授权信息shiroRealm.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());return Result.ok(user.getUserName()+"密码修改成功");}else {return Result.fail(updateUserPwd);}}@PostMapping("/infoSubmit")@ResponseBodypublic Result infoSubmit(UserDto userDto){Boolean info = userService.updateUserInfo(userDto);System.out.println(info);if (info){return Result.ok();}else {return Result.fail("保存个人信息失败!");}}//    用户注销@ApiOperation("用户注销方法")@GetMapping("/logout")public String logout(){Subject subject = SecurityUtils.getSubject();subject.logout();return  "redirect:login";}
}

源码获取:博客首页 "资源" 里下载!

相关文章:

[原创]CentOS下Mysql双机互为备份

一、环境&#xff1a; 1.安装Centos-6.5-x64位系统的机器两台&#xff1a; host1&#xff1a;192.168.2.3 host2&#xff1a;192.168.2.4 &#xff08;互相能ping通&#xff09; 2.安装Mysql。 命令&#xff1a;Yum install mysql-* 二、配置&#xff1a; 1、启动mysql。命令&…

《Effective Java》读书笔记--创建和销毁对象

2019独角兽企业重金招聘Python工程师标准>>> 考虑用静态工厂方法代替构造函数。 当我们在写一个工具类时&#xff0c;是不希望用户将该类实例化的&#xff0c;所以应该定义一个private的构造函数&#xff0c;而不 是将类声明成abstract&#xff0c;因为这样用户可以…

用chrome的snippets片段功能创建页面js外挂程序,从控制台创建js小脚本

用chrome的snippets片段功能创建页面js外挂程序&#xff0c;从控制台创建js小脚本 Chrome的snippets是小脚本&#xff0c;还可以创作并在Chrome DevTools的来源面板中执行。可以访问和从任何页面运行它们。当你运行一个片段&#xff0c;它从当前打开的页面的上下文中执行。 要创…

两个类相互包含引用的问题--类前向声明

在构造自己的类时&#xff0c;有可能会碰到两个类之间的相互引用问题&#xff0c;例如&#xff1a;定义了类A类B&#xff0c;A中使用了B定义的类型&#xff0c;B中也使用了A定义的类型 class A { int i; B b; } class B { int i; A* a; } 请注意上面的定义内…

Java项目:网上电子书城项目(java+SSM+JSP+maven+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目描述&#xff1a; spring mvc jsp实现的简单书城项目&#xff0c;可以在支付宝沙箱内实现支付 运行环境&#xff1a; jdk8tomcat9mysqlIntelliJ IDEA 项目技术&#xff1a; springspring mvcmybati…

[nowCoder] 局部最小值位置

定义局部最小的概念。arr长度为1时&#xff0c;arr[0]是局部最小。arr的长度为N(N>1)时&#xff0c;如果arr[0]<arr[1]&#xff0c;那么arr[0]是局部最小&#xff1b;如果arr[N-1]<arr[N-2]&#xff0c;那么arr[N-1]是局部最小&#xff1b;如果0<i<N-1&#xff…

log parser 微软iis 日志分析

Log Parser 2.2 您可以从 Microsoft 下载中心下载 Log Parser。 Log Parser 2.2 是一个功能强大的通用工具&#xff0c;它可对基于文本的数据&#xff08;如日志文件、XML 文件和 CSV 文件&#xff09;以及 Windows 操作系统上的重要数据源&#xff08;如事件日志、注册表、文件…

ubuntu 大小写指示的小工具

最近买个了小本lenovo x100e&#xff0c;结果发现这小本没有大小写指示灯&#xff0c;在windows用也无妨&#xff0c;不过我常常用这本在ubuntu中调试linux代码&#xff0c;vi 常用的编辑器&#xff0c;熟悉的都知道&#xff0c;大小写很关键的&#xff0c;用google搜了一下&am…

mysql主键约束和唯一性约束

主键约束和唯一性约束都是索引&#xff0c;它们的区别是&#xff1a; 主键字段可以确保唯一性&#xff0c;但主键字段不能为NULL.唯一性约束可以确保唯一性&#xff0c;但唯一性约束的字段可以为NULL唯一性约束对含有NULL的记录不起作用&#xff0c;即可以重复加入含有NULL的记…

Java项目:农资采购销售系统(java+SSM+Easyui+maven+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目描述&#xff1a; 一个完整的农资采购销售系统&#xff0c;系统分为前台会员注册登陆&#xff0c;农资信息浏览&#xff0c;农资详情信息查看&#xff0c;加入购物车&#xff0c;提交订单&#xff0c;付…

springMVC 拦截器

为什么80%的码农都做不了架构师&#xff1f;>>> 实现springMVC 拦截器步骤&#xff1a; 1.定义拦截器类HandlerInterceptor 继承HandlerInterceptor public class Interceptor implements HandlerInterceptor { /**preHandle&#xff1a;预处理回调方法&#…

django学习笔记--数据库中的多表操作

1.Django数据库----多表的新增操作 1.一对一模式下新增 创建一个详情对象&#xff0c;把这个对象赋值给创建的新的user对象 author_detail models.AuthorDetail.objects.create(addr上海,phone178****4789) # 直接设置author_detail为一个对象 author models.Author.objects.…

+z +Z compiler flag for HP

1. 今天遇到一问题&#xff0c;在sles11/vxworks下编译通过&#xff0c;但是在hpux下失败 2. 编译错误&#xff1a; /usr/ccs/bin/ld:DP relative code in file /projects/xxx/DERIVED/tfa_pa32-hpux.a(tfa02_pa32-hpux.o) -shared library must be position indep…

DP UVALive 6506 Padovan Sequence

题目传送门 /*题意&#xff1a;两行数字&#xff0c;相邻列一上一下&#xff0c;或者隔一列两行都可以&#xff0c;从左到右选择数字使和最大DP&#xff1a;状态转移方程&#xff1a;dp[i][j] max (dp[i][j], dp[1-i][j-1] a[i][j], dp[i/1-i][j-2] a[i][j]);要从前面一个转…

Java项目:基于遗传算法学校排课系统(java+Springboot+Maven+mybatis+Vue+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述本系统功能包括&#xff1a; 排课管理&#xff0c;课程管理&#xff0c;讲师管理&#xff0c;班级管理&#xff0c;学生管理&#xff0c;教学资料&#xff0c;学习文档&#xff0c;在线测试&…

冲刺周期会议七

一、会议时间&#xff1a;2014年5月6日20:30--21:00 二、会议地点&#xff1a;学院楼一楼大厅 三、会议目的:统计任务进度&#xff0c;记录会议问题 四、会议内容&#xff1a; 1、对近几天的项目进度进行总结&#xff1a; 由于刚刚开始学习安卓&#xff0c;无论是配置环境还是学…

chrdev字符设备几种注册方式的差异

数据结构 #define CHRDEV_MAJOR_HASH_SIZE 255static struct char_device_struct {struct char_device_struct *next;unsigned int major;unsigned int baseminor;int minorct;char name[64];struct file_operations *fops;struct cdev *cdev; /* will die */ } *chrdevs[CHRD…

ldconfig及 LD_LIBRARY_PATH

ldconfig及 LD_LIBRARY_PATH 1. 往/lib和/usr/lib里面加东西&#xff0c;是不用修改/etc/ld.so.conf的&#xff0c;但是完了之后要调一下ldconfig&#xff0c;不然这个library会找不到 2.想往上面两个目录以外加东西的时候&#xff0c;一定要修改/etc/ld.so.conf&#xff0c;然…

Java项目:诚途旅游系统(java+JSP+Spring+SSM+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 采用ssm架构实现的旅游网站系统 包括网站展示和后台管理功能&#xff0c;网站主要是页面浏览以及评论、制定旅游方案、智能推荐功能 后台就是维护网站展示的内容&#xff0c;添加旅游景点、管理用户、查看…

combotree

1&#xff0c;直接获取&#xff1a; 单选&#xff1a;$("#id").combotree("getValue") 多选&#xff1a;$("#id").combotree("getValues") 注意&#xff1a;如果value中的值和所显示的文本不同&#xff0c;如需获取文本内…

SCRIPT1028:缺少标识符、字符串或数字 jquery ajax

2019独角兽企业重金招聘Python工程师标准>>> SCRIPT1028:缺少标识符、字符串或数字 使用jquery时报此错误 究其原因是对象键值对格式错误&#xff1a; 原格式&#xff1a; 多了一个逗号obj { "usernmae":"zhangsan", "sex"…

IOS 编程中引用第三方的方类库的方法及常见问题

方法一:直接复制全部源文件到项目中 这样的方法就是把第三方类库的全部源文件复制到项目中。直接把全部.h和.m文件拖到XCode项目中就可以。 注意&#xff1a; 1. 假设第三方类库引用了一些系统自带类库。那么在项目中还须要额外引用那些类库。2. 假设当前的项目启用了ARC。而引…

gcc中-pthread和-lpthread的区别

用gcc编译使用了POSIX thread的程序时通常需要加额外的选项&#xff0c;以便使用thread-safe的库及头文件&#xff0c;一些老的书里说直接增加链接选项 -lpthread 就可以了&#xff0c;像这样&#xff1a; Shell代码 gcc -c x.c gcc x.o -ox -lpthread 而gcc手册里则指出应…

Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述本系统功能包括&#xff1a;通知公告&#xff0c;老人管理&#xff0c;护工管理&#xff0c;问答管理等等功能。 二、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&am…

install python+twisted+mysqldb+django on mac

一. install python 1) check install or not 在mac终端输入命令&#xff1a;which python 即可查看python的路径 2&#xff09;未安装时&#xff0c;手动下载安装包 地址&#xff1a;https://www.python.org/downloads/ 选择下载 Mac OS X 64-bit/32-bit installer 安装 二…

JVM优雅退出

在某个Java应用增加新功能,缩容机器,或者应用以及机器发生异常,通常会停止正在运行的应用,该应用通常正在运行着任务,如果停止应用的操作处理不当的话,很有可能会导致数据丢失,损坏,从而影响业务。所以在停止应用的时候,需要考虑如何安全优雅的退出。维护了所有已经注册的钩子,由于jvm本身没有提供好用的方法去移除已经注册的钩子,可以通过反射的方式调用。对于强制关闭的几种情况,会直接停止JVM进程,JVM不会调用已注册的。对于正常关闭、异常关闭的几种情况,JVM关闭前,都会调用已注册的。

网络名词--“环路”

环路一直是网络工程师以及网络运维人员头疼的事&#xff0c;如何防止环路的产生&#xff0c;如何快速找出环路的原因排除故障&#xff0c;是每一个网络从业人员必备的技能。这就要求我们对环路产生的原因了如指掌&#xff0c;本文主要对交换环路进行分析&#xff0c;从分类、形…

希腊字母表及读音

序号大写小写国际音标中文读音意义1Ααa:lf阿尔法角度;系数2Ββbet贝塔磁通系数;角度;系数3Γγga:m伽马电导系数(小写)4Δδdelt德尔塔变动;密度;屈光度5Εεep`silon伊普西龙对数之基数6Ζζzat截塔系数;方位角;阻抗;相对粘度;原子序数7Ηηeit艾塔磁滞系数;效率(小写)8Θθθit西塔温度;相位角9Ιιaiot约塔

loadrunner——win7+LR11配置

一、 安装vmware虚拟机 下载安装vmware15后&#xff0c;可使用密钥为&#xff1a;CG392-4PX5J-H816Z-HYZNG-PQRG2 二、 安装win7系统 2.1下载win7镜像文件 2.2 vmware中创建win7虚拟机 创建过程省略&#xff0c;一键式创建即可&#xff0c;windows产品可使用密钥如下&#xff1…

C++标准库中sstream和strstream的区别

在C有两种字符串流&#xff0c;一种在sstream中定义&#xff0c; 另一种在strstream中定义。 它们实现的东西基本一样。 strstream里包含 class strstreambuf; class istrstream; class ostrstream; class strstream; 它们是基于C类型字符串char*编写的 sstream中包含 class is…