Java 实战项目之疫情防控管理系统详解

目录
  • ☣基于java疫情防控管理系统
    • 1、登录模块(注册)
    • 2、今日疫情模块
    • 3、防疫管理模块
    • 4、系统管理模块
    • 5、用户模块

☣基于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
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void updateUser(User user){
        //1.参数校验
        //通过用户id获取用户对象
        User temp=userMapper.selectByPrimaryKey(user.getId());
        //判断对象是否存在
        AssertUtil.isTrue(temp==null,"待更新记录不存在");
        //验证参数
        checkParams1(user.getUserName(),user.getComId(),user.getVc());
        //2.设置默认参数
        user.setUpdateDate(new Date());
        //3.执行更新,返回结果
        AssertUtil.isTrue(userMapper.updateByPrimaryKeySelective(user)<1,"用户更新失败!");
        relaionUserRole(user.getId(),user.getRoleIds());
    }

    private void checkParams(String userName, Integer comId, Integer vc) {
        AssertUtil.isTrue(StringUtils.isBlank(userName),"用户名不能为空");
        //验证用户是否存在
        User temp=userMapper.queryUserByUserName(userName);
        AssertUtil.isTrue(temp!=null,"用户名已存在");
        AssertUtil.isTrue(comId==null,"请输入所在社区");
        AssertUtil.isTrue(vc==null,"请选择疫苗接种状况");
    }

    private void checkParams1(String userName, Integer comId, Integer vc) {
        AssertUtil.isTrue(StringUtils.isBlank(userName),"用户名不能为空");
        //验证用户是否存在
        AssertUtil.isTrue(comId==null,"请输入所在社区");
        AssertUtil.isTrue(vc==null,"请选择疫苗接种状况");
    }

    @Transactional(propagation = Propagation.REQUIRED)
    public void deleteUser(Integer[] ids){
        AssertUtil.isTrue(ids==null||ids.length==0,"请选择您要删除的记录");
        for (int id:ids){
            User user=userMapper.selectByPrimaryKey(id);
            AssertUtil.isTrue(communityMapper.subNumByComId(user.getComId())!=ids.length, "社区用户删除失败");
        }
        AssertUtil.isTrue(deleteBatch(ids) != ids.length,"用户角色删除失败");
    }

    /*SZC*/
    /**
     * 用户注册
     * @param userName
     * @param password1
     * @param password2
     * @param icon
     */
    public void registerUser(String userName, String password1, String password2, String icon) {
        // 参数校验
        checkRegister(userName, password1, password2, icon);
        // 实例化user
        User user = new User();
        //设置默认参数
        user.setUserName(userName);
        user.setUserPwd(Md5Util.encode(password1));
        user.setUserPhone(icon);
        user.setCreateDate(new Date());
        user.setUpdateDate(new Date());
        // 执行方法
        AssertUtil.isTrue(userMapper.insertSelective(user)<1, "用户添加失败");
    }

    /**
     * 用户注册的参数校验
     * @param userName
     * @param password1
     * @param password2
     * @param icon
     */
    private void checkRegister(String userName, String password1, String password2, String icon) {
        // 用户名不为空
        AssertUtil.isTrue(StringUtils.isBlank(userName), "请输入用户名");
        // 判断用户名是否存在
        User user1 = userMapper.selectByName(userName);
        AssertUtil.isTrue(user1!=null, "该用户已存在");
        // 判断手机号是否存在
        User user2 = userMapper.selectByPhone(icon);
        AssertUtil.isTrue(user2!=null, "该手机号已注册过账号");
        // 密码不为空
        AssertUtil.isTrue(StringUtils.isBlank(password1), "请输入密码");
        // 确认密码不为空
        AssertUtil.isTrue(StringUtils.isBlank(password2), "请输入确认密码");
        // 密码长度校验
        AssertUtil.isTrue(password1.length()<6 || password1.length()>12, "密码长度为6-12位");
        // 密码和确认密码相等
        AssertUtil.isTrue(!password1.equals(password2), "确认密码与密码不一致");
        // 手机号合法
        AssertUtil.isTrue(!PhoneUtil.isMobile(icon), "请输入正确的手机号");
    }

    /**
     * 删除用户原先的角色,并重新赋予新的角色
     * @param userId
     * @param roleIds
     */
    private void relaionUserRole(int userId, String roleIds) {
        // 通过id获取用户的角色数量
        int count = userRoleMapper.countUserRoleByUserId(userId);
        // count>0  说明用户原先有角色  先删除所有的角色
        if (count>0) {
            AssertUtil.isTrue(userRoleMapper.deleteUserRoleByUserId(userId)!=count, "用户角色删除失败");
        }
        // 传入的角色信息不为空 添加新的角色
        if (StringUtils.isNoneBlank(roleIds)) {
            // 将传入的roleIds转成字符串数组
            String[] roleStrIds = roleIds.split(",");
            // 用来存放用户的角色信息
            List<UserRole> roleList = new ArrayList<>();
            // 遍历roleIds
            for (String rid : roleStrIds) {
                // 准备对象
                UserRole userRole = new UserRole();
                userRole.setUserId(userId);
                userRole.setRoleId(Integer.parseInt(rid));
                userRole.setCreateDate(new Date());
                userRole.setUpdateDate(new Date());
                roleList.add(userRole);
            }
            AssertUtil.isTrue(userRoleMapper.insertBatch(roleList) != roleList.size(), "用户角色分配失败");
        }

    }

}

