Browse Source

Merge branch 'wrdp' into 'develop'

Wrdp

See merge request o2oa/o2oa!2722
o2null 5 years ago
parent
commit
f20f08fac4

+ 10 - 0
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/snap/ActionRestore.java

@@ -34,6 +34,7 @@ import com.x.processplatform.core.entity.content.Work;
 import com.x.processplatform.core.entity.content.WorkCompleted;
 import com.x.processplatform.core.entity.content.WorkCompleted;
 import com.x.processplatform.core.entity.content.WorkLog;
 import com.x.processplatform.core.entity.content.WorkLog;
 import com.x.processplatform.service.processing.Business;
 import com.x.processplatform.service.processing.Business;
+import com.x.processplatform.service.processing.MessageFactory;
 import com.x.processplatform.service.processing.ThisApplication;
 import com.x.processplatform.service.processing.ThisApplication;
 import com.x.processplatform.service.processing.WorkDataHelper;
 import com.x.processplatform.service.processing.WorkDataHelper;
 import com.x.query.core.entity.Item;
 import com.x.query.core.entity.Item;
@@ -142,18 +143,23 @@ class ActionRestore extends BaseAction {
 			emc.beginTransaction(Attachment.class);
 			emc.beginTransaction(Attachment.class);
 			for (Task o : snap.getProperties().getTaskList()) {
 			for (Task o : snap.getProperties().getTaskList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.task_create(o);
 			}
 			}
 			for (TaskCompleted o : snap.getProperties().getTaskCompletedList()) {
 			for (TaskCompleted o : snap.getProperties().getTaskCompletedList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.taskCompleted_create(o);
 			}
 			}
 			for (Read o : snap.getProperties().getReadList()) {
 			for (Read o : snap.getProperties().getReadList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.read_create(o);
 			}
 			}
 			for (ReadCompleted o : snap.getProperties().getReadCompletedList()) {
 			for (ReadCompleted o : snap.getProperties().getReadCompletedList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.readCompleted_create(o);
 			}
 			}
 			for (Review o : snap.getProperties().getReviewList()) {
 			for (Review o : snap.getProperties().getReviewList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.review_create(o);
 			}
 			}
 			for (WorkLog o : snap.getProperties().getWorkLogList()) {
 			for (WorkLog o : snap.getProperties().getWorkLogList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
@@ -191,15 +197,19 @@ class ActionRestore extends BaseAction {
 			emc.beginTransaction(Attachment.class);
 			emc.beginTransaction(Attachment.class);
 			for (TaskCompleted o : snap.getProperties().getTaskCompletedList()) {
 			for (TaskCompleted o : snap.getProperties().getTaskCompletedList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.taskCompleted_create(o);
 			}
 			}
 			for (Read o : snap.getProperties().getReadList()) {
 			for (Read o : snap.getProperties().getReadList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.read_create(o);
 			}
 			}
 			for (ReadCompleted o : snap.getProperties().getReadCompletedList()) {
 			for (ReadCompleted o : snap.getProperties().getReadCompletedList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.readCompleted_create(o);
 			}
 			}
 			for (Review o : snap.getProperties().getReviewList()) {
 			for (Review o : snap.getProperties().getReviewList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);
+				MessageFactory.review_create(o);
 			}
 			}
 			for (WorkLog o : snap.getProperties().getWorkLogList()) {
 			for (WorkLog o : snap.getProperties().getWorkLogList()) {
 				emc.persist(o, CheckPersistType.all);
 				emc.persist(o, CheckPersistType.all);

+ 16 - 7
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/snap/BaseAction.java

@@ -32,6 +32,7 @@ import com.x.processplatform.core.entity.content.Work;
 import com.x.processplatform.core.entity.content.WorkCompleted;
 import com.x.processplatform.core.entity.content.WorkCompleted;
 import com.x.processplatform.core.entity.content.WorkLog;
 import com.x.processplatform.core.entity.content.WorkLog;
 import com.x.processplatform.service.processing.Business;
 import com.x.processplatform.service.processing.Business;
+import com.x.processplatform.service.processing.MessageFactory;
 import com.x.query.core.entity.Item;
 import com.x.query.core.entity.Item;
 
 
 abstract class BaseAction extends StandardJaxrsAction {
 abstract class BaseAction extends StandardJaxrsAction {
@@ -78,13 +79,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 			futures.add(mergeItem(business, job, properties, items));
 			futures.add(mergeItem(business, job, properties, items));
 		}
 		}
 		CompletableFuture.allOf(futures.toArray(new CompletableFuture<?>[0]));
 		CompletableFuture.allOf(futures.toArray(new CompletableFuture<?>[0]));
-//		CompletableFuture.allOf(mergeItem(business, job, properties, items),
-//				mergeTaskCompleted(business, job, properties, taskCompleteds),
-//				mergeRead(business, job, properties, reads),
-//				mergeReadCompleted(business, job, properties, readCompleteds),
-//				mergeReview(business, job, properties, reviews), mergeWorkLog(business, job, properties, workLogs),
-//				mergeRecord(business, job, properties, records),
-//				mergeAttachment(business, job, properties, attachments)).get();
+
 		return properties;
 		return properties;
 	}
 	}
 
 
@@ -307,6 +302,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Work.class);
 				business.entityManagerContainer().beginTransaction(Work.class);
 				for (Work o : works) {
 				for (Work o : works) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.work_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -319,6 +315,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 			try {
 			try {
 				business.entityManagerContainer().beginTransaction(WorkCompleted.class);
 				business.entityManagerContainer().beginTransaction(WorkCompleted.class);
 				business.entityManagerContainer().remove(workCompleted);
 				business.entityManagerContainer().remove(workCompleted);
+				MessageFactory.workCompleted_delete(workCompleted);
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
 			}
 			}
@@ -331,6 +328,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Task.class);
 				business.entityManagerContainer().beginTransaction(Task.class);
 				for (Task o : tasks) {
 				for (Task o : tasks) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.task_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -344,6 +342,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(TaskCompleted.class);
 				business.entityManagerContainer().beginTransaction(TaskCompleted.class);
 				for (TaskCompleted o : taskCompleteds) {
 				for (TaskCompleted o : taskCompleteds) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.taskCompleted_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -357,6 +356,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Read.class);
 				business.entityManagerContainer().beginTransaction(Read.class);
 				for (Read o : reads) {
 				for (Read o : reads) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.read_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -370,6 +370,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(ReadCompleted.class);
 				business.entityManagerContainer().beginTransaction(ReadCompleted.class);
 				for (ReadCompleted o : readCompleteds) {
 				for (ReadCompleted o : readCompleteds) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.readCompleted_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -383,6 +384,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Review.class);
 				business.entityManagerContainer().beginTransaction(Review.class);
 				for (Review o : reviews) {
 				for (Review o : reviews) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.review_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -461,6 +463,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Work.class);
 				business.entityManagerContainer().beginTransaction(Work.class);
 				for (Work o : business.entityManagerContainer().listEqual(Work.class, Work.job_FIELDNAME, job)) {
 				for (Work o : business.entityManagerContainer().listEqual(Work.class, Work.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.work_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -475,6 +478,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				for (WorkCompleted o : business.entityManagerContainer().listEqual(WorkCompleted.class,
 				for (WorkCompleted o : business.entityManagerContainer().listEqual(WorkCompleted.class,
 						WorkCompleted.job_FIELDNAME, job)) {
 						WorkCompleted.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.workCompleted_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -488,6 +492,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Task.class);
 				business.entityManagerContainer().beginTransaction(Task.class);
 				for (Task o : business.entityManagerContainer().listEqual(Task.class, Task.job_FIELDNAME, job)) {
 				for (Task o : business.entityManagerContainer().listEqual(Task.class, Task.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.task_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -502,6 +507,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				for (TaskCompleted o : business.entityManagerContainer().listEqual(TaskCompleted.class,
 				for (TaskCompleted o : business.entityManagerContainer().listEqual(TaskCompleted.class,
 						TaskCompleted.job_FIELDNAME, job)) {
 						TaskCompleted.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.taskCompleted_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -515,6 +521,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Read.class);
 				business.entityManagerContainer().beginTransaction(Read.class);
 				for (Read o : business.entityManagerContainer().listEqual(Read.class, Read.job_FIELDNAME, job)) {
 				for (Read o : business.entityManagerContainer().listEqual(Read.class, Read.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.read_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -529,6 +536,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				for (ReadCompleted o : business.entityManagerContainer().listEqual(ReadCompleted.class,
 				for (ReadCompleted o : business.entityManagerContainer().listEqual(ReadCompleted.class,
 						ReadCompleted.job_FIELDNAME, job)) {
 						ReadCompleted.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.readCompleted_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);
@@ -542,6 +550,7 @@ abstract class BaseAction extends StandardJaxrsAction {
 				business.entityManagerContainer().beginTransaction(Review.class);
 				business.entityManagerContainer().beginTransaction(Review.class);
 				for (Review o : business.entityManagerContainer().listEqual(Review.class, Review.job_FIELDNAME, job)) {
 				for (Review o : business.entityManagerContainer().listEqual(Review.class, Review.job_FIELDNAME, job)) {
 					business.entityManagerContainer().remove(o);
 					business.entityManagerContainer().remove(o);
+					MessageFactory.review_delete(o);
 				}
 				}
 			} catch (Exception e) {
 			} catch (Exception e) {
 				logger.error(e);
 				logger.error(e);

+ 0 - 13
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/jaxrs/snap/ExceptionActivityNotService.java

@@ -1,13 +0,0 @@
-package com.x.processplatform.service.processing.jaxrs.snap;
-
-import com.x.base.core.project.exception.PromptException;
-
-class ExceptionActivityNotService extends PromptException {
-
-	private static final long serialVersionUID = -7038279889683420366L;
-
-	ExceptionActivityNotService(String id) {
-		super("工作:{}, 未处于服务活动环节.", id);
-	}
-
-}

+ 2 - 13
o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/code/ActionCreate.java

@@ -4,7 +4,6 @@ import org.apache.commons.lang3.BooleanUtils;
 
 
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
 import com.x.base.core.container.factory.EntityManagerContainerFactory;
-import com.x.base.core.entity.annotation.CheckPersistType;
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.config.Config;
 import com.x.base.core.project.connection.ActionResponse;
 import com.x.base.core.project.connection.ActionResponse;
 import com.x.base.core.project.connection.ConnectionAction;
 import com.x.base.core.project.connection.ConnectionAction;
@@ -14,8 +13,6 @@ import com.x.base.core.project.jaxrs.WrapBoolean;
 import com.x.base.core.project.jaxrs.WrapString;
 import com.x.base.core.project.jaxrs.WrapString;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.StringTools;
-import com.x.program.center.core.entity.Code;
 
 
 class ActionCreate extends BaseAction {
 class ActionCreate extends BaseAction {
 
 
@@ -25,21 +22,13 @@ class ActionCreate extends BaseAction {
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			ActionResult<Wo> result = new ActionResult<>();
 			ActionResult<Wo> result = new ActionResult<>();
 			Wo wo = new Wo();
 			Wo wo = new Wo();
-			Code code = new Code();
-			code.setMobile(mobile);
-			code.setAnswer(StringTools.randomNumber4());
-			emc.beginTransaction(Code.class);
-			emc.persist(code, CheckPersistType.all);
-			wo.setValue(code.getAnswer());
-			emc.commit();
 			if (BooleanUtils.isNotTrue(Config.collect().getEnable())) {
 			if (BooleanUtils.isNotTrue(Config.collect().getEnable())) {
 				logger.warn("短信无法发送,系统没有启用O2云服务.");
 				logger.warn("短信无法发送,系统没有启用O2云服务.");
 			} else {
 			} else {
 				Message message = new Message();
 				Message message = new Message();
 				message.setUnit(Config.collect().getName());
 				message.setUnit(Config.collect().getName());
-				message.setMobile(code.getMobile());
+				message.setMobile(mobile);
 				message.setPassword(Config.collect().getPassword());
 				message.setPassword(Config.collect().getPassword());
-				message.setAnswer(code.getAnswer());
 				ActionResponse resp = ConnectionAction
 				ActionResponse resp = ConnectionAction
 						.put(Config.collect().url() + "/o2_collect_assemble/jaxrs/code/transfer", null, message);
 						.put(Config.collect().url() + "/o2_collect_assemble/jaxrs/code/transfer", null, message);
 				RespWi respWi = resp.getData(RespWi.class);
 				RespWi respWi = resp.getData(RespWi.class);
@@ -103,4 +92,4 @@ class ActionCreate extends BaseAction {
 
 
 	}
 	}
 
 
-}
+}

+ 49 - 0
o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/code/ActionListPaging.java

@@ -0,0 +1,49 @@
+package com.x.program.center.jaxrs.code;
+
+import com.x.base.core.container.EntityManagerContainer;
+import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.entity.JpaObject;
+import com.x.base.core.project.bean.WrapCopier;
+import com.x.base.core.project.bean.WrapCopierFactory;
+import com.x.base.core.project.http.ActionResult;
+import com.x.base.core.project.http.EffectivePerson;
+import com.x.program.center.core.entity.Code;
+
+import javax.persistence.EntityManager;
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.Predicate;
+import java.util.List;
+
+class ActionListPaging extends BaseAction {
+	ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, Integer page, Integer size) throws Exception {
+		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+			ActionResult<List<Wo>> result = new ActionResult<>();
+			EntityManager em = emc.get(Code.class);
+			CriteriaBuilder cb = em.getCriteriaBuilder();
+			Predicate p = cb.conjunction();
+			List<Wo> wos = emc.fetchDescPaging(Code.class, Wo.copier, p, page, size, Code.sequence_FIELDNAME);
+			result.setData(wos);
+			result.setCount(emc.count(Code.class, p));
+			return result;
+		}
+	}
+
+	public static class Wo extends Code {
+
+		private static final long serialVersionUID = 9141971868817571577L;
+
+		static WrapCopier<Code, Wo> copier = WrapCopierFactory.wo(Code.class, Wo.class, null,
+				JpaObject.FieldsInvisible);
+
+		private Long rank;
+
+		public Long getRank() {
+			return rank;
+		}
+
+		public void setRank(Long rank) {
+			this.rank = rank;
+		}
+
+	}
+}

+ 38 - 16
o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/code/ActionValidate.java

@@ -10,7 +10,9 @@ import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 import javax.persistence.criteria.Root;
 
 
 import com.x.base.core.container.EntityManagerContainer;
 import com.x.base.core.container.EntityManagerContainer;
-import com.x.base.core.container.factory.EntityManagerContainerFactory;
+import com.x.base.core.project.config.Config;
+import com.x.base.core.project.connection.ActionResponse;
+import com.x.base.core.project.connection.ConnectionAction;
 import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.http.ActionResult;
 import com.x.base.core.project.jaxrs.WrapBoolean;
 import com.x.base.core.project.jaxrs.WrapBoolean;
 import com.x.program.center.core.entity.Code;
 import com.x.program.center.core.entity.Code;
@@ -18,41 +20,61 @@ import com.x.program.center.core.entity.Code_;
 
 
 class ActionValidate extends BaseAction {
 class ActionValidate extends BaseAction {
 	ActionResult<Wo> execute(String mobile, String answer) throws Exception {
 	ActionResult<Wo> execute(String mobile, String answer) throws Exception {
-		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
+		/*try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			ActionResult<Wo> result = new ActionResult<>();
 			ActionResult<Wo> result = new ActionResult<>();
 			Wo wo = new Wo();
 			Wo wo = new Wo();
-			Code code = this.get(emc, mobile, answer);
-			if (null == code) {
-				wo.setValue(false);
-			} else {
-				emc.beginTransaction(Code.class);
-				emc.remove(code);
-				emc.commit();
-				wo.setValue(true);
+			wo.setValue(false);
+			if(StringUtils.isNotEmpty(answer) && StringUtils.isNotEmpty(mobile)) {
+				Code code = this.get(emc, mobile);
+				if (null != code) {
+					if (answer.equals(code.getAnswer())) {
+						emc.beginTransaction(Code.class);
+						emc.remove(code);
+						emc.commit();
+						wo.setValue(true);
+					} else {
+						int vn = code.getVerifyNumber() == null ? 0 : code.getVerifyNumber();
+						vn++;
+						emc.beginTransaction(Code.class);
+						if (vn < 6) {
+							code.setVerifyNumber(vn);
+						} else {
+							emc.remove(code);
+						}
+						emc.commit();
+					}
+				}
 			}
 			}
 			result.setData(wo);
 			result.setData(wo);
 			return result;
 			return result;
-		}
+		}*/
+		ActionResult<Wo> result = new ActionResult<>();
+		ActionResponse resp = ConnectionAction.get(Config.collect().url()
+				+ "/o2_collect_assemble/jaxrs/code/validate/mobile/" + mobile + "/answer/" + answer, null);
+		Wo wo = new Wo();
+		wo.setValue(resp.getData(ActionValidateCascade.Wo.class).getValue());
+		result.setData(wo);
+		return result;
 	}
 	}
 
 
 	public static class Wo extends WrapBoolean {
 	public static class Wo extends WrapBoolean {
 	}
 	}
 
 
-	private Code get(EntityManagerContainer emc, String mobile, String answer) throws Exception {
+	private Code get(EntityManagerContainer emc, String mobile) throws Exception {
 		EntityManager em = emc.get(Code.class);
 		EntityManager em = emc.get(Code.class);
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaBuilder cb = em.getCriteriaBuilder();
 		CriteriaQuery<Code> cq = cb.createQuery(Code.class);
 		CriteriaQuery<Code> cq = cb.createQuery(Code.class);
 		Root<Code> root = cq.from(Code.class);
 		Root<Code> root = cq.from(Code.class);
 		Calendar cal = Calendar.getInstance();
 		Calendar cal = Calendar.getInstance();
-		cal.add(Calendar.MINUTE, -30);
+		cal.add(Calendar.MINUTE, -5);
 		Predicate p = cb.greaterThan(root.get(Code_.createTime), cal.getTime());
 		Predicate p = cb.greaterThan(root.get(Code_.createTime), cal.getTime());
 		p = cb.and(p, cb.equal(root.get(Code_.mobile), mobile));
 		p = cb.and(p, cb.equal(root.get(Code_.mobile), mobile));
-		p = cb.and(p, cb.equal(root.get(Code_.answer), answer));
-		List<Code> list = em.createQuery(cq.where(p)).getResultList();
+		//p = cb.and(p, cb.equal(root.get(Code_.answer), answer));
+		List<Code> list = em.createQuery(cq.where(p).orderBy(cb.desc(root.get(Code_.createTime)))).setMaxResults(1).getResultList();
 		if (list.isEmpty()) {
 		if (list.isEmpty()) {
 			return null;
 			return null;
 		} else {
 		} else {
 			return list.get(0);
 			return list.get(0);
 		}
 		}
 	}
 	}
-}
+}

+ 21 - 6
o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/code/CodeAction.java

@@ -3,11 +3,7 @@ package com.x.program.center.jaxrs.code;
 import java.util.List;
 import java.util.List;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
+import javax.ws.rs.*;
 import javax.ws.rs.container.AsyncResponse;
 import javax.ws.rs.container.AsyncResponse;
 import javax.ws.rs.container.Suspended;
 import javax.ws.rs.container.Suspended;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.Context;
@@ -103,4 +99,23 @@ public class CodeAction extends StandardJaxrsAction {
 		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
 		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
 	}
 	}
 
 
-}
+	@JaxrsMethodDescribe(value = "分页列示Code对象.", action = ActionListPaging.class)
+	@POST
+	@Path("list/paging/{page}/size/{size}")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void listPaging(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+						   @JaxrsParameterDescribe("分页") @PathParam("page") Integer page,
+						   @JaxrsParameterDescribe("每页数量") @PathParam("size") Integer size) {
+		ActionResult<List<ActionListPaging.Wo>> result = new ActionResult<>();
+		EffectivePerson effectivePerson = this.effectivePerson(request);
+		try {
+			result = new ActionListPaging().execute(effectivePerson, page, size);
+		} catch (Exception e) {
+			logger.error(e, effectivePerson, request, null);
+			result.error(e);
+		}
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+
+}

+ 1 - 1
o2server/x_program_center/src/main/java/com/x/program/center/jaxrs/market/ActionListPaging.java

@@ -165,7 +165,7 @@ class ActionListPaging extends BaseAction {
 		private static final long serialVersionUID = 9206739553467260926L;
 		private static final long serialVersionUID = 9206739553467260926L;
 
 
 		static WrapCopier<Application, Wo> copier = WrapCopierFactory.wo(Application.class, Wo.class,
 		static WrapCopier<Application, Wo> copier = WrapCopierFactory.wo(Application.class, Wo.class,
-				JpaObject.singularAttributeField(Application.class, true, false), Arrays.asList("abort", "installSteps"));
+				JpaObject.singularAttributeField(Application.class, true, false), Arrays.asList("abort", "installSteps", "describe"));
 
 
 		@FieldDescribe("已安装的版本,空表示未安装")
 		@FieldDescribe("已安装的版本,空表示未安装")
 		private String installedVersion;
 		private String installedVersion;

+ 16 - 2
o2server/x_program_center_core_entity/src/main/java/com/x/program/center/core/entity/Code.java

@@ -45,7 +45,9 @@ public class Code extends SliceJpaObject {
 	/* 以上为 JpaObject 默认字段 */
 	/* 以上为 JpaObject 默认字段 */
 
 
 	public void onPersist() throws Exception {
 	public void onPersist() throws Exception {
-
+		if(this.getVerifyNumber() == null){
+			this.setVerifyNumber(0);
+		}
 	}
 	}
 
 
 	/* 更新运行方法 */
 	/* 更新运行方法 */
@@ -68,6 +70,11 @@ public class Code extends SliceJpaObject {
 	@CheckPersist(allowEmpty = true)
 	@CheckPersist(allowEmpty = true)
 	private String meta;
 	private String meta;
 
 
+	public static final String verifyNumber_FIELDNAME = "verifyNumber";
+	@FieldDescribe("验证次数")
+	@Column(name = ColumnNamePrefix + verifyNumber_FIELDNAME)
+	private Integer verifyNumber;
+
 	// public static String[] FLAGS = new String[] { "id" };
 	// public static String[] FLAGS = new String[] { "id" };
 
 
 	public String getMeta() {
 	public String getMeta() {
@@ -94,4 +101,11 @@ public class Code extends SliceJpaObject {
 		this.mobile = mobile;
 		this.mobile = mobile;
 	}
 	}
 
 
-}
+	public Integer getVerifyNumber() {
+		return verifyNumber;
+	}
+
+	public void setVerifyNumber(Integer verifyNumber) {
+		this.verifyNumber = verifyNumber;
+	}
+}

+ 1 - 1
o2web/source/x_component_Setting/lp/zh-cn.js

@@ -125,7 +125,7 @@ MWF.xApplication.Setting.LP = {
     "mobile_connectO2Cloud": "连接到O2云",
     "mobile_connectO2Cloud": "连接到O2云",
     "mobile_connectO2Cloud_infor": "使用移动办公请先连接到O2云,这有助于APP定位到您的企业服务器,可以使用短信服务等",
     "mobile_connectO2Cloud_infor": "使用移动办公请先连接到O2云,这有助于APP定位到您的企业服务器,可以使用短信服务等",
     "mobile_connectO2Cloud_action": "连接到O2云",
     "mobile_connectO2Cloud_action": "连接到O2云",
-    "mobile_connectO2Cloud_success": "已连接到O2云",
+    "mobile_connectO2Cloud_success": "连接设置",
     "mobile_connectO2Cloud_error": "还未连接到O2云",
     "mobile_connectO2Cloud_error": "还未连接到O2云",
 
 
     "mobile_httpProtocol": "http协议",
     "mobile_httpProtocol": "http协议",