Эх сурвалжийг харах

修复内容管理信息删除后,相关的热点图片不会立即自动删除的问题(需要等待热点图片自动检测后才能删除)

o2lee 5 жил өмнө
parent
commit
08d1394545

+ 2 - 3
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueDocumentDelete.java

@@ -13,10 +13,9 @@ public class QueueDocumentDelete extends AbstractQueue<String> {
 	//{application}/{infoId}
 	public void execute( String docId ) throws Exception {
 		try {
-			ThisApplication.context().applications().deleteQuery(
-					x_hotpic_assemble_control.class, "cms/" + docId
-			);
+			ThisApplication.context().applications().deleteQuery( x_hotpic_assemble_control.class, "cipher/hotpic/cms/" + docId );
 		}catch( Exception e ) {
+			e.printStackTrace();
 		}		
 	}
 }

+ 84 - 0
o2server/x_hotpic_assemble_control/src/main/java/com/x/hotpic/assemble/control/jaxrs/hotpic/HotPictureInfoCipherAction.java

@@ -15,6 +15,7 @@ import com.x.base.core.project.jaxrs.ResponseFactory;
 import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.base.core.project.tools.SortTools;
 import com.x.hotpic.assemble.control.service.HotPictureInfoServiceAdv;
 import com.x.hotpic.entity.HotPictureInfo;