2、今日疫情模块

核心代码Service

@Service
public class ConfirmedService extends BaseService<Confirmed,Integer> {

    @Resource
    //引入ConfirmedMapper
    private ConfirmedMapper confirmedMapper;

    @Resource
    //引入user表
    private UserMapper userMapper;

    @Resource
    //引入user表
    private CommunityMapper  communityMapper;

    //角色的条件查询以及 分页
    public Map<String,Object> findRoleByParam(ConfirmedQuery confirmedQuery){
        //实例化对象
        Map<String,Object> map = new HashMap<>();
        //实例化分页单位
        PageHelper.startPage(confirmedQuery.getPage(), confirmedQuery.getLimit());
        //开始分页
        PageInfo<Confirmed> rlist = new PageInfo<>(selectByParams(confirmedQuery));
        map.put("code",0);
        map.put("msg","success");
        map.put("count",rlist.getTotal());
        map.put("data",rlist.getList());
        //返回Map
        return map;
    }

    @Transactional(propagation = Propagation.REQUIRED)           //涉及到事务   就需要此注解
    //用户模块的添加
    public void addUser(Confirmed user) {
        //1、参数校验
        checkConfirmed(user.getTrueName(),user.getState());

        if (user.getComId().equals("浦东区")){
            user.setComId(1);
        }
        if (user.getComId().equals("黄浦区")){
            user.setComId(2);
        }
        if (user.getComId().equals("松江区")){
            user.setComId(3);
        }
        if (user.getComId().equals("徐汇区")){
            user.setComId(4);
        }
        if (user.getComId().equals("虹口区")){
            user.setComId(5);
        }

        //查询user表中是否存在此人  不存在   添加上去  设置默认值
        User temp =  userMapper.selectByPhone(user.getTcPhone());
       //   手机号查询用户
        if (temp != null){
            //健康状态改成2    如果user表里面已经有了的情况下
            userMapper.updateUserHealthById(temp.getUserPhone());
            //默认值  确诊表中的userId字段
            user.setUserId(temp.getId());

        }else {          //表里没有这个人的时候  添加 这个用户  新建一个user对象
            User u = new User();
            //真实姓名
            u.setTrueName(user.getTrueName());
            //名字
            u.setUserName(user.getTrueName());
            //设置密码  默认值  :123456
            u.setUserPwd(Md5Util.encode("123456"));

            //设置社区ID
            u.setComId(user.getComId());

            //手机号  唯一
            u.setUserPhone(user.getTcPhone());
            u.setEcPhone(user.getTcPhone());
            u.setHealth("2");
            //创建时间
            u.setCreateDate(new Date());
            //修改时间
            u.setUpdateDate(new Date());

            //添加用户是否成功
            AssertUtil.isTrue(userMapper.insertSelective(u)<1,"插入用户失败");

            //给确诊人员添加其  userId
            Integer userId =  userMapper.selectById(user.getTcPhone());
            user.setUserId(userId);
        }

        //2、默认值设置
        //确诊日期
        user.setCreateDate(new Date());

        //添加是否成功
        AssertUtil.isTrue(insertSelective(user)<1,"添加失败");

        //relaionUserRole(user.getId(),user.getComId());

    }

