This commit is contained in:
Shinsuke Sugaya 2014-10-30 21:48:36 +09:00
parent 6df23b3c73
commit c9014bf859
2 changed files with 78 additions and 38 deletions

View file

@ -41,6 +41,8 @@ import org.seasar.dbflute.cbean.EntityRowHandler;
public class SuggestBadWordService extends BsSuggestBadWordService implements
Serializable {
private static final String DELETE_PREFIX = "--";
private static final long serialVersionUID = 1L;
private static final Log log = LogFactory
@ -90,29 +92,34 @@ public class SuggestBadWordService extends BsSuggestBadWordService implements
List<String> list;
csvReader.readValues(); // ignore header
while ((list = csvReader.readValues()) != null) {
String badWord = getValue(list, 0);
if (StringUtil.isBlank(badWord)) {
// skip
continue;
}
try {
boolean isDelete = false;
if (badWord.startsWith(DELETE_PREFIX)) {
isDelete = true;
badWord = badWord.substring(2);
}
final SuggestBadWordCB cb = new SuggestBadWordCB();
cb.query().setSuggestWord_Equal(strip(list.get(0)));
cb.query().setSuggestWord_Equal(badWord);
SuggestBadWord suggestBadWord = suggestBadWordBhv
.selectEntity(cb);
if (suggestBadWord == null) {
suggestBadWord = new SuggestBadWord();
suggestBadWord.setSuggestWord(strip(list.get(0)));
suggestBadWord.setTargetRole(strip(list.get(1)));
suggestBadWord.setTargetLabel(strip(list.get(2)));
suggestBadWord.setCreatedBy("system");
suggestBadWord.setCreatedTime(new Timestamp(System
.currentTimeMillis()));
suggestBadWordBhv.insert(suggestBadWord);
} else if (list.get(1).equals("\"\"")
&& list.get(2).equals("\"\"")) {
if (isDelete) {
suggestBadWord.setDeletedBy("system");
suggestBadWord.setDeletedTime(new Timestamp(System
.currentTimeMillis()));
suggestBadWordBhv.update(suggestBadWord);
} else if (suggestBadWord == null) {
suggestBadWord = new SuggestBadWord();
suggestBadWord.setSuggestWord(badWord);
suggestBadWord.setCreatedBy("system");
suggestBadWord.setCreatedTime(new Timestamp(System
.currentTimeMillis()));
suggestBadWordBhv.insert(suggestBadWord);
} else {
suggestBadWord.setTargetRole(strip(list.get(1)));
suggestBadWord.setTargetLabel(strip(list.get(2)));
suggestBadWord.setUpdatedBy("system");
suggestBadWord.setUpdatedTime(new Timestamp(System
.currentTimeMillis()));
@ -135,9 +142,7 @@ public class SuggestBadWordService extends BsSuggestBadWordService implements
final CsvWriter csvWriter = new CsvWriter(writer, cfg);
try {
final List<String> list = new ArrayList<>();
list.add("SuggestWord");
list.add("Role");
list.add("Label");
list.add("BadWord");
csvWriter.writeValues(list);
final SuggestBadWordCB cb = new SuggestBadWordCB();
@ -148,8 +153,6 @@ public class SuggestBadWordService extends BsSuggestBadWordService implements
public void handle(final SuggestBadWord entity) {
final List<String> list = new ArrayList<String>();
addToList(list, entity.getSuggestWord());
addToList(list, entity.getTargetRole());
addToList(list, entity.getTargetLabel());
try {
csvWriter.writeValues(list);
} catch (final IOException e) {
@ -174,7 +177,18 @@ public class SuggestBadWordService extends BsSuggestBadWordService implements
}
}
private static String strip(final String item) {
return item.substring(1, item.length() - 1);
private static String getValue(final List<String> list, final int index) {
if (index < list.size()) {
return StringUtil.EMPTY;
}
String item = list.get(index).trim();
if (StringUtil.isBlank(item)) {
return StringUtil.EMPTY;
}
if (item.length() > 1 && item.charAt(0) == '"'
&& item.charAt(item.length() - 1) == '"') {
item = item.substring(1, item.length() - 2);
}
return item;
}
}

View file

@ -93,36 +93,50 @@ public class SuggestElevateWordService extends BsSuggestElevateWordService
List<String> list;
csvReader.readValues(); // ignore header
while ((list = csvReader.readValues()) != null) {
final String suggestWord = getValue(list, 0);
if (StringUtil.isBlank(suggestWord)) {
// skip
continue;
}
try {
final SuggestElevateWordCB cb = new SuggestElevateWordCB();
cb.query().setSuggestWord_Equal(strip(list.get(0)));
final String role = getValue(list, 2);
final String label = getValue(list, 3);
cb.query().setSuggestWord_Equal(suggestWord);
if (StringUtil.isNotBlank(role)) {
cb.query().setTargetRole_Equal(role);
}
if (StringUtil.isNotBlank(label)) {
cb.query().setTargetLabel_Equal(label);
}
SuggestElevateWord suggestElevateWord = suggestElevateWordBhv
.selectEntity(cb);
final String reading = getValue(list, 1);
final String boost = getValue(list, 4);
if (suggestElevateWord == null) {
suggestElevateWord = new SuggestElevateWord();
suggestElevateWord.setSuggestWord(strip(list.get(0)));
suggestElevateWord.setReading(strip(list.get(1)));
suggestElevateWord.setTargetRole(strip(list.get(2)));
suggestElevateWord.setTargetLabel(strip(list.get(3)));
suggestElevateWord.setBoost(new BigDecimal(strip(list
.get(4))));
suggestElevateWord.setSuggestWord(suggestWord);
suggestElevateWord.setReading(reading);
suggestElevateWord.setTargetRole(role);
suggestElevateWord.setTargetLabel(label);
suggestElevateWord
.setBoost(StringUtil.isBlank(boost) ? BigDecimal.ONE
: new BigDecimal(boost));
suggestElevateWord.setCreatedBy("system");
suggestElevateWord.setCreatedTime(new Timestamp(System
.currentTimeMillis()));
suggestElevateWordBhv.insert(suggestElevateWord);
} else if (list.get(1).equals("\"\"")
&& list.get(2).equals("\"\"")
&& list.get(3).equals("\"\"")) {
} else if (StringUtil.isBlank(reading)
&& StringUtil.isBlank(boost)) {
suggestElevateWord.setDeletedBy("system");
suggestElevateWord.setDeletedTime(new Timestamp(System
.currentTimeMillis()));
suggestElevateWordBhv.update(suggestElevateWord);
} else {
suggestElevateWord.setReading(strip(list.get(1)));
suggestElevateWord.setTargetRole(strip(list.get(2)));
suggestElevateWord.setTargetLabel(strip(list.get(3)));
suggestElevateWord.setBoost(new BigDecimal(strip(list
.get(4))));
suggestElevateWord.setReading(reading);
suggestElevateWord
.setBoost(StringUtil.isBlank(boost) ? BigDecimal.ONE
: new BigDecimal(boost));
suggestElevateWord.setUpdatedBy("system");
suggestElevateWord.setUpdatedTime(new Timestamp(System
.currentTimeMillis()));
@ -189,7 +203,19 @@ public class SuggestElevateWordService extends BsSuggestElevateWordService
}
}
private static String strip(final String item) {
return item.substring(1, item.length() - 1);
static String getValue(final List<String> list, final int index) {
if (index < list.size()) {
return StringUtil.EMPTY;
}
String item = list.get(index).trim();
if (StringUtil.isBlank(item)) {
return StringUtil.EMPTY;
}
if (item.length() > 1 && item.charAt(0) == '"'
&& item.charAt(item.length() - 1) == '"') {
item = item.substring(1, item.length() - 2);
}
return item;
}
}