@CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME) @Before({AdminValidator.PermDeleteValidator.class, Tx.class}) public void permDrop() { Integer id = getParaToInt("permission.id"); Permission permission = Permission.dao.findById(id); boolean result = false; if (!ValidateUtils.me().isNullOrEmpty(permission)) { Permission.dao.updateBy( "`permission`.left_code=`permission`.left_code-2", "`permission`.left_code>=" + permission.get("left_code")); Permission.dao.updateBy( "`permission`.right_code=`permission`.right_code-2", "`permission`.right_code>=" + permission.get("right_code")); result = permission.delete(); if (result) { RolePermission.dao.dropBy("permission_id=" + permission.get("id")); } } if (result) { setAttr("state", "success"); } else { setAttr("state", "failure"); } dynaRender("/view/admin/role.ftl"); }