    @Transactional(propagation = Propagation.REQUIRED)           //涉及到事务   就需要此注解
    //用户模块的修改
    public void changeUser(Confirmed user) {
        //通过id获取用户信息
        Confirmed temp = confirmedMapper.selectByPrimaryKey(user.getId());
        //判断用户信息是否存在
        AssertUtil.isTrue(temp == null,"当前用户不存在");

        //校验参数
        changeConfirmed(user.getTrueName(),user.getTcPhone(),user.getState());

        //修改是否成功  完整版
        //AssertUtil.isTrue(updateByPrimaryKeySelective(user)<1,"修改失败了");

        //修改是否成功  完整版
        AssertUtil.isTrue(confirmedMapper.uBPKS(user)<1,"修改失败了");

    }

    //修改的参数校验
    private void changeConfirmed(String trueName, String tcPhone, Integer state) {
        //1、用户名不能为空
        AssertUtil.isTrue(StringUtils.isBlank(trueName),"姓名不能为空");
        //2、当前状态不能为空
        AssertUtil.isTrue(StringUtils.isBlank(tcPhone),"请输入手机号");
        //3、当前状态不能为空
        AssertUtil.isTrue(state<1 || state>4,"请选择正确的状态码");
    }

    //用户模块的添加的参数校验
    private void checkConfirmed(String trueName, Integer state) {
        //1、用户名不能为空
        AssertUtil.isTrue(StringUtils.isBlank(trueName),"姓名不能为空");
        //2、当前状态不能为空
        AssertUtil.isTrue(state<1 || state>3,"请选择正确的状态码");
    }

    //添加社区时的校验
    private void relaionUserRole(Integer id, Integer comId) {
        //准备集合  存储对象
        List<Community> urlist = new ArrayList<>();

        //userId,roleId
        //判断是否选择了角色信息

        //只能选择一个社区
        AssertUtil.isTrue(comId>1 || comId<1,"只能选择一个社区");

        //通过社区表的 com_id    查询到社区表的对应社区名
        communityMapper.selectaddresComId(comId);
        //添加

    }

    @Transactional(propagation = Propagation.REQUIRED)           //涉及到事务   就需要此注解
    //确诊人员的批量删除
    public void deleteUserByIds(Integer[] ids) {
        //要删除记录不能为空
        AssertUtil.isTrue(ids == null || ids.length==0,"请选择要删除的记录");

        //修改user表的状态码
        for(Integer id: ids){
            Confirmed confirmed = confirmedMapper.selectId(id);
            System.out.println(id+ " -----------------" );
            System.out.println(confirmed.getTrueName());
            AssertUtil.isTrue(userMapper.updateById(confirmed.getUserId())<1,"修改失败");
        }

        //删除确诊表的个人信息记录
        AssertUtil.isTrue(deleteBatch(ids)!=ids.length,"删除失败");
    }

    //查询所有社区
    public List<Map<String, Object>> queryComs() {
        return confirmedMapper.selectComs();
    }

}

3、防疫管理模块

核心代码Service:

@Service
public class CommunityService extends BaseService<Community,Integer> {
    @Resource
    private CommunityMapper communityMapper;

    /**
     * 多条件分页查询
     * @param query
     * @return
     */
    public Map<String,Object> queryComByParams(CommunityQuery query){
        Map<String,Object> map=new HashMap<>();
        //初始化分页
        PageHelper.startPage(query.getPage(), query.getLimit());
        //开始分页
        PageInfo<Community> pageInfo=new PageInfo<>(communityMapper.selectByParams(query));
        //准备数据
        map.put("code",0);
        map.put("msg","");
        map.put("count",pageInfo.getTotal());
        map.put("data",pageInfo.getList());
        return map;
    }

