周浩 %!s(int64=9) %!d(string=hai) anos
pai
achega
58d1a43765

+ 1 - 1
hsweb-web-bean/src/main/java/org/hsweb/web/bean/common/QueryParam.java

@@ -31,7 +31,7 @@ public class QueryParam extends org.hsweb.ezorm.param.QueryParam<QueryParam> imp
 
     protected void checkTerm(List<Term> terms) {
         terms.forEach(term -> {
-            if (term.getTermType() == TermType.func) {
+            if (term.getTermType().equals(TermType.func)) {
                 term.setTermType(TermType.eq);
             }
             checkTerm(term.getTerms());

+ 0 - 16
hsweb-web-bean/src/main/java/org/hsweb/web/bean/common/SqlParam.java

@@ -28,22 +28,6 @@ public class SqlParam<R extends SqlParam> extends org.hsweb.ezorm.param.SqlParam
         return JSON.toJSONString(this);
     }
 
-    protected void initTermByMap(Map<String, Object> param) {
-        param.forEach((k, v) -> {
-            String field = String.valueOf(param.get("field"));
-            Object value = param.get("value");
-            if (StringUtils.isNullOrEmpty(field) || StringUtils.isNullOrEmpty(value)) return;
-            String type = String.valueOf(param.get("type"));
-            String queryType = String.valueOf(param.get("queryType"));
-            Term nest = new Term();
-            nest.setField(field);
-            nest.setValue(value);
-            nest.setType(Term.Type.valueOf(type));
-            nest.setTermType(TermType.valueOf(queryType));
-            terms.add(nest);
-        });
-    }
-
     public static SqlParam build() {
         return new SqlParam<>();
     }

+ 1 - 2
hsweb-web-controller/src/main/java/org/hsweb/web/controller/MessageConverterConfiguration.java

@@ -14,12 +14,11 @@ public class MessageConverterConfiguration {
 
     @Bean
     public HttpMessageConverter<Object> converter() {
-        FastJsonHttpMessageConverter converter =  new FastJsonHttpMessageConverter();
+        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
         converter.setFeatures(SerializerFeature.WriteNullListAsEmpty);
         converter.setFeatures(SerializerFeature.WriteNullNumberAsZero);
         converter.setFeatures(SerializerFeature.WriteNullBooleanAsFalse);
         converter.setFeatures(SerializerFeature.WriteDateUseDateFormat);
-
         return converter;
     }
 }

+ 1 - 1
hsweb-web-controller/src/main/java/org/hsweb/web/controller/draft/DraftController.java

@@ -38,7 +38,7 @@ public class DraftController {
         draft.setId(Draft.createUID());
         draft.setCreateDate(new Date());
         draft.setCreatorId(user.getId());
-        return ResponseMessage.ok(draftService.createDraft(key + user.getId(), draft));
+        return ResponseMessage.ok(draftService.createDraft(key, draft));
     }
 
     @RequestMapping(value = "/{key}", method = RequestMethod.GET)

+ 14 - 107
hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/DefaultSqlParamBuilder.java

@@ -1,10 +1,11 @@
 package org.hsweb.web.mybatis.builder;
 
+import org.hsweb.ezorm.meta.FieldMetaData;
 import org.hsweb.ezorm.param.Term;
-import org.hsweb.ezorm.param.TermType;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.ibatis.mapping.ResultMap;
 import org.apache.ibatis.mapping.ResultMapping;
+import org.hsweb.ezorm.render.Dialect;
 import org.hsweb.web.bean.common.*;
 import org.hsweb.web.mybatis.utils.ResultMapsUtils;
 import org.hsweb.web.mybatis.utils.SqlAppender;
@@ -28,7 +29,9 @@ public class DefaultSqlParamBuilder {
         return "\"";
     }
 
-    protected Map<TermType, KeyWordMapper> mapperMap = new HashMap<>();
+    public Dialect getDialect() {
+        return Dialect.ORACLE;
+    }
 
     protected static final Map<Class, String> simpleName = new HashMap<>();
     private static DefaultSqlParamBuilder instance = new DefaultSqlParamBuilder();
@@ -52,107 +55,6 @@ public class DefaultSqlParamBuilder {
         simpleName.put(char.class, "char");
         simpleName.put(byte.class, "byte");
 
-        mapperMap.put(TermType.eq, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " = ", "#{", paramKey, "}").toString()
-        );
-        mapperMap.put(TermType.not, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " != ", "#{", paramKey, "}").toString()
-        );
-        mapperMap.put(TermType.like, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " like ", "#{", paramKey, "}").toString()
-        );
-        mapperMap.put(TermType.notlike, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " not like ", "#{", paramKey, "}").toString()
-        );
-        mapperMap.put(TermType.notnull, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " is not null").toString()
-        );
-        mapperMap.put(TermType.isnull, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " is null").toString()
-        );
-        mapperMap.put(TermType.empty, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " =''").toString()
-        );
-        mapperMap.put(TermType.notempty, (paramKey, tableName, field, jdbcType) ->
-                        new SqlAppender().add(tableName, ".", field.getField(), " !=''").toString()
-        );
-        mapperMap.put(TermType.btw, (paramKey, tableName, field, jdbcType) ->
-        {
-            SqlAppender sqlAppender = new SqlAppender();
-            List<Object> objects = param2list(field.getValue());
-            if (objects.size() == 1)
-                objects.add(objects.get(0));
-            field.setValue(objects);
-            sqlAppender.add(tableName, ".", field.getField(), " ").addSpc("between")
-                    .add(" #{", paramKey, "[0]}")
-                    .add(" and ", "#{", paramKey, "[1]}");
-            return sqlAppender.toString();
-        });
-
-        mapperMap.put(TermType.notbtw, (paramKey, tableName, field, jdbcType) ->
-        {
-            SqlAppender sqlAppender = new SqlAppender();
-            List<Object> objects = param2list(field.getValue());
-            if (objects.size() == 1)
-                objects.add(objects.get(0));
-            field.setValue(objects);
-            sqlAppender.add(tableName, ".", field.getField(), " ").addSpc("not between")
-                    .add(" #{", paramKey, "[0]}")
-                    .add(" and ", "#{", paramKey, "[1]}");
-            return sqlAppender.toString();
-        });
-
-        mapperMap.put(TermType.gt, (paramKey, tableName, field, jdbcType) -> {
-            SqlAppender sqlAppender = new SqlAppender();
-            if (Arrays.<JDBCType>asList(JDBCType.DATE, JDBCType.TIME, JDBCType.TIMESTAMP).contains(jdbcType)) {
-                if (!(field.getValue() instanceof Date)) {
-                    String strValue = String.valueOf(field.getValue());
-                    Date date = DateTimeUtils.formatUnknownString2Date(strValue);
-                    if (date != null) field.setValue(date);
-                }
-            }
-            sqlAppender.add(tableName, ".", field.getField(), " >= #{", paramKey, "}");
-            return sqlAppender.toString();
-        });
-
-        mapperMap.put(TermType.lt, (paramKey, tableName, field, jdbcType) -> {
-            SqlAppender sqlAppender = new SqlAppender();
-            if (Arrays.<JDBCType>asList(JDBCType.DATE, JDBCType.TIME, JDBCType.TIMESTAMP).contains(jdbcType)) {
-                if (!(field.getValue() instanceof Date)) {
-                    String strValue = String.valueOf(field.getValue());
-                    Date date = DateTimeUtils.formatUnknownString2Date(strValue);
-                    if (date != null) field.setValue(date);
-                }
-            }
-            sqlAppender.add(tableName, ".", field.getField(), " <= #{", paramKey, "}");
-            return sqlAppender.toString();
-        });
-
-        mapperMap.put(TermType.in, (paramKey, tableName, field, jdbcType) -> {
-            List<Object> values = param2list(field.getValue());
-            field.setValue(values);
-            SqlAppender appender = new SqlAppender();
-            appender.add(tableName, ".").addSpc(field.getField(), "in(");
-            for (int i = 0; i < values.size(); i++) {
-                appender.add("#{", paramKey, "[", i, "]}", ",");
-            }
-            appender.removeLast();
-            appender.add(")");
-            return appender.toString();
-        });
-
-        mapperMap.put(TermType.notin, (paramKey, tableName, field, jdbcType) -> {
-            List<Object> values = param2list(field.getValue());
-            field.setValue(values);
-            SqlAppender appender = new SqlAppender();
-            appender.add(tableName, ".").addSpc(field.getField(), "not in(");
-            for (int i = 0; i < values.size(); i++) {
-                appender.add("#{", paramKey, "[", i, "]}", ",");
-            }
-            appender.removeLast();
-            appender.add(")");
-            return appender.toString();
-        });
 
     }
 
