首页

jsp权限管理系统源码(含mysql数据库脚本)

java

2020-6-27

package com.imooc.permission.service;

import com.google.common.base.Preconditions;
import com.imooc.permission.common.RequestHolder;
import com.imooc.permission.dao.SysAclMapper;
import com.imooc.permission.dao.SysAclModuleMapper;
import com.imooc.permission.exception.ParamException;
import com.imooc.permission.model.SysAclModule;
import com.imooc.permission.param.AclModuleParam;
import com.imooc.permission.util.BeanValidator;
import com.imooc.permission.util.IpUtil;
import com.imooc.permission.util.LevelUtil;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Service
public class SysAclModuleService {

    @Autowired
    private SysAclModuleMapper sysAclModuleMapper;

    @Autowired
    private SysAclMapper sysAclMapper;

    @Autowired
    private SysLogService sysLogService;

    public void save(AclModuleParam param) {
        BeanValidator.check(param);
        if(checkExist(param.getParentId(), param.getName(), param.getId())) {
            throw new ParamException("同一层级下存在相同名称的权限模块");
        }
        SysAclModule aclModule = SysAclModule.builder().name(param.getName()).parentId(param.getParentId()).seq(param.getSeq())
                .status(param.getStatus()).remark(param.getRemark()).build();
        aclModule.setLevel(LevelUtil.calculateLevel(getLevel(param.getParentId()), param.getParentId()));
        aclModule.setOperator(RequestHolder.getCurrentUser().getUsername());
        aclModule.setOperateIp(IpUtil.getRemoteIp(RequestHolder.getCurrentRequest()));
        aclModule.setOperateTime(new Date());
        sysAclModuleMapper.insertSelective(aclModule);
        sysLogService.saveAclModuleLog(null, aclModule);
    }

    public void update(AclModuleParam param) {
        BeanValidator.check(param);
        if(checkExist(param.getParentId(), param.getName(), param.getId())) {
            throw new ParamException("同一层级下存在相同名称的权限模块");
        }
        SysAclModule before = sysAclModuleMapper.selectByPrimaryKey(param.getId());
        Preconditions.checkNotNull(before, "待更新的权限模块不存在");

        SysAclModule after = SysAclModule.builder().id(param.getId()).name(param.getName()).parentId(param.getParentId()).seq(param.getSeq())
                .status(param.getStatus()).remark(param.getRemark()).build();
        after.setLevel(LevelUtil.calculateLevel(getLevel(param.getParentId()), param.getParentId()));
        after.setOperator(RequestHolder.getCurrentUser().getUsername());
        after.setOperateIp(IpUtil.getRemoteIp(RequestHolder.getCurrentRequest()));
        after.setOperateTime(new Date());

        updateWithChild(before, after);
        sysLogService.saveAclModuleLog(before, after);
    }

    private void updateWithChild(SysAclModule before, SysAclModule after) {
        String newLevelPrefix = after.getLevel();
        String oldLevelPrefix = before.getLevel();
        if (!after.getLevel().equals(before.getLevel())) {
            String curLevel = before.getLevel()   "."   before.getId();
            List<SysAclModule> aclModuleList = sysAclModuleMapper.getChildAclModuleListByLevel(curLevel   "%");
            if (CollectionUtils.isNotEmpty(aclModuleList)) {
                for (SysAclModule aclModule : aclModuleList) {
                    String level = aclModule.getLevel();
                    if (level.equals(curLevel) || level.indexOf(curLevel   ".") == 0) {
                        // getChildAclModuleListByLevel可能会取出多余的内容,因此需要加个判断
                        // 比如0.1* 可能取出0.1、0.1.3、0.11、0.11.3,而期望取出  0.1、0.1.3, 因此呢需要判断等于0.1或者以0.1.为前缀才满足条件
                        level = newLevelPrefix   level.substring(oldLevelPrefix.length());
                        aclModule.setLevel(level);
                    }
                }
                sysAclModuleMapper.batchUpdateLevel(aclModuleList);
            }
        }
        sysAclModuleMapper.updateByPrimaryKeySelective(after);
    }

    private boolean checkExist(Integer parentId, String aclModuleName, Integer deptId) {
        return sysAclModuleMapper.countByNameAndParentId(parentId, aclModuleName, deptId) > 0;
    }