    //查询所有角色信息
    public List<Map<String, Object>> findRoles(Integer userId) {
        return communityMapper.selectRoles(userId);
    }

}

//============================================================
@Service
public class VaccinationService {

    @Resource
    VaccinationMapper vaccinationMapper;

    /*多条件查询*/
    public Map<String,Object> selectAll(VaccinationQuery vaccinationQuery) {
        //创建map
        Map<String,Object> map =new HashMap<String,Object>();
        //查数据并分页
        PageHelper.startPage(vaccinationQuery.getPage(),vaccinationQuery.getLimit());
        PageInfo<Vaccination> pageInfo=new PageInfo<>(vaccinationMapper.selectByParams(vaccinationQuery));
        map.put("code",0);
        map.put("msg","success");
        map.put("data",pageInfo.getList());
        map.put("count",pageInfo.getTotal());

        return map;
    }
    /*通过ID获取对象*/
    public Vaccination selectId(Integer id) {
        return vaccinationMapper.selectById(id);
    }

    /*添加*/
    @Transactional(propagation = Propagation.REQUIRED)
    public void insertVaccination(Vaccination vaccination) {
        //审核
        checkOK(vaccination);
        vaccination.setFirstDate(new Date());
        vaccination.setSecondDate(new Date());
        //插入
        AssertUtil.isTrue(vaccinationMapper.insertSelective(vaccination)<1,"插入失败");
    }

    private void checkOK(Vaccination vaccinatio){
        AssertUtil.isTrue(vaccinatio==null,"请输入添加的角色");
        AssertUtil.isTrue(StringUtils.isBlank(vaccinatio.getTrueName()),"用户名不能为空");
        AssertUtil.isTrue(StringUtils.isBlank(vaccinatio.getFirst()),"请填写(是/否)");
        AssertUtil.isTrue(StringUtils.isBlank(vaccinatio.getSecond()),"请填写(是/否)");
    }

    /*删除*/
    public void delete(Integer[] ids) {
        AssertUtil.isTrue(ids==null||ids.length==0,"请选择要删除的用户");
        AssertUtil.isTrue(vaccinationMapper.deleteVa(ids)!=ids.length,"删除失败~~~");
    }

    /*编辑*/
    public void updateVa(Vaccination vaccination) {
        checkOK(vaccination);
        if(vaccination.getFirst()==null||"否".equals(vaccination.getFirst())){
            vaccination.setFirstDate(null);
        }
        if(vaccination.getSecond()==null||"否".equals(vaccination.getSecond())){
            vaccination.setSecondDate(null);
        }
        if("是".equals(vaccination.getFirst())){
            vaccination.setFirstDate(new Date());
        }
        if("是".equals(vaccination.getSecond())){
            vaccination.setSecondDate(new Date());
        }
        AssertUtil.isTrue(vaccinationMapper.updateByPrimaryKeySelective(vaccination)<1,"修改失败~");

    }
}

4、系统管理模块

核心代码:Service:

@Service
public class RoleService extends BaseService<Role,Integer> {

    @Autowired(required = false)
    RoleMapper roleMapper;

    @Autowired(required = false)
    RoleQuery roleQuery;

    @Resource
    private ModuleMapper moduleMapper;

    @Resource
    private PermissionMapper permissionMapper;

    /*多条件查询*/
    public Map<String,Object> selectRole(RoleQuery roleQuery){
        //创建map
        Map<String,Object> map =new HashMap<String,Object>();
        //查数据并分页
        PageHelper.startPage(roleQuery.getPage(),roleQuery.getLimit());
        PageInfo<Role> pageInfo=new PageInfo<>(roleMapper.selectByParams(roleQuery));
        map.put("code",0);
        map.put("msg","success");
        map.put("data",pageInfo.getList());
        map.put("count",pageInfo.getTotal());
        return map;
    }