@@ -160,8 +62,13 @@ public class DefaultSqlParamBuilder {
         return instance;
     }
 
-    public KeyWordMapper getKeyWordMapper(TermType type) {
-        return mapperMap.get(type);
+    public KeyWordMapper getKeyWordMapper(String type) {
+        return (paramKey, tableName, term, jdbcType) -> {
+            FieldMetaData field = new FieldMetaData();
+            field.setName(term.getField());
+            field.setJdbcType(jdbcType);
+            return getDialect().wrapperWhere(paramKey, term, field, tableName);
+        };
     }
 
     protected Map<String, Object> createConfig(String resultMapId) {
@@ -414,12 +321,12 @@ public class DefaultSqlParamBuilder {
                 }
                 appender.add("(");
                 if (!nullTerm)
-                    appender.add(mapperMap.get(term.getTermType()).fieldMapper(prefix + ".value", tableName, term, jdbcType));
+                    appender.add(getKeyWordMapper(term.getTermType()).fieldMapper(prefix, tableName, term, jdbcType));
                 appender.addAll(nest);
                 appender.add(")");
             } else {
                 if (!nullTerm)
-                    appender.add(mapperMap.get(term.getTermType()).fieldMapper("" + prefix + ".value", tableName, term, jdbcType));
+                    appender.add(getKeyWordMapper(term.getTermType()).fieldMapper(prefix, tableName, term, jdbcType));
             }
         }
     }

