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双机互为备份
一、环境: 1.安装Centos-6.5-x64位系统的机器两台: host1:192.168.2.3 host2:192.168.2.4 (互相能ping通) 2.安装Mysql。 命令:Yum install mysql-* 二、配置: 1、启动mysql。命令&…

《Effective Java》读书笔记--创建和销毁对象
2019独角兽企业重金招聘Python工程师标准>>> 考虑用静态工厂方法代替构造函数。 当我们在写一个工具类时,是不希望用户将该类实例化的,所以应该定义一个private的构造函数,而不 是将类声明成abstract,因为这样用户可以…

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

两个类相互包含引用的问题--类前向声明
在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A { int i; B b; } class B { int i; A* a; } 请注意上面的定义内…

Java项目:网上电子书城项目(java+SSM+JSP+maven+Mysql)
源码获取:博客首页 "资源" 里下载! 项目描述: spring mvc jsp实现的简单书城项目,可以在支付宝沙箱内实现支付 运行环境: jdk8tomcat9mysqlIntelliJ IDEA 项目技术: springspring mvcmybati…

[nowCoder] 局部最小值位置
定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]<arr[1],那么arr[0]是局部最小;如果arr[N-1]<arr[N-2],那么arr[N-1]是局部最小;如果0<i<N-1ÿ…

log parser 微软iis 日志分析
Log Parser 2.2 您可以从 Microsoft 下载中心下载 Log Parser。 Log Parser 2.2 是一个功能强大的通用工具,它可对基于文本的数据(如日志文件、XML 文件和 CSV 文件)以及 Windows 操作系统上的重要数据源(如事件日志、注册表、文件…

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

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

Java项目:农资采购销售系统(java+SSM+Easyui+maven+Mysql)
源码获取:博客首页 "资源" 里下载! 项目描述: 一个完整的农资采购销售系统,系统分为前台会员注册登陆,农资信息浏览,农资详情信息查看,加入购物车,提交订单,付…

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

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

+z +Z compiler flag for HP
1. 今天遇到一问题,在sles11/vxworks下编译通过,但是在hpux下失败 2. 编译错误: /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
题目传送门 /*题意:两行数字,相邻列一上一下,或者隔一列两行都可以,从左到右选择数字使和最大DP:状态转移方程: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)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括: 排课管理,课程管理,讲师管理,班级管理,学生管理,教学资料,学习文档,在线测试&…

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

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里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2.想往上面两个目录以外加东西的时候,一定要修改/etc/ld.so.conf,然…

Java项目:诚途旅游系统(java+JSP+Spring+SSM+Mysql)
源码获取:博客首页 "资源" 里下载! 采用ssm架构实现的旅游网站系统 包括网站展示和后台管理功能,网站主要是页面浏览以及评论、制定旅游方案、智能推荐功能 后台就是维护网站展示的内容,添加旅游景点、管理用户、查看…

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

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

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

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

Java项目:精品养老院管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述本系统功能包括:通知公告,老人管理,护工管理,问答管理等等功能。 二、项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX&am…

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

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

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

希腊字母表及读音
序号大写小写国际音标中文读音意义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后,可使用密钥为:CG392-4PX5J-H816Z-HYZNG-PQRG2 二、 安装win7系统 2.1下载win7镜像文件 2.2 vmware中创建win7虚拟机 创建过程省略,一键式创建即可,windows产品可使用密钥如下࿱…

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