|
@@ -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) {
|
|
|
+ if (isDelete) {
|
|
|
+ suggestBadWord.setDeletedBy("system");
|
|
|
+ suggestBadWord.setDeletedTime(new Timestamp(System
|
|
|
+ .currentTimeMillis()));
|
|
|
+ suggestBadWordBhv.update(suggestBadWord);
|
|
|
+ } else 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.setSuggestWord(badWord);
|
|
|
suggestBadWord.setCreatedBy("system");
|
|
|
suggestBadWord.setCreatedTime(new Timestamp(System
|
|
|
.currentTimeMillis()));
|
|
|
suggestBadWordBhv.insert(suggestBadWord);
|
|
|
- } else if (list.get(1).equals("\"\"")
|
|
|
- && list.get(2).equals("\"\"")) {
|
|
|
- suggestBadWord.setDeletedBy("system");
|
|
|
- suggestBadWord.setDeletedTime(new Timestamp(System
|
|
|
- .currentTimeMillis()));
|
|
|
- suggestBadWordBhv.update(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;
|
|
|
}
|
|
|
}
|