|
@@ -1,12 +1,12 @@
|
|
package com.chelvc.framework.database.mapper;
|
|
package com.chelvc.framework.database.mapper;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
+import java.util.Objects;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
|
|
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
|
|
import com.baomidou.mybatisplus.core.metadata.TableInfo;
|
|
import com.baomidou.mybatisplus.core.metadata.TableInfo;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
|
-import com.chelvc.framework.common.util.StringUtils;
|
|
|
|
import com.chelvc.framework.database.annotation.CreateUpdate;
|
|
import com.chelvc.framework.database.annotation.CreateUpdate;
|
|
import lombok.NonNull;
|
|
import lombok.NonNull;
|
|
|
|
|
|
@@ -31,19 +31,20 @@ public class InsertUpdateMethod extends AbstractInsertMethod {
|
|
if (annotation != null && !annotation.enabled()) {
|
|
if (annotation != null && !annotation.enabled()) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- StringBuilder buffer = new StringBuilder().append(field.getColumn()).append(" = ");
|
|
|
|
|
|
+ String column = field.getColumn();
|
|
|
|
+ StringBuilder buffer = new StringBuilder().append(column).append(" = ").append(column);
|
|
CreateUpdate.Mode mode = annotation == null ? CreateUpdate.Mode.REPLACE : annotation.mode();
|
|
CreateUpdate.Mode mode = annotation == null ? CreateUpdate.Mode.REPLACE : annotation.mode();
|
|
- if (mode == CreateUpdate.Mode.REPLACE) {
|
|
|
|
- buffer.append("VALUES(").append(field.getColumn()).append(")");
|
|
|
|
- } else if (mode == CreateUpdate.Mode.INCREMENT) {
|
|
|
|
- buffer.append(field.getColumn()).append(" + 1");
|
|
|
|
- } else if (mode == CreateUpdate.Mode.DECREMENT) {
|
|
|
|
- buffer.append(field.getColumn()).append(" - 1");
|
|
|
|
- } else {
|
|
|
|
- throw new IllegalArgumentException("Not support update mode: " + mode);
|
|
|
|
|
|
+ if (mode == CreateUpdate.Mode.ADD) {
|
|
|
|
+ buffer.append(" + ");
|
|
|
|
+ } else if (mode == CreateUpdate.Mode.SUBTRACT) {
|
|
|
|
+ buffer.append(" - ");
|
|
|
|
+ } else if (mode == CreateUpdate.Mode.MULTIPLY) {
|
|
|
|
+ buffer.append(" * ");
|
|
|
|
+ } else if (mode == CreateUpdate.Mode.DIVIDE) {
|
|
|
|
+ buffer.append(" / ");
|
|
}
|
|
}
|
|
- return buffer.toString();
|
|
|
|
- }).filter(StringUtils::notEmpty).collect(Collectors.joining(StringPool.COMMA));
|
|
|
|
|
|
+ return buffer.append("VALUES(").append(column).append(")");
|
|
|
|
+ }).filter(Objects::nonNull).collect(Collectors.joining(StringPool.COMMA));
|
|
return String.format(
|
|
return String.format(
|
|
"<script>\nINSERT IGNORE INTO %s (%s) VALUES (%s)\n ON DUPLICATE KEY UPDATE %s\n</script>",
|
|
"<script>\nINSERT IGNORE INTO %s (%s) VALUES (%s)\n ON DUPLICATE KEY UPDATE %s\n</script>",
|
|
table.getTableName(), columns, properties, updates
|
|
table.getTableName(), columns, properties, updates
|