    private String getLevel(Integer aclModuleId) {
        SysAclModule aclModule = sysAclModuleMapper.selectByPrimaryKey(aclModuleId);
        if (aclModule == null) {
            return null;
        }
        return aclModule.getLevel();
    }

    public void delete(int aclModuleId) {
        SysAclModule aclModule = sysAclModuleMapper.selectByPrimaryKey(aclModuleId);
        Preconditions.checkNotNull(aclModule, "待删除的权限模块不存在,无法删除");
        if(sysAclModuleMapper.countByParentId(aclModule.getId()) > 0) {
            throw new ParamException("当前模块下面有子模块,无法删除");
        }
        if (sysAclMapper.countByAclModuleId(aclModule.getId()) > 0) {
            throw new ParamException("当前模块下面有用户,无法删除");
        }
        sysAclModuleMapper.deleteByPrimaryKey(aclModuleId);
    }
}

资源下载此资源下载价格为3D币(VIP免费),请先
资源文件列表
permission-master/.idea/compiler.xml , 531
permission-master/.idea/encodings.xml , 172
permission-master/.idea/misc.xml , 640
permission-master/.idea/uiDesigner.xml , 8792
permission-master/generator/generator.xml , 3611
permission-master/generator/mybatis-generator-core-1.3.2.jar , 516357
permission-master/generator/mysql-connector-java-5.1.34.jar , 960372
permission-master/generator/生成语句.txt , 79
permission-master/pom.xml , 8491
permission-master/src/main/java/com/imooc/permission/beans/CacheKeyConstants.java , 137
permission-master/src/main/java/com/imooc/permission/beans/LogType.java , 248
permission-master/src/main/java/com/imooc/permission/beans/Mail.java , 409
permission-master/src/main/java/com/imooc/permission/beans/PageQuery.java , 489
permission-master/src/main/java/com/imooc/permission/beans/PageResult.java , 337
permission-master/src/main/java/com/imooc/permission/common/ApplicationContextHelper.java , 992
permission-master/src/main/java/com/imooc/permission/common/HttpInterceptor.java , 1893
permission-master/src/main/java/com/imooc/permission/common/JsonData.java , 1178
permission-master/src/main/java/com/imooc/permission/common/RequestHolder.java , 836
permission-master/src/main/java/com/imooc/permission/common/SpringExceptionResolver.java , 1826
permission-master/src/main/java/com/imooc/permission/controller/AdminController.java , 397
permission-master/src/main/java/com/imooc/permission/controller/SysAclController.java , 2002
permission-master/src/main/java/com/imooc/permission/controller/SysAclModuleController.java , 1703
permission-master/src/main/java/com/imooc/permission/controller/SysDeptController.java , 1816
permission-master/src/main/java/com/imooc/permission/controller/SysLogController.java , 1196
permission-master/src/main/java/com/imooc/permission/controller/SysRoleController.java , 3823
permission-master/src/main/java/com/imooc/permission/controller/SysUserController.java , 2287
permission-master/src/main/java/com/imooc/permission/controller/TestController.java , 2048
permission-master/src/main/java/com/imooc/permission/controller/UserController.java , 2545
permission-master/src/main/java/com/imooc/permission/dao/SysAclMapper.java , 936
permission-master/src/main/java/com/imooc/permission/dao/SysAclModuleMapper.java , 882
permission-master/src/main/java/com/imooc/permission/dao/SysDeptMapper.java , 806
permission-master/src/main/java/com/imooc/permission/dao/SysLogMapper.java , 846
permission-master/src/main/java/com/imooc/permission/dao/SysRoleAclMapper.java , 751
permission-master/src/main/java/com/imooc/permission/dao/SysRoleMapper.java , 615
permission-master/src/main/java/com/imooc/permission/dao/SysRoleUserMapper.java , 960
permission-master/src/main/java/com/imooc/permission/dao/SysUserMapper.java , 961
permission-master/src/main/java/com/imooc/permission/dao/TestDao.java , 64
permission-master/src/main/java/com/imooc/permission/dto/AclDto.java , 539
permission-master/src/main/java/com/imooc/permission/dto/AclModuleLevelDto.java , 677
permission-master/src/main/java/com/imooc/permission/dto/DeptLevelDto.java , 564
permission-master/src/main/java/com/imooc/permission/dto/SearchLogDto.java , 410
permission-master/src/main/java/com/imooc/permission/exception/ParamException.java , 595
permission-master/src/main/java/com/imooc/permission/exception/PermissionException.java , 626
permission-master/src/main/java/com/imooc/permission/filter/AclControlFilter.java , 4041
permission-master/src/main/java/com/imooc/permission/filter/LoginFilter.java , 1337
permission-master/src/main/java/com/imooc/permission/model/SysAcl.java , 2417
permission-master/src/main/java/com/imooc/permission/model/SysAclModule.java , 2139
permission-master/src/main/java/com/imooc/permission/model/SysDept.java , 1961
permission-master/src/main/java/com/imooc/permission/model/SysLog.java , 1388
permission-master/src/main/java/com/imooc/permission/model/SysLogWithBLOBs.java , 517
permission-master/src/main/java/com/imooc/permission/model/SysRole.java , 1761
permission-master/src/main/java/com/imooc/permission/model/SysRoleAcl.java , 1351
permission-master/src/main/java/com/imooc/permission/model/SysRoleUser.java , 1359
permission-master/src/main/java/com/imooc/permission/model/SysUser.java , 2434
permission-master/src/main/java/com/imooc/permission/param/AclModuleParam.java , 1047
permission-master/src/main/java/com/imooc/permission/param/AclParam.java , 1406
permission-master/src/main/java/com/imooc/permission/param/DeptParam.java , 722
permission-master/src/main/java/com/imooc/permission/param/RoleParam.java , 1035
permission-master/src/main/java/com/imooc/permission/param/SearchLogParam.java , 372
permission-master/src/main/java/com/imooc/permission/param/TestVo.java , 608
permission-master/src/main/java/com/imooc/permission/param/UserParam.java , 1262
permission-master/src/main/java/com/imooc/permission/service/RedisPool.java , 746
permission-master/src/main/java/com/imooc/permission/service/SysAclModuleService.java , 5296
permission-master/src/main/java/com/imooc/permission/service/SysAclService.java , 3513
permission-master/src/main/java/com/imooc/permission/service/SysCacheService.java , 2091
permission-master/src/main/java/com/imooc/permission/service/SysCoreService.java , 4244
permission-master/src/main/java/com/imooc/permission/service/SysDeptService.java , 5589
permission-master/src/main/java/com/imooc/permission/service/SysLogService.java , 12181
permission-master/src/main/java/com/imooc/permission/service/SysRoleAclService.java , 2922
permission-master/src/main/java/com/imooc/permission/service/SysRoleService.java , 4363
permission-master/src/main/java/com/imooc/permission/service/SysRoleUserService.java , 3414
permission-master/src/main/java/com/imooc/permission/service/SysTreeService.java , 8865
permission-master/src/main/java/com/imooc/permission/service/SysUserService.java , 4249
permission-master/src/main/java/com/imooc/permission/util/BeanValidator.java , 2384
permission-master/src/main/java/com/imooc/permission/util/IpUtil.java , 3574
permission-master/src/main/java/com/imooc/permission/util/JsonMapper.java , 1841
permission-master/src/main/java/com/imooc/permission/util/LevelUtil.java , 513
permission-master/src/main/java/com/imooc/permission/util/MD5Util.java , 1168
permission-master/src/main/java/com/imooc/permission/util/MailUtil.java , 1266
permission-master/src/main/java/com/imooc/permission/util/PasswordUtil.java , 1410
permission-master/src/main/java/com/imooc/permission/util/StringUtil.java , 436
permission-master/src/main/resources/applicationContext.xml , 3099
permission-master/src/main/resources/init.sql , 21063
permission-master/src/main/resources/logback.xml , 1191
permission-master/src/main/resources/mapper/SysAclMapper.xml , 7444
permission-master/src/main/resources/mapper/SysAclModuleMapper.xml , 6486
permission-master/src/main/resources/mapper/SysDeptMapper.xml , 6106
permission-master/src/main/resources/mapper/SysLogMapper.xml , 7002
permission-master/src/main/resources/mapper/SysRoleAclMapper.xml , 4779
permission-master/src/main/resources/mapper/SysRoleMapper.xml , 5172
permission-master/src/main/resources/mapper/SysRoleUserMapper.xml , 4985
permission-master/src/main/resources/mapper/SysUserMapper.xml , 7410
permission-master/src/main/resources/mapper/TestMapper.xml , 211
permission-master/src/main/resources/mybatis-config.xml , 636
permission-master/src/main/resources/redis.properties , 61
permission-master/src/main/resources/redis.xml , 1224
permission-master/src/main/resources/settings.properties , 354
permission-master/src/main/webapp/WEB-INF/spring-servlet.xml , 2123
permission-master/src/main/webapp/WEB-INF/views/acl.jsp , 27314
permission-master/src/main/webapp/WEB-INF/views/admin.jsp , 8624
permission-master/src/main/webapp/WEB-INF/views/dept.jsp , 25474
permission-master/src/main/webapp/WEB-INF/views/exception.jsp , 2709
permission-master/src/main/webapp/WEB-INF/views/log.jsp , 15678
permission-master/src/main/webapp/WEB-INF/views/noAuth.jsp , 2804
permission-master/src/main/webapp/WEB-INF/views/role.jsp , 18995
permission-master/src/main/webapp/WEB-INF/web.xml , 3765
permission-master/src/main/webapp/assets/avatars/avatar.png , 3991
permission-master/src/main/webapp/assets/avatars/avatar1.png , 4474
permission-master/src/main/webapp/assets/avatars/avatar2.png , 752
permission-master/src/main/webapp/assets/avatars/avatar3.png , 3912
permission-master/src/main/webapp/assets/avatars/avatar4.png , 3802
permission-master/src/main/webapp/assets/avatars/avatar5.png , 4456
permission-master/src/main/webapp/assets/avatars/profile-pic.jpg , 8209
permission-master/src/main/webapp/assets/avatars/user.jpg , 1191
permission-master/src/main/webapp/assets/css/ace-rtl.min.css , 142034
permission-master/src/main/webapp/assets/css/ace-skins.min.css , 75918
permission-master/src/main/webapp/assets/css/ace.min.css , 360103
permission-master/src/main/webapp/assets/css/bootstrap-datetimepicker.css , 5101
permission-master/src/main/webapp/assets/css/bootstrap-duallistbox.min.css , 1445
permission-master/src/main/webapp/assets/css/bootstrap-editable.css , 21202
permission-master/src/main/webapp/assets/css/bootstrap-timepicker.css , 3453
permission-master/src/main/webapp/assets/css/bootstrap.min.css , 99493
permission-master/src/main/webapp/assets/css/chosen-sprite.png , 646
permission-master/src/main/webapp/assets/css/chosen-sprite@2x.png , 872
permission-master/src/main/webapp/assets/css/chosen.css , 10751
permission-master/src/main/webapp/assets/css/colorbox.css , 4392
permission-master/src/main/webapp/assets/css/colorpicker.css , 2400
permission-master/src/main/webapp/assets/css/datepicker.css , 33704
permission-master/src/main/webapp/assets/css/daterangepicker.css , 5204
permission-master/src/main/webapp/assets/css/dropzone.css , 11543
permission-master/src/main/webapp/assets/css/fullcalendar.css , 11147
permission-master/src/main/webapp/assets/css/google-fonts.css , 367
permission-master/src/main/webapp/assets/css/images/animated-overlay.gif , 151
permission-master/src/main/webapp/assets/css/images/border.png , 112
permission-master/src/main/webapp/assets/css/images/controls.png , 2893
permission-master/src/main/webapp/assets/css/images/loading.gif , 9427
permission-master/src/main/webapp/assets/css/images/loading_background.png , 157
permission-master/src/main/webapp/assets/css/images/meteorshower2.jpg , 68835
permission-master/src/main/webapp/assets/css/images/overlay.png , 182
permission-master/src/main/webapp/assets/css/images/pattern.jpg , 7080
permission-master/src/main/webapp/assets/css/img/alpha.png , 3271
permission-master/src/main/webapp/assets/css/img/hue.png , 2972
permission-master/src/main/webapp/assets/css/img/saturation.png , 8817
permission-master/src/main/webapp/assets/css/jquery-ui.custom.min.css , 2699
permission-master/src/main/webapp/assets/css/jquery-ui.min.css , 12117
permission-master/src/main/webapp/assets/css/jquery.gritter.css , 1954
permission-master/src/main/webapp/assets/css/prettify.css , 2156
permission-master/src/main/webapp/assets/css/select2-spinner.gif , 1849
permission-master/src/main/webapp/assets/css/select2.css , 18288
permission-master/src/main/webapp/assets/css/select2.png , 613
permission-master/src/main/webapp/assets/css/select2x2.png , 845
最多只能显示150条信息!
没有账号? 忘记密码?

社交账号快速登录