@CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME) @Before({AdminValidator.RoleSaveValidator.class, Tx.class}) public void roleSave() { Role role = getModel(Role.class); Role parent = null; if (role.getParentId() == 0) { parent = Role.dao.findFirstBy("`role`.pid=0 ORDER BY `role`.right_code DESC"); } else parent = Role.dao.findById(role.getParentId()); boolean result = false; if (!ValidateUtils.me().isNullOrEmpty(parent)) { Role.dao.updateBy( "`role`.left_code=`role`.left_code+2", "`role`.left_code>=" + parent.get("right_code")); Role.dao.updateBy( "`role`.right_code=`role`.right_code+2", "`role`.right_code>=" + parent.get("right_code")); role.set("left_code", parent.getLong("right_code")); role.set("right_code", parent.getLong("right_code") + 1); role.set("created_at", new Date()); if (ValidateUtils.me().isNullOrEmpty(role.get("id"))) { role.remove("id"); } result = role.save(); } if (result) { setAttr("state", "success"); } else { setAttr("state", "failure"); } dynaRender("/view/admin/role.ftl"); }
@CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME) @Before({AdminValidator.RoleUpdateValidator.class, Tx.class}) public void roleUpdate() { Role role = getModel(Role.class); if (ValidateUtils.me().isNullOrEmpty(role.get("pid"))) { role.remove("pid"); } role.set("updated_at", new Date()); if (role.update()) { setAttr("state", "success"); } else { setAttr("state", "failure"); } dynaRender("/view/admin/role.ftl"); }