#502 improve import/export

This commit is contained in:
Shinsuke Sugaya 2016-06-09 08:31:32 +09:00
parent 065e2a117b
commit 8e78378a13

View file

@ -22,6 +22,7 @@ import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@ -179,6 +180,7 @@ public class ElevateWordService {
}
public void importCsv(final Reader reader) {
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
@SuppressWarnings("resource")
final CsvReader csvReader = new CsvReader(reader, new CsvConfig());
try {
@ -191,22 +193,20 @@ public class ElevateWordService {
continue;
}
try {
final String role = getValue(list, 2);
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper(); // TODO
final String[] permissions =
stream(getValue(list, 2).split(",")).get(
stream -> stream.map(s -> permissionHelper.encode(s)).filter(StringUtil::isNotBlank).distinct()
.toArray(n -> new String[n])); // TODO
.toArray(n -> new String[n]));
final String label = getValue(list, 3);
ElevateWord elevateWord = elevateWordBhv.selectEntity(cb -> {
cb.query().setSuggestWord_Equal(suggestWord);
if (StringUtil.isNotBlank(role)) {
cb.query().setPermissions_Equal(role);
if (permissions.length > 0) {
cb.query().setPermissions_InScope(stream(permissions).get(stream -> stream.collect(Collectors.toList())));
}
if (StringUtil.isNotBlank(label)) {
cb.query().setTargetLabel_Equal(label);
}
}).orElse(null);//TODO
}).orElse(null);
final String reading = getValue(list, 1);
final String boost = getValue(list, 4);
final long now = ComponentUtil.getSystemHelper().getCurrentTimeAsLong();
@ -224,6 +224,7 @@ public class ElevateWordService {
elevateWordBhv.delete(elevateWord);
} else {
elevateWord.setReading(reading);
elevateWord.setPermissions(permissions);
elevateWord.setBoost(StringUtil.isBlank(boost) ? 1.0f : Float.parseFloat(boost));
elevateWord.setUpdatedBy("system");
elevateWord.setUpdatedTime(now);
@ -240,6 +241,7 @@ public class ElevateWordService {
}
public void exportCsv(final Writer writer) {
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
final CsvConfig cfg = new CsvConfig(',', '"', '"');
cfg.setEscapeDisabled(false);
cfg.setQuoteDisabled(false);
@ -249,7 +251,7 @@ public class ElevateWordService {
final List<String> list = new ArrayList<>();
list.add("SuggestWord");
list.add("Reading");
list.add("Role");
list.add("Permissions");
list.add("Label");
list.add("Boost");
csvWriter.writeValues(list);
@ -260,17 +262,13 @@ public class ElevateWordService {
@Override
public void handle(final ElevateWord entity) {
final List<String> list = new ArrayList<>();
final PermissionHelper permissionHelper = new PermissionHelper();
StringBuilder permissions = new StringBuilder();
for (String permission : entity.getPermissions()) {
if (permissions.length() != 0) {
permissions.append(",");
}
permissions.append(permissionHelper.decode(permission));
}
final String permissions =
stream(entity.getPermissions()).get(
stream -> stream.map(s -> permissionHelper.decode(s)).filter(StringUtil::isNotBlank).distinct()
.collect(Collectors.joining(",")));
addToList(list, entity.getSuggestWord());
addToList(list, entity.getReading());
addToList(list, permissions.toString());
addToList(list, permissions);
addToList(list, entity.getTargetLabel());
addToList(list, entity.getBoost());
try {