فهرست منبع

增加conflict

roo00 6 سال پیش
والد
کامیت
d75ea5e731

+ 45 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/container/EntityManagerContainer.java

@@ -32,6 +32,7 @@ import com.x.base.core.entity.annotation.CheckPersist;
 import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.entity.annotation.CheckRemove;
 import com.x.base.core.entity.annotation.CheckRemoveType;
+import com.x.base.core.entity.annotation.RestrictFlag;
 import com.x.base.core.entity.tools.JpaObjectTools;
 import com.x.base.core.project.bean.WrapCopier;
 import com.x.base.core.project.exception.ExceptionWhen;
@@ -1236,6 +1237,27 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 		return list;
 	}
 
+//	public <T extends JpaObject> String conflict(Class<T> clz, T t) throws Exception {
+//		EntityManager em = this.get(clz);
+//		CriteriaBuilder cb = em.getCriteriaBuilder();
+//		for (Field field : this.entityManagerContainerFactory.getFlagFields(clz)) {
+//			Object value = t.get(field.getName());
+//			if ((null != value) && StringUtils.isNotEmpty(Objects.toString(value))) {
+//				CriteriaQuery<Long> cq = cb.createQuery(Long.class);
+//				Root<T> root = cq.from(clz);
+//				Predicate p = cb.disjunction();
+//				for (Field f : this.entityManagerContainerFactory.getFlagFields(clz)) {
+//					p = cb.or(p, cb.equal(root.get(f.getName()), value));
+//				}
+//				p = cb.and(p, cb.notEqual(root.get(JpaObject.id_FIELDNAME), t.getId()));
+//				if (em.createQuery(cq.select(cb.count(root)).where(p)).getSingleResult() > 0) {
+//					return field.getName() + ":" + Objects.toString(value);
+//				}
+//			}
+//		}
+//		return null;
+//	}
+
 	public <T extends JpaObject> String conflict(Class<T> clz, T t) throws Exception {
 		EntityManager em = this.get(clz);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
@@ -1254,6 +1276,29 @@ public class EntityManagerContainer extends EntityManagerContainerBasic {
 				}
 			}
 		}
+		for (Field field : this.entityManagerContainerFactory.getRestrictFlagFields(clz)) {
+			Object value = t.get(field.getName());
+			if ((null != value) && StringUtils.isNotEmpty(Objects.toString(value))) {
+				RestrictFlag restrictFlag = field.getAnnotation(RestrictFlag.class);
+				if ((null != restrictFlag) && restrictFlag.fields().length > 0) {
+					CriteriaQuery<Long> cq = cb.createQuery(Long.class);
+					Root<T> root = cq.from(clz);
+					Predicate p = cb.disjunction();
+					for (Field f : this.entityManagerContainerFactory.getFlagFields(clz)) {
+						Object v = t.get(f.getName());
+						if ((null != v) && StringUtils.isNotEmpty(Objects.toString(v))) {
+							p = cb.or(cb.equal(root.get(f.getName()), v));
+						}
+					}
+					p = cb.and(p, cb.equal(root.get(field.getName()), value));
+					p = cb.and(p, cb.notEqual(root.get(JpaObject.id_FIELDNAME), t.getId()));
+					if (em.createQuery(cq.select(cb.count(root)).where(p)).getSingleResult() > 0) {
+						return field.getName() + ":" + Objects.toString(value);
+					}
+				}
+			}
+		}
 		return null;
 	}
+
 }

+ 21 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/config/Collect.java

@@ -8,7 +8,6 @@ import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 
 import com.x.base.core.project.annotation.FieldDescribe;
-import com.x.base.core.project.gson.GsonPropertyObject;
 import com.x.base.core.project.gson.XGsonBuilder;
 import com.x.base.core.project.tools.DefaultCharset;
 
@@ -18,7 +17,7 @@ public class Collect extends ConfigObject {
 	private static String Default_footer = "www.o2oa.net";
 	private static String Default_name = "www.o2oa.net";
 	private static String Default_appUrl = "http://www.pgyer.com/ZhiHe_android";
-	private static String Default_server = "collect.o2server.io";
+	private static String Default_server = "collect.o2oa.net";
 	private static Integer Default_port = 20080;
 
 	public static Collect defaultInstance() {
@@ -55,6 +54,18 @@ public class Collect extends ConfigObject {
 	private Integer port;
 	@FieldDescribe("云平台连接是否启用ssl")
 	private Boolean sslEnable;
+	@FieldDescribe("推送消息secret")
+	private String secret;
+	@FieldDescribe("推送消息key")
+	private String key;
+
+	public String getSecret() {
+		return secret;
+	}
+
+	public String getKey() {
+		return key;
+	}
 
 	public Boolean getEnable() {
 		return BooleanUtils.isTrue(this.enable);
@@ -158,4 +169,12 @@ public class Collect extends ConfigObject {
 		FileUtils.write(file, XGsonBuilder.toJson(this), DefaultCharset.charset);
 	}
 
+	public void setSecret(String secret) {
+		this.secret = secret;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
 }

+ 1 - 0
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/Crypto.java

@@ -25,6 +25,7 @@ public class Crypto {
 	private static final String utf8 = "UTF-8";
 
 	private final static String DES = "DES";
+	
 	private final static String cipher_init = "DES";
 
 	private final static String RSA = "RSA";

+ 2 - 2
o2server/x_base_core_project/src/main/java/com/x/base/core/project/tools/StringTools.java

@@ -29,8 +29,8 @@ import org.apache.commons.lang3.reflect.FieldUtils;
 import org.slf4j.helpers.MessageFormatter;
 
 public class StringTools {
-	public static final Pattern MOBILE_REGEX = Pattern
-			.compile("(^(\\+)?0{0,2}852\\d{8}$)|(^(\\+)?0{0,2}853\\d{8}$)|(^1(3|4|5|6|7|8|9)\\d{9}$)");
+	public static final Pattern MOBILE_REGEX = Pattern.compile(
+			"(^(\\+)?0{0,2}852\\d{8}$)|(^(\\+)?0{0,2}853\\d{8}$)|(^(\\+)?0{0,2}886\\d{9}$)|(^1(3|4|5|7|8|9)\\d{9}$)");
 	/** 中文,英文,数字,-,. 【】() */
 	public static final Pattern SIMPLY_REGEX = Pattern
 			.compile("^[\u4e00-\u9fa5a-zA-Z0-9\\_\\(\\)\\-\\ \\.\\【\\】\\(\\)]*$");

+ 15 - 0
o2server/x_base_core_project/src/test/java/com/x/base/core/project/gson/TestClient.java

@@ -0,0 +1,15 @@
+package com.x.base.core.project.gson;
+
+import java.util.Date;
+
+import org.junit.Test;
+
+import com.x.base.core.project.tools.Crypto;
+
+public class TestClient {
+	@Test
+	public void test() throws Exception {
+		System.out.println(Crypto.encrypt("张学良#" + (new Date()).getTime(), "12345678"));
+	}
+
+}