基于 Java 的疫情防控管理系统

点击上方“Java精选”,选择“设为星标”

别问别人为什么,多问自己凭什么!

下方有惊喜留言必回,有问必答!

每天 08:15 更新文章,每天进步一点点...

目录

☣基于java疫情防控管理系统

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

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

1、登录模块(注册)
badc40ebcaa7e8bdf5d0d6518df8809d.png

0a3572d401e1e55ef008784c06f14889.png

核心代码: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(), "用户角色分配失败");
        }

    }

}

a7f994c06bfa699437e70beb2fc4975f.png

2、今日疫情模块
6cda375485788ba3a077e1efae536007.png

3dfab3c2cf47c17085fd78c827b625d3.png

核心代码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、防疫管理模块

2b54919c108294e546a756046c83071a.png

0d0b6c87962d67511f7203bc0bdb7915.png

核心代码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、系统管理模块

c7336263ec65092f91aae0660a6211c5.png

6b91f301cac75a6de776671d58c6b03b.png

核心代码: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、用户模块

09c86e27d3901657810125fbf49f61cb.png

0442c4acea3158bdfa101e0bdace0134.png

核心代码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(), "角色权限更新失败");
    }
}

版权声明:本文为CSDN博主「每日小新」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

https://blog.csdn.net/llAl_lAll/article/details/121065156

公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!

------ THE END ------

ba44b3475b66d7f4a5fc523ef8ca02a7.png精品资料,超赞福利!6e25bb5aac80941a1170fb14107700c1.png

>Java精选面试题<
3000+道BAT大厂面试题在线刷,最新、最全Java面试题!

8c226952a1cdbf5eaf55eefa84cf1f4d.png

5c0a584a518b0e198de5b84cfbf3e916.png

期往精选  点击标题可跳转

2021 年编程语言排行榜出炉!有点“小”出乎意外!

Spring Boot + flowable 快速实现工作流,如此 so easy!

资深开发竟然不清楚 int(1) 和 int(10) 的区别

Spring Boot 快速开发利器:Spring Boot CLI

40 岁失业高级码农自曝:阿里 P9,攒了 1.5亿...

37 岁程序员被裁,120 天没找到工作,无奈去小公司,结果懵了...

还在用策略模式解决 if-else?Map+函数式接口方法才是 YYDS!

Eclipse 跌落“神坛”,这款 IDE 后来居上!

求你别在自己瞎写工具类了,Spring 自带的这些它不香麽?

2cedd61958108eedeb1b23f6646f3a9b.png技术交流群!55c7c05ae59e93530ddffba4c7bf6ae0.png

最近有很多人问,有没有读者&异性交流群,你懂的!想知道如何加入。加入方式很简单,有兴趣的同学,只需要点击下方卡片,回复“加群”,即可免费加入交流群!

文章有帮助的话,在看,转发吧!

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基本内容: 基于前期调研和用户需求分析梳理,平台根据使用角色主要划分为两个客户端,分别是用户端、管理员端,据登录账号的类别系统将进入相应的客户端,本节分别对这两个客户端进行详细的功能性分析。 (1)用户档案模块,用户可在客户端用户档案模块完成相应用户档案信息收集,如姓名、身份证号、家庭住址等信息。后台管理员可做相应的信息管理工作,对其收集到的信息进行整理汇总,方便社区人员对社区达到更好的管理,充分利用互联网的优势,减少工作的繁重冗杂。 (2)健康打卡模块,用户可在客户端健康打卡模块完成相应健康打卡收集表填写,如今日体温是否正常、家人中是否有人确诊新冠肺炎等等。后台管理员可根据每日的信息收集情况了解社区人员的健康情况,做到全面了解、及时处理。 (3)日常需求模块,用户可在客户端日常需求模块完成相应日常需求物资收集表填写,如每日蔬菜信息收集、日用品信息收集等等。后台管理员则可根据每日收集表,根据居民的需求来完成相应的采购工作,更加方便便捷的服务居民。 (4)意见栏模块,用户可在客户端意见栏模块直接填写对社区管理的意见,相应意见直接投入线上社区意见信箱,方便社区管理,做到社区与居民无缝对接。 (5)人员管理模块,后台管理系统可对人员做到信息收集与管理工作,减少纸质档案收集遗失的复杂,实现线上管理。 拟解决的主要问题: 1.疫情数据的登记问题。 2.数据库设计问题,需要涉及到数据实体直接的联系。 3.界面布局和设计问题。 三、研究的方法与技术路线: 研究方法: 1、文献资料研究法 通过对国内疫情信息系统设计和开发了解以及查阅研究相关的文献和期刊,对系统研究所涉及到的相关内容和技术进行深入了解,在汲取前人的经验和优势的基础上,总结已有系统的功能特点以及技术手法并设计出符合实际需要的功能模块。 2、调查法 通过调查本校学生和社区不同人群的调查,了解他们对于疫情信息登记的需求,为之后的系统设计奠定需求基础。 三、交流沟通法 收集相关数据资料,为实验提供可靠依据。在参考文献和实际操作中遇到的问题及时地与指导老师进行沟通,通过对问题的分析,实现对系统的优化设计,按照规定实现论文的撰写。 四、实验操作法 通过总结之前在学习过程中做过的案例,学习某一功能模块的实现,并将多个模块整合起来,然后进行进一步完善,形成较为完整的功能。再进一步优化,解决试验中存在的问题。 技术路线: 系统平台:采用B/S体系结构,Microsoft Windows 10为服务端操作系统,Tomcat8.0为Web服务器,客户端采用 Windows 10操作系统,Internet Explorer浏览器,数据库采用MySQL5.5。 开发工具:采用Java语言,JSP技术。 实现途径:本课题的开发采用Java+MySQL实现,采用B/S模式,前期主要运用所学相关知识、查询资料,学习其他优秀管理系统的开发方法,结合相关要求写出需求分析;后期进行该系统的设计与开发。系统的页面主要采用JSP语言对数据库进行操作,通过对数据库的查询搜索来实现,控制页面的正确显示和对用户类型的权限设计。采用MySQL数据库,实现整个系统的操作。在整个设计过程中以需求分析为基础,写出系统实现流程及相关问题的实现方法;系统开发完成后,进行调试和运行,做好调试和试运行的相关记录。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值