    /*添加角色*/
    @Transactional(propagation = Propagation.REQUIRED)
    public void insertRole(Role role) {
        //审核
        checkRole(role);
        //添加
        role.setCreateDate(new Date());
        role.setUpdateDate(new Date());
        System.out.println("就差一点!!!!");
        AssertUtil.isTrue(insertSelective(role)<1,"添加失败了呢~");
    }
    private void checkRole(Role role) {
        //是否为空
        AssertUtil.isTrue(role==null,"请输入角色信息~");
        //判断是否已经重复
        System.out.println("判断");
        Role role1= roleMapper.selectByName(role.getRoleName());
        System.out.println("判断结束");
        System.out.println(role1!=null);
        AssertUtil.isTrue(role1!=null,"已添加过啦~");
        System.out.println("退出@");
    }
    /*编辑角色*/
    @Transactional(propagation = Propagation.REQUIRED)
    public void updateRole(Role role) {
        role.setUpdateDate(new Date());
        AssertUtil.isTrue(updateByPrimaryKeySelective(role)<1,"编辑失败啦~");
    }

    /**
     * 删除角色信息
     * @param role
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void deleteRole(Role role) {
        // 验证
        AssertUtil.isTrue(role.getId()==null || selectByPrimaryKey(role.getId())==null, "待删除角色不存在");
        // 设定默认值
        role.setUpdateDate(new Date());
        // 删除角色绑定的权限资源
        int count = roleMapper.countPermissionByRoleId(role.getId());
        if (count>0) {
            int i = roleMapper.deletePermissionsByRoleId(role.getId());
            AssertUtil.isTrue(i!=count, "角色绑定的权限资源删除失败");
        }
        // 判断是否成功
        AssertUtil.isTrue(roleMapper.updateRoleById(role.getId())<1, "角色删除失败");
    }

    /**
     * 查询所有角色
     * @return
     */
    public List<Map<String, Object>> seleceAllRole(Integer userId) {
        return roleMapper.seleceAllRole(userId);
    }

    /**
     * 给角色添加权限
     * @param mids
     * @param roleId
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void addGrant(Integer[] mids, Integer roleId) {
        // 判断roleId是否存在
        AssertUtil.isTrue(roleId==null || roleMapper.selectByPrimaryKey(roleId)==null, "待授权的角色不存在");
        // 统计当前角色的权限资源数量
        int count = roleMapper.countPermissionByRoleId(roleId);
        if (count>0) {
            // 如果角色存在权限资源,就全部删除
            int num = roleMapper.deletePermissionsByRoleId(roleId);
            AssertUtil.isTrue(count!=num, "资源删除失败");
        }
        List<Permission> plist = new ArrayList<>();
        if (mids!=null && mids.length!=0) {
            // 遍历mids
            for (Integer mid : mids) {
                // 实例化对象
                Permission permission = new Permission();
                // 设置数据
                permission.setRoleId(roleId);
                permission.setModuleId(mid);
                // 权限码
                permission.setAclValue(moduleMapper.selectByPrimaryKey(mid).getOptValue());
                permission.setCreateDate(new Date());
                permission.setUpdateDate(new Date());
                // 添加到list
                plist.add(permission);
            }
        }
        AssertUtil.isTrue(permissionMapper.insertBatch(plist)!=plist.size(), "角色权限更新失败");
    }
}

5、用户模块

核心代码Service:

@Service
public class RoleService extends BaseService<Role,Integer> {

    @Autowired(required = false)
    RoleMapper roleMapper;

    @Autowired(required = false)
    RoleQuery roleQuery;

    @Resource
    private ModuleMapper moduleMapper;

    @Resource
    private PermissionMapper permissionMapper;

    /*多条件查询*/
    public Map<String,Object> selectRole(RoleQuery roleQuery){
        //创建map
        Map<String,Object> map =new HashMap<String,Object>();
        //查数据并分页
        PageHelper.startPage(roleQuery.getPage(),roleQuery.getLimit());
        PageInfo<Role> pageInfo=new PageInfo<>(roleMapper.selectByParams(roleQuery));
        map.put("code",0);
        map.put("msg","success");
        map.put("data",pageInfo.getList());
        map.put("count",pageInfo.getTotal());
        return map;
    }

