@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"); }
public long[] getRoleChildrenIds() { if (this.get("roleChildrenIds") == null) { List<Role> roles = getRoleChildren(); long[] roleIds = new long[roles.size()]; if (roles != null) { int i = 0; for (Role role : roles) { roleIds[i] = role.getLong("id"); i++; } } this.put("roleChildrenIds", roleIds); } return (long[]) this.get("roleChildrenIds"); }