基于java疫情防控管理系统

基于java疫情防控管理系统


项目介绍:通过对依社区为单位进行人群的管理,以及疫苗的情况,包括小区状况,通过RBAC进行角色与用户之间的权限管理。

项目:环境-IDEA、Mysql数据库,Tomcat服务器,SpringMVC,SpringBoot,AOP,拦截器,过滤器,全局异常,RBAC权限控制等。


目录


1、登录模块(注册)

在这里插入图片描述


在这里插入图片描述


核心代码:service层

@Service
public class UserService extends BaseService<User,Integer> {
    @Resource
    //引入dao层
    private UserMapper userMapper;

    @Resource
    private UserRoleMapper userRoleMapper;

    @Resource
    private CommunityMapper communityMapper;


    //用户登录
    public UserModel userLogin(String userName,String userPwd){
        //对输入的账号密码进行判断,是否符合格式
        checkUserLoginParam(userName,userPwd);

        //通过对数据库的查询,查看用户是否存在
        User temp =  userMapper.queryUserByUserName(userName);
        AssertUtil.isTrue(temp == null,"用户不存在");

        //判断用户的密码是否正确,拿数据库查询到的用户密码和用户输入的用户密码进行equest比较
        checkUserPwd(userPwd,temp.getUserPwd());

        //返回目标对象  对密码进行加密
        return builderUserInfo(temp);
    }


    /**
     * //对输入的账号密码进行判断  是否符合格式
     * @param userName   账号
     * @param userPwd    密码
     */
    //对输入的账号密码进行判断,是否符合格式
    private void checkUserLoginParam(String userName, String userPwd) {
        //用户非空
        AssertUtil.isTrue(StringUtils.isBlank(userName),"用户名不能为空");

        //密码非空
        AssertUtil.isTrue(StringUtils.isBlank(userPwd),"密码不能为空");
    }



    /**
     * //判断密码是否正确
     * @param userPwd   用户输入的密码
     * @param userPwd1  数据库查出来的密码
     */
    //判断用户的密码是否正确,拿数据库查询到的用户密码和用户输入的用户密码进行equest比较
    private void checkUserPwd(String userPwd, String userPwd1) {
        //对用户输入的密码进行加密
        userPwd = Md5Util.encode(userPwd);

        AssertUtil.isTrue(!(userPwd.equals(userPwd1)),"密码不正确");



    }

    /**
     *
     * @param temp 当前登录对象
     * @return
     */
    //对密码进行加密  返回目标对象
    private UserModel builderUserInfo(User temp) {
        UserModel userModel = new UserModel();
        //为用户密码进行加密
        userModel.setUserIdStr(UserIDBase64.encoderUserID(temp.getId()));
        userModel.setUserName(temp.getUserName());
        userModel.setTrueName(temp.getTrueName());
        return userModel;

    }


    /**
     *
     * @param userId                 当前Cookie存储的用户dId
     * @param oldPassword           旧密码
     * @param newPassword           新密码
     * @param confirmPassword            确认密码
     */
    //修改密码
    @Transactional(propagation = Propagation.REQUIRED)
    public void updateUserPassword(Integer userId, String oldPassword, String newPassword, String confirmPassword) {
        //通过Id获取user对象
        User user = userMapper.selectByPrimaryKey(userId);
        //参数校验 (用户,旧密码,新密码,确认密码)
        checkPasswordParams(user,oldPassword,newPassword,confirmPassword);

        //默认参数设置,把用户输入的新密码  加密 添加进去
        user.setUserPwd(Md5Util.encode(newPassword));

        //执行更新操作
        AssertUtil.isTrue(userMapper.updateByPrimaryKeySelective(user)<1,"修改密码失败");
    }


    //修改密码的参数校验
    private void checkPasswordParams(User user, String oldPassword, String newPassword, String confirmPwd) {
        //用户不能为空  (不存在)
        AssertUtil.isTrue(null == user,"用户不存在");
        //原始密码  非空
        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        AssertUtil.isTrue(StringUtils.isBlank(oldPassword),"原始密码不能为空");
        //原始密码是否和数据库查询到的密码一致
        AssertUtil.isTrue(!(Md5Util.encode(oldPassword).equals(user.getUserPwd())),"原始密码不正确");
        //新密码不能为空
        AssertUtil.isTrue(StringUtils.isBlank(newPassword),"新密码不能为空");
        //新密码和原始密码不能相同
        AssertUtil.isTrue(oldPassword.equals(newPassword),"新密码不能和原始密码相同");
        //确认密码非空
        AssertUtil.isTrue(StringUtils.isBlank(confirmPwd),"确认密码不能为空");
        //确认密码需要和新密码一致
        AssertUtil.isTrue(!(newPassword.equals(confirmPwd)),"新密码和确认密码不一致");
    }

    /**
     * 多条件分页查询用户数据
     * @param query
     * @return
     */
    public Map<String, Object> queryUserByParams (UserQuery query) {
        Map<String, Object> map = new HashMap<>();
        PageHelper.startPage(query.getPage(), query.getLimit());
        PageInfo<User> pageInfo = new PageInfo<>(userMapper.selectByParams(query));
        map.put("code",0);
        map.put("msg", "");
        map.put("count", pageInfo.getTotal());
        map.put("data", pageInfo.getList());
        System.out.println("执行完毕");
        return map;
    }

    /**
     * 添加用户
     * @param user
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void saveUser(User user){
        //参数校验
        checkParams(user.getUserName(),user.getComId(),user.getVc());
        //设置默认参数
        user.setCreateDate(new Date());
        user.setUpdateDate(new Date());
        user.setUserPwd(Md5Util.encode("123456"));
        //执行添加,判断结果
        AssertUtil.isTrue(userMapper.insertSelective(user)==null,"用户添加失败!");
        relaionUserRole(user.getId(),user.getRoleIds());
        AssertUtil.isTrue(communityMapper.addNumByComId(user.getComId())<1, "社区用户添加失败");
    }

    /**
     * 用户更新,修改
     * @param user
     */
 
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值