Java教程

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

本文主要是介绍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 {
	@Autowired
	private SysUserService sysUserService;
	@Autowired
	private 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();
	}
}

用户接口控制层:


/**
 * <p>
 * 前端控制器
 * </p>
 */

@Api(tags = "用户接口")
@RestController
@RequestMapping("/Users")
@RequiresRoles(value = "admin", logical = Logical.OR)
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/queryUserByParam")
    public JsonObject queryUserByParam(@RequestParam("page") Integer currentPage, @RequestParam("limit") Integer limit,
                                       @RequestParam(name = "params", required = false) String queryParams) {
        JsonObject<UserDto> object = new JsonObject<>();
        if (queryParams != null) {
            JSONObject jsonObject = JSON.parseObject(queryParams);
            String keyword = jsonObject.getString("keyword");
            IPage<UserDto> dtoIPage = userService.queryUserByParam(currentPage, limit, keyword);
            object.setCode(0);
            object.setMsg("ok");
            object.setCount(dtoIPage.getTotal());
            object.setData(dtoIPage);
            return object;
        } else {
            IPage<UserDto> dtoIPage = userService.queryUserByParam(currentPage, limit, queryParams);
            object.setCode(0);
            object.setMsg("ok");
            object.setCount(dtoIPage.getTotal());
            object.setData(dtoIPage);
            return object;
        }
    }

    @PostMapping("/addUser")
    public Result addAddress(UserDto userDto) {
        return userService.addUser(userDto);
    }

    @PostMapping("/deleteUser")
    public Result deleteAddress(Integer[] ids) {
        return userService.deleteUser(ids);
    }

    @PostMapping("/updateUser")
    public Result updateUser(UserDto userDto) {
        return userService.updateUser(userDto);
    }


}

登录控制器:


/**
 * @author yy
 *
 * 登录控制器
 */
@Slf4j
@Controller
@RequestMapping("/User")
@Api(value = "用户登录模块,进行个人信息管理",tags = "用户登录相关信息接口")
public class LoginController {
    @Autowired
    private UserService userService;

    @Resource
    private 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")
    @ResponseBody
    public 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());
        //开启RememberMe
        token.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")
    @ResponseBody
    public 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")
    @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("用户注销方法")
    @GetMapping("/logout")
    public String logout()
    {
        Subject subject = SecurityUtils.getSubject();
        subject.logout();
        return  "redirect:login";
    }
}

地址管理 前端控制器:

/**
 * <p>
 * 地址管理 前端控制器
 * </p>
 *
 */
@RestController
@Api(tags = "地址相关接口")
@RequestMapping("/address")
public class AddressController {

    @Autowired
    private AddressService addressService;

    @GetMapping("/queryAddressByParam")
    public JsonObject queryAddressByParam(@RequestParam("page") Integer currentPage, @RequestParam("limit") Integer limit,
                                          @RequestParam(name = "params", required = false) String queryParams) {
        JsonObject<AddressDto> object = new JsonObject<>();
        if (queryParams != null) {
            JSONObject jsonObject = JSON.parseObject(queryParams);
            String keyword = jsonObject.getString("keyword");
            IPage<AddressDto> dtoIPage = addressService.queryAddressByParam(currentPage, limit, keyword);
            object.setCode(0);
            object.setMsg("ok");
            object.setCount(dtoIPage.getTotal());
            object.setData(dtoIPage);
            return object;
        } else {
            IPage<AddressDto> dtoIPage = addressService.queryAddressByParam(currentPage, limit, queryParams);
            object.setCode(0);
            object.setMsg("ok");
            object.setCount(dtoIPage.getTotal());
            object.setData(dtoIPage);
            return object;
        }
    }

    @PostMapping("/addAddress")
    public Result addAddress(AddressDto addressDto) {
        return addressService.addAddress(addressDto);
    }

    @PostMapping("/deleteAddress")
    public Result deleteAddress(Integer[] ids) {
        return addressService.deleteAddress(ids);
    }

    @PostMapping("/updateAddress")
    public Result updateAddress(AddressDto addressDto) {
        return addressService.updateAddress(addressDto);
    }

}

这篇关于Java项目:疫情人员流动管理系统(java+JSP+SSM+Springboot+maven+Mysql)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!