private void changeModel(List<Trole> l, List<Role> nl) { if (l != null && l.size() > 0) { for (Trole t : l) { Role u = new Role(); BeanUtils.copyProperties(t, u); Set<TroleTresource> s = t.getTroleTresources(); if (s != null && !s.isEmpty()) { String resourceIds = ""; String resourceNames = ""; for (TroleTresource rr : s) { Tresource r = rr.getTresource(); if (resourceIds.length() > 0) { resourceIds += ","; resourceNames += ","; } resourceIds += r.getId(); resourceNames += r.getText(); } u.setResourceIds(resourceIds); u.setResourceNames(resourceNames); } nl.add(u); } } }
@Override public Role edit(Role role) { Trole t = roleDao.get(Trole.class, role.getId()); if (t != null) { Map<String, Object> params = new HashMap<String, Object>(); params.put("trole", t); roleResourceDao.executeHql("delete TroleTresource t where t.trole=:trole", params); BeanUtils.copyProperties(role, t); if (role.getResourceIds() != null) { String resourceNames = ""; for (String id : role.getResourceIds().split(",")) { Tresource r = resourceDao.get(Tresource.class, id); if (r != null) { TroleTresource rr = new TroleTresource(); rr.setId(UUID.randomUUID().toString()); rr.setTresource(r); rr.setTrole(t); roleResourceDao.save(rr); if (resourceNames.length() > 0) { resourceNames += ","; } resourceNames += r.getText(); } } role.setResourceNames(resourceNames); } } return role; }
@Override public Role save(Role role) { Trole t = new Trole(); BeanUtils.copyProperties(role, t); t.setId(UUID.randomUUID().toString()); roleDao.save(t); if (role.getResourceIds() != null) { String resourceNames = ""; for (String id : role.getResourceIds().split(",")) { Tresource r = resourceDao.get(Tresource.class, id); if (r != null) { TroleTresource rr = new TroleTresource(); rr.setId(UUID.randomUUID().toString()); rr.setTresource(r); rr.setTrole(t); roleResourceDao.save(rr); if (resourceNames.length() > 0) { resourceNames += ","; } resourceNames += r.getText(); } } role.setResourceNames(resourceNames); } role.setId(t.getId()); return role; }
@Override public DataGrid datagrid(Role role) { DataGrid dg = new DataGrid(); String hql = "from Trole t "; Map<String, Object> params = new HashMap<String, Object>(); hql = addWhere(role, hql, params); String totalHql = "select count(*) " + hql; hql = addOrder(role, hql); List<Trole> l = roleDao.find(hql, params, role.getPage(), role.getRows()); List<Role> nl = new ArrayList<Role>(); changeModel(l, nl); dg.setTotal(roleDao.count(totalHql, params)); dg.setRows(nl); return dg; }
private String addOrder(Role role, String hql) { if (role.getSort() != null) { hql += " order by " + role.getSort() + " " + role.getOrder(); } return hql; }