+ 6 - 0
hsweb-web-dao-impl-mybatis/src/main/java/org/hsweb/web/mybatis/builder/MysqlParamBuilder.java

@@ -1,5 +1,7 @@
 package org.hsweb.web.mybatis.builder;
 
+import org.hsweb.ezorm.render.Dialect;
+
 /**
  * Created by zhouhao on 16-5-9.
  */
@@ -9,6 +11,10 @@ public class MysqlParamBuilder extends DefaultSqlParamBuilder {
     public MysqlParamBuilder() {
     }
 
+    @Override
+    public Dialect getDialect() {
+        return Dialect.MYSQL;
+    }
 
     public static MysqlParamBuilder instance() {
         return instance;

+ 4 - 3
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/draft/CacheDraftService.java

@@ -10,7 +10,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
 import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -37,7 +37,7 @@ public class CacheDraftService implements DraftService {
         Cache.ValueWrapper wrapper = cache.get(key);
         Map<String, Draft> drafts;
         if (wrapper == null) {
-            drafts = new HashMap<>();
+            drafts = new LinkedHashMap<>();
         } else {
             drafts = ((Map) wrapper.get());
         }
@@ -51,7 +51,7 @@ public class CacheDraftService implements DraftService {
         Cache cache = cacheManager.getCache(cacheKey + userId);
         Cache.ValueWrapper wrapper = cache.get(key);
         if (wrapper != null) {
-            return (List) ((Map) wrapper.get()).values();
+            return new ArrayList<>(((Map) wrapper.get()).values());
         }
         return new ArrayList<>();
     }
@@ -75,4 +75,5 @@ public class CacheDraftService implements DraftService {
         cache.evict(key);
         return true;
     }
+
 }

+ 2 - 2
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/form/DynamicFormServiceImpl.java

@@ -294,8 +294,8 @@ public class DynamicFormServiceImpl implements DynamicFormService, ExpressionSco
                 if (!excludes.isEmpty()) {
                     if (excludes.contains(field)) return;
                 }
-                if (sample.get(field + "_cn") != null)
-                    field = field + "_cn";
+                if (sample.get(field + "_text") != null)
+                    field = field + "_text";
                 headers.add(new Header(title, field));
             }
         });