@@ -42,6 +43,89 @@ public class HotPictureInfoCipherAction extends StandardJaxrsAction {
 			.wo(HotPictureInfo.class, WrapOutHotPictureInfo.class, null, WrapOutHotPictureInfo.Excludes);
 	private Ehcache cache = ApplicationCache.instance().getCache(HotPictureInfo.class);
 
+
+	@JaxrsMethodDescribe(value = "根据CMS文档ID删除热点信息", action= StandardJaxrsAction.class )
+	@DELETE
+	@Path("cms/{id}")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void deleteCms(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+					@PathParam("id") String id) {
+		ActionResult<WrapOutString> result = new ActionResult<>();
+		EffectivePerson effectivePerson = this.effectivePerson(request);
+		WrapOutString wrap = null;
+		List<HotPictureInfo> hotPictureInfos = null;
+		Boolean check = true;
+
+		if (check) {
+			if (id == null || id.isEmpty() || "(0)".equals(id)) {
+				check = false;
+				Exception exception = new InfoIdEmptyException();
+				result.error(exception);
+			}
+		}
+		if( check ){
+			try {
+				hotPictureInfos = hotPictureInfoService.listByApplicationInfoId(HotPictureInfo.APPLICATION_CMS, id );
+				if(ListTools.isNotEmpty( hotPictureInfos )){
+					for( HotPictureInfo hotPictureInfo : hotPictureInfos ){
+						hotPictureInfoService.delete( hotPictureInfo.getId() );
+					}
+					ApplicationCache.notify(HotPictureInfo.class);
+				}
+			} catch (Exception e) {
+				Exception exception = new InfoQueryByIdException(e, id);
+				result.error(exception);
+				logger.error(e, effectivePerson, request, null);
+			}
+		}
+		WrapOutString wrapOutString =  new WrapOutString();
+		wrapOutString.setValue( id );
+		result.setData( wrapOutString );
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+
+	@JaxrsMethodDescribe(value = "根据BBS主贴ID删除热点信息", action= StandardJaxrsAction.class )
+	@DELETE
+	@Path("bbs/{id}")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void deleteBBS(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+						  @PathParam("id") String id) {
+		ActionResult<WrapOutString> result = new ActionResult<>();
+		EffectivePerson effectivePerson = this.effectivePerson(request);
+		WrapOutString wrap = null;
+		List<HotPictureInfo> hotPictureInfos = null;
+		Boolean check = true;
+
+		if (check) {
+			if (id == null || id.isEmpty() || "(0)".equals(id)) {
+				check = false;
+				Exception exception = new InfoIdEmptyException();
+				result.error(exception);
+			}
+		}
+		if( check ){
+			try {
+				hotPictureInfos = hotPictureInfoService.listByApplicationInfoId(HotPictureInfo.APPLICATION_BBS, id );
+				if(ListTools.isNotEmpty( hotPictureInfos )){
+					for( HotPictureInfo hotPictureInfo : hotPictureInfos ){
+						hotPictureInfoService.delete( hotPictureInfo.getId() );
+					}
+					ApplicationCache.notify(HotPictureInfo.class);
+				}
+			} catch (Exception e) {
+				Exception exception = new InfoQueryByIdException(e, id);
+				result.error(exception);
+				logger.error(e, effectivePerson, request, null);
+			}
+		}
+		WrapOutString wrapOutString =  new WrapOutString();
+		wrapOutString.setValue( id );
+		result.setData( wrapOutString );
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+
 	@JaxrsMethodDescribe(value = "根据ID获取单个热图信息", action= StandardJaxrsAction.class )
 	@GET
 	@Path("{id}")

+ 55 - 11
o2server/x_hotpic_assemble_control/src/main/webapp/describe/describe.json

@@ -169,21 +169,16 @@
         {
           "name": "delete",
           "className": "com.x.base.core.project.jaxrs.StandardJaxrsAction",
-          "description": "根据应用类型以及信息ID删除热图信息",
+          "description": "根据ID删除指定的热图信息",
           "type": "DELETE",
-          "path": "jaxrs/user/hotpic/{application}/{infoId}",
+          "path": "jaxrs/user/hotpic/{id}",
           "contentType": "application/json",
           "resultContentType": "application/json; charset\u003dUTF-8",
           "useJsonElementParameter": false,
           "useStringParameter": false,
           "pathParameters": [
             {
-              "name": "application",
-              "type": "String",
-              "description": ""
-            },
-            {
-              "name": "infoId",
+              "name": "id",
               "type": "String",
               "description": ""
             }
@@ -196,16 +191,21 @@
         {
           "name": "delete",
           "className": "com.x.base.core.project.jaxrs.StandardJaxrsAction",
-          "description": "根据ID删除指定的热图信息",
+          "description": "根据应用类型以及信息ID删除热图信息",
           "type": "DELETE",
-          "path": "jaxrs/user/hotpic/{id}",
+          "path": "jaxrs/user/hotpic/{application}/{infoId}",
           "contentType": "application/json",
           "resultContentType": "application/json; charset\u003dUTF-8",
           "useJsonElementParameter": false,
           "useStringParameter": false,
           "pathParameters": [
             {
-              "name": "id",
+              "name": "application",
+              "type": "String",
+              "description": ""
+            },
+            {
+              "name": "infoId",
               "type": "String",
               "description": ""
             }
@@ -330,6 +330,50 @@
       "className": "com.x.hotpic.assemble.control.jaxrs.hotpic.HotPictureInfoCipherAction",
       "description": "热点信息管理(服务器间调用)",
       "methods": [
+        {
+          "name": "deleteBBS",
+          "className": "com.x.base.core.project.jaxrs.StandardJaxrsAction",
+          "description": "根据BBS主贴ID删除热点信息",
+          "type": "DELETE",
+          "path": "jaxrs/cipher/hotpic/bbs/{id}",
+          "contentType": "application/json",
+          "resultContentType": "application/json; charset\u003dUTF-8",
+          "useJsonElementParameter": false,
+          "useStringParameter": false,
+          "pathParameters": [
+            {
+              "name": "id",
+              "type": "String",
+              "description": ""
+            }
+          ],
+          "formParameters": [],
+          "queryParameters": [],
+          "ins": [],
+          "outs": []
+        },
+        {
+          "name": "deleteCms",
+          "className": "com.x.base.core.project.jaxrs.StandardJaxrsAction",
+          "description": "根据CMS文档ID删除热点信息",
+          "type": "DELETE",
+          "path": "jaxrs/cipher/hotpic/cms/{id}",
+          "contentType": "application/json",
+          "resultContentType": "application/json; charset\u003dUTF-8",
+          "useJsonElementParameter": false,
+          "useStringParameter": false,
+          "pathParameters": [
+            {
+              "name": "id",
+              "type": "String",
+              "description": ""
+            }
+          ],
+          "formParameters": [],
+          "queryParameters": [],
+          "ins": [],
+          "outs": []
+        },
         {
           "name": "get",
           "className": "com.x.base.core.project.jaxrs.StandardJaxrsAction",

+ 84 - 0
o2server/x_hotpic_assemble_control/src/main/webapp/describe/sources/com/x/hotpic/assemble/control/jaxrs/hotpic/HotPictureInfoCipherAction.java

@@ -15,6 +15,7 @@ import com.x.base.core.project.jaxrs.ResponseFactory;
 import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
+import com.x.base.core.project.tools.ListTools;
 import com.x.base.core.project.tools.SortTools;
 import com.x.hotpic.assemble.control.service.HotPictureInfoServiceAdv;
 import com.x.hotpic.entity.HotPictureInfo;
@@ -42,6 +43,89 @@ public class HotPictureInfoCipherAction extends StandardJaxrsAction {
 			.wo(HotPictureInfo.class, WrapOutHotPictureInfo.class, null, WrapOutHotPictureInfo.Excludes);
 	private Ehcache cache = ApplicationCache.instance().getCache(HotPictureInfo.class);
 
+
+	@JaxrsMethodDescribe(value = "根据CMS文档ID删除热点信息", action= StandardJaxrsAction.class )
+	@DELETE
+	@Path("cms/{id}")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void deleteCms(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+					@PathParam("id") String id) {
+		ActionResult<WrapOutString> result = new ActionResult<>();
+		EffectivePerson effectivePerson = this.effectivePerson(request);
+		WrapOutString wrap = null;
+		List<HotPictureInfo> hotPictureInfos = null;
+		Boolean check = true;
+
+		if (check) {
+			if (id == null || id.isEmpty() || "(0)".equals(id)) {
+				check = false;
+				Exception exception = new InfoIdEmptyException();
+				result.error(exception);
+			}
+		}
+		if( check ){
+			try {
+				hotPictureInfos = hotPictureInfoService.listByApplicationInfoId(HotPictureInfo.APPLICATION_CMS, id );
+				if(ListTools.isNotEmpty( hotPictureInfos )){
+					for( HotPictureInfo hotPictureInfo : hotPictureInfos ){
+						hotPictureInfoService.delete( hotPictureInfo.getId() );
+					}
+					ApplicationCache.notify(HotPictureInfo.class);
+				}
+			} catch (Exception e) {
+				Exception exception = new InfoQueryByIdException(e, id);
+				result.error(exception);
+				logger.error(e, effectivePerson, request, null);
+			}
+		}
+		WrapOutString wrapOutString =  new WrapOutString();
+		wrapOutString.setValue( id );
+		result.setData( wrapOutString );
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+
+	@JaxrsMethodDescribe(value = "根据BBS主贴ID删除热点信息", action= StandardJaxrsAction.class )
+	@DELETE
+	@Path("bbs/{id}")
+	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
+	@Consumes(MediaType.APPLICATION_JSON)
+	public void deleteBBS(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
+						  @PathParam("id") String id) {
+		ActionResult<WrapOutString> result = new ActionResult<>();
+		EffectivePerson effectivePerson = this.effectivePerson(request);
+		WrapOutString wrap = null;
+		List<HotPictureInfo> hotPictureInfos = null;
+		Boolean check = true;
+
+		if (check) {
+			if (id == null || id.isEmpty() || "(0)".equals(id)) {
+				check = false;
+				Exception exception = new InfoIdEmptyException();
+				result.error(exception);
+			}
+		}
+		if( check ){
+			try {
+				hotPictureInfos = hotPictureInfoService.listByApplicationInfoId(HotPictureInfo.APPLICATION_BBS, id );
+				if(ListTools.isNotEmpty( hotPictureInfos )){
+					for( HotPictureInfo hotPictureInfo : hotPictureInfos ){
+						hotPictureInfoService.delete( hotPictureInfo.getId() );
+					}
+					ApplicationCache.notify(HotPictureInfo.class);
+				}
+			} catch (Exception e) {
+				Exception exception = new InfoQueryByIdException(e, id);
+				result.error(exception);
+				logger.error(e, effectivePerson, request, null);
+			}
+		}
+		WrapOutString wrapOutString =  new WrapOutString();
+		wrapOutString.setValue( id );
+		result.setData( wrapOutString );
+		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
+	}
+
 	@JaxrsMethodDescribe(value = "根据ID获取单个热图信息", action= StandardJaxrsAction.class )
 	@GET
 	@Path("{id}")

+ 3 - 0
o2server/x_hotpic_core_entity/src/main/java/com/x/hotpic/entity/HotPictureInfo.java

@@ -54,6 +54,9 @@ public class HotPictureInfo extends SliceJpaObject {
 	 * =============================================================================
 	 * =====
 	 */
+	public static final String APPLICATION_CMS = "CMS";
+	public static final String APPLICATION_BBS = "BBS";
+
 	public static final String application_FIELDNAME = "application";
 	@FieldDescribe("应用名称")
 	@Column(name = "xapplication", length = JpaObject.length_64B)