    /*添加角色*/
    @Transactional(propagation = Propagation.REQUIRED)
    public void insertRole(Role role) {
        //审核
        checkRole(role);
        //添加
        role.setCreateDate(new Date());
        role.setUpdateDate(new Date());
        System.out.println("就差一点!!!!");
        AssertUtil.isTrue(insertSelective(role)<1,"添加失败了呢~");
    }
    private void checkRole(Role role) {
        //是否为空
        AssertUtil.isTrue(role==null,"请输入角色信息~");
        //判断是否已经重复
        System.out.println("判断");
        Role role1= roleMapper.selectByName(role.getRoleName());
        System.out.println("判断结束");
        System.out.println(role1!=null);
        AssertUtil.isTrue(role1!=null,"已添加过啦~");
        System.out.println("退出@");
    }
    /*编辑角色*/
    @Transactional(propagation = Propagation.REQUIRED)
    public void updateRole(Role role) {
        role.setUpdateDate(new Date());
        AssertUtil.isTrue(updateByPrimaryKeySelective(role)<1,"编辑失败啦~");
    }

    /**
     * 删除角色信息
     * @param role
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void deleteRole(Role role) {
        // 验证
        AssertUtil.isTrue(role.getId()==null || selectByPrimaryKey(role.getId())==null, "待删除角色不存在");
        // 设定默认值
        role.setUpdateDate(new Date());
        // 删除角色绑定的权限资源
        int count = roleMapper.countPermissionByRoleId(role.getId());
        if (count>0) {
            int i = roleMapper.deletePermissionsByRoleId(role.getId());
            AssertUtil.isTrue(i!=count, "角色绑定的权限资源删除失败");
        }
        // 判断是否成功
        AssertUtil.isTrue(roleMapper.updateRoleById(role.getId())<1, "角色删除失败");
    }

    /**
     * 查询所有角色
     * @return
     */
    public List<Map<String, Object>> seleceAllRole(Integer userId) {
        return roleMapper.seleceAllRole(userId);
    }

    /**
     * 给角色添加权限
     * @param mids
     * @param roleId
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void addGrant(Integer[] mids, Integer roleId) {
        // 判断roleId是否存在
        AssertUtil.isTrue(roleId==null || roleMapper.selectByPrimaryKey(roleId)==null, "待授权的角色不存在");
        // 统计当前角色的权限资源数量
        int count = roleMapper.countPermissionByRoleId(roleId);
        if (count>0) {
            // 如果角色存在权限资源,就全部删除
            int num = roleMapper.deletePermissionsByRoleId(roleId);
            AssertUtil.isTrue(count!=num, "资源删除失败");
        }
        List<Permission> plist = new ArrayList<>();
        if (mids!=null && mids.length!=0) {
            // 遍历mids
            for (Integer mid : mids) {
                // 实例化对象
                Permission permission = new Permission();
                // 设置数据
                permission.setRoleId(roleId);
                permission.setModuleId(mid);
                // 权限码
                permission.setAclValue(moduleMapper.selectByPrimaryKey(mid).getOptValue());
                permission.setCreateDate(new Date());
                permission.setUpdateDate(new Date());
                // 添加到list
                plist.add(permission);
            }
        }
        AssertUtil.isTrue(permissionMapper.insertBatch(plist)!=plist.size(), "角色权限更新失败");
    }
}

大概就是这样,管理系统,基本都差不多,比如图书管理,CRM等,详细源码见文件上传~

到此这篇关于Java 实战项目之疫情防控管理系统详解的文章就介绍到这了,更多相关Java 疫情防控管理系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java开发实例之图书管理系统的实现

    目录 一.项目分布 二.代码展示 1.SQL语句 2.Book类 3.User类 4.用户分为两种 4.1NormalUser类 4.2Admin类 5.DBUtil类 6.BookDao类 7.UserDao类 8.operations包 8.1AddOperation类:增加书籍 8.2BorrowOperation类:借阅书籍 8.3DeleteOperation类:删除书籍 8.4DisplayOperation类:查看书籍列表 8.5ExitOperation类:退出系统 8.6Fin

  • Java实现通讯录管理系统项目

    本文实例为大家分享了Java实现通讯录管理系统的具体代码,供大家参考,具体内容如下 一.前言 我们学了这么久的知识了,光学知识不会用是一件很悲伤的事情,所以我们应学完 部分练一些项目或题,来巩固我们学习的知识,激发我们持续学习的动力. 二.创建通讯的功能 增加联系人信息 删除联系人信息 修改联系人信息 查看所有联系人信息 退出通信录管理系统 首先定义一个People类,提供相应的get.set方法 (在idea中有快捷键Alt+insert生成get.set方法,和构造方法) public cl

  • JAVA实现图书管理系统项目

    目录 前言 项目需求 设计前提 设计目标 设计结构图 功能解读 项目实现 基本对象的设置 通过IO流的写入写出 总结 前言 相信再每一个学生在学习编程的时候,应该都会写的一个小项目--图书管理系统.为什么这么说呢?因为我认为一个学校的氛围很大一部分可以从图书馆的氛围看出来,而图书管理系统这个不大不小的项目,学生接触的多,也算是比较熟悉,就不会有陌生感,能够练手,有有些难度,所以,今天,我的小小项目也来了. 项目需求 设计前提 掌握java基本语法 熟悉使用流程控制 理解面向对象思想 熟练封装,继

  • Java实现学生管理系统详解

    目录 总结 学生管理系统(Java版) 前言:这个是大二做的课设(还是学生管理系统-),理论上虽然是4个人一组一起做的,但是,注意这个"但是",还是我一个人承担了所有-代码和文档基本都是我一个人写的,当初直接肝得吐血,这也是为啥后面的 Web 版部分功能没有完成的原因. 项目介绍 项目分为一个JavaSwing写的GUI桌面应用和一个半成品的Web应用,下图是项目的整体功能结构展示 JavaSwing JavaSwing这里使用的是 MyBatis + Spring 的框架组合,后面发

  • Java练手小项目实现一个项目管理系统

    目录 前言: 一.项目需求 二.功能实现 三.具体模块的实现 四.总结 前言: 时隔多日,我们学习完java的面向对象阶段,毕竟需要付诸实践,这个小项目就 作为我们第一个java面向对象解决的项目,接下来就让我们一起进入项目的世界吧 一.项目需求 • 模拟实现一个基于文本界面的 < 项目开发团队分配管理软件 > • 熟悉 Java 面向对象的高级特性,进一步掌握编程技巧和调试技巧 •主要涉及以下知识点: Ø 类的继承性和多态性 Ø 对象的值传递.接口 Ø static 和 final 修饰符

  • 利用Java写一个学生管理系统

    目录 前言: 其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来做一个有界面的学生管理系统.其实都并不会太难. 我先写一个简单的用List来实现学生管理系统: 首先,管理系统是针对学生对象的,所以我们先把学生对象写出来: package bean; public class Student { String name; String student

  • JAVA实战练习之图书管理系统实现流程

    目录 前言 项目说明: 项目功能如下: 项目分析: (-)用户管理模块 (二)基本信息维护模块 读者管理模块 前言 长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较烦琐.在借书时,读者首先将要借的书和借阅证交给工作人员,然后工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里,最后在借阅证和每本书贴的借阅条上填写借阅信息.在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息.太过于繁琐了!所以,我们需求设计一个图书管理

  • Java 实战项目之疫情防控管理系统详解

    目录 ☣基于java疫情防控管理系统 1.登录模块(注册) 2.今日疫情模块 3.防疫管理模块 4.系统管理模块 5.用户模块 ☣基于java疫情防控管理系统 ☣项目介绍:通过对依社区为单位进行人群的管理,以及疫苗的情况,包括小区状况,通过RBAC进行角色与用户之间的权限管理. ☣项目:环境-IDEA.Mysql数据库,Tomcat服务器,SpringMVC,SpringBoot,AOP,拦截器,过滤器,全局异常,RBAC权限控制等. 1.登录模块(注册) 核心代码:service层 @Serv

  • Java 实战项目之疫情人员流动管理系统详解

    一.项目简述 本系统主要实现的功能有: 社区疫情流动人员管理系统,住户管理,出入管理,访客管理,体温录入,高风险警示等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: Springboot+ SpringMVC + MyBatis + Jsp + Html+ JavaScript + JQuery + Ajax + maven等等 系统用户后台管理代

  • Java 实战项目之家居购物商城系统详解流程

    一.项目简述 功能: Java Web精品项目源码,家居商城分类展示,商品展示, 商品下单,购物车,个人中心,后台管理,用户管理,商品管理,分类管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: Jdbc+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload 打开订单列

  • Java 实战项目锤炼之网上图书馆管理系统的实现流程

    一.项目简述 功能: 区分为管理员用户和普通用户,普通用户:用户登录,个 人信息修改,图书查询,用户借阅,用户归还,管理员用 户:图书馆里,归还管理,借阅信息查询,图书维护,分 类管理,读者管理等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP + Servlert + html+ css + JavaScript + JQuery

  • Java 实战项目锤炼之校园宿舍管理系统的实现流程

    一.项目简述 功能:宿舍管理员,最高管理员,学生三个身份,包括学 生管理,宿舍管理员管理,考勤管理,宿舍楼管理,缺勤 记录管理,个人信息修改等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持). 项目技术: JSP + Entity+ Servlert + html+ css + JavaScript + JQuery + Ajax 等等. 用户登录操作代码

  • Java 实战项目锤炼之嘟嘟健身房管理系统的实现流程

    一.项目简述 功能包括: 前台+后台健身房管理系统,用户预订,教练选择.课程选 择,登录,后台管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等. 系统操作模块

  • Java 实战项目锤炼之小区物业管理系统的实现流程

    一.项目简述 功能包括: 分为管理员及普通业主角色,业主信息,社区房屋,维护 管理,社区车辆,社区投诉,社区缴费,社区业务信息维 护等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持) 项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + mav

  • Python实战项目刮刮乐的实现详解流程

    目录 导语 正文 1)环境安装 2)正式敲代码 2.1定义必要常量 2.2设置随机读取图片 2.3主程序 3)效果图展示 3.1 part 随机图一 3.2 part 随机图二 3.3 part 随机图三 总结 导语 在CSDN学习的过程中,遇到了爆火的文章是关于刮刮卡的! 大家猜猜看是谁写的? 我看这文章都特别火,我也感觉挺好玩的,那就寻思用 Python肯定也能做呀! 这不?今天还有时间,那就带大家写一款刮刮乐的小程序吧~ 正文 1)环境安装 准备好Python3.Pycharm.Pygam

  • Java实战之实现物流配送系统示例详解

    目录 介绍 效果图展示 主要实现代码 介绍 系统分普通用户.企业.超级管理员等角色,除基础脚手架外,实现的功能有: 超级管理员:系统管理.用户管理.企业用户管理.普通用户管理.货物类型管理.车辆管理.公告管理.使用帮助等. 普通用户:注册登录.个人信息管理(个人资料.密码修改.充值.订单管理等).货物浏览.公告查看.下单等. 企业用户:注册登录.修改密码.充值.订单管理.货物管理.车辆管理.安排车辆等. 运行环境:windows/Linux均可.jdk1.8.mysql5.7.redis3.0.

  • jquery项目中如何防重复提交详解

    在新项目中,axios能实现防重复提交的功能,不过老项目(例如jQuery)的项目中,没有axios.但是导入Ajax-hook 就可以实现 Ajax-hook源码地址 : https://github.com/wendux/Ajax-hook 导入 <script src="https://unpkg.com/ajax-hook@2.0.3/dist/ajaxhook.min.js"></script> ah对象是在导入ajaxhook.min.js后就会出现

随机推荐