Просмотр исходного кода

增加了添加文档的阅读记录的接口

o2sword 5 лет назад
Родитель
Сommit
ede3fa6cfa

+ 60 - 0
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionPersistViewRecord.java

@@ -0,0 +1,60 @@
+package com.x.cms.assemble.control.jaxrs.document;
+
+import com.google.gson.JsonElement;
+import com.x.base.core.project.gson.GsonPropertyObject;
+import com.x.base.core.project.http.ActionResult;
+import com.x.base.core.project.http.EffectivePerson;
+import com.x.base.core.project.jaxrs.WrapBoolean;
+import com.x.base.core.project.logger.Logger;
+import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.organization.Person;
+import com.x.base.core.project.tools.ListTools;
+import com.x.cms.core.entity.Document;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+public class ActionPersistViewRecord extends BaseAction {
+
+	private static  Logger logger = LoggerFactory.getLogger(ActionPersistViewRecord.class);
+
+	protected ActionResult<Wo> execute(HttpServletRequest request, String id, JsonElement jsonElement, EffectivePerson effectivePerson) throws Exception {
+		ActionResult<Wo> result = new ActionResult<>();
+
+		Document document  = documentQueryService.get(id);
+		if (null == document) {
+			throw new ExceptionDocumentNotExists(id);
+		}
+
+		Wi wi = this.convertToWrapIn(jsonElement, Wi.class );
+		if(ListTools.isNotEmpty(wi.getPersonList())){
+			for (String flag : wi.getPersonList()){
+				Person person = this.userManagerService.getPerson(flag);
+				if (person != null) {
+					documentViewRecordServiceAdv.addViewRecord(id, person.getDistinguishedName());
+				}
+			}
+		}
+		Wo wo = new Wo();
+		wo.setValue(true);
+
+		return result;
+	}
+
+	public static class Wo extends WrapBoolean {
+
+	}
+
+	public static class Wi extends GsonPropertyObject {
+
+		private List<String> personList;
+
+		public List<String> getPersonList() {
+			return personList;
+		}
+
+		public void setPersonList(List<String> personList) {
+			this.personList = personList;
+		}
+	}
+}

+ 23 - 3
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/DocumentCipherAction.java

@@ -24,9 +24,9 @@ import java.util.List;
 @Path("document/cipher")
 @JaxrsDescribe("信息发布信息文档管理(Cipher)")
 public class DocumentCipherAction extends StandardJaxrsAction{
-	
+
 	private static  Logger logger = LoggerFactory.getLogger( DocumentCipherAction.class );
-	
+
 	@JaxrsMethodDescribe(value = "直接发布文档信息.", action = ActionPersistPublishByWorkFlow.class)
 	@PUT
 	@Path("publish/content")
@@ -96,4 +96,24 @@ public class DocumentCipherAction extends StandardJaxrsAction{
 		}
 		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
 	}
-}
+
+	@JaxrsMethodDescribe(value = "添加文档的阅读记录.", action = ActionPersistViewRecord.class)
+	@POST
+	@Path("{id}/persist/view/record")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void persist_documentViewRecord( @Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+											@JaxrsParameterDescribe("文档ID") @PathParam("id") String id, JsonElement jsonElement ) {
+		EffectivePerson effectivePerson = this.effectivePerson( request );
+		ActionResult<ActionPersistViewRecord.Wo> result = new ActionResult<>();
+
+		try {
+			result = new ActionPersistViewRecord().execute( request, id, jsonElement, effectivePerson );
+		} catch (Exception e) {
+			result.error( e );
+			logger.error( e, effectivePerson, request, null);
+		}
+
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+}