package com.x.organization.assemble.control.jaxrs.unit; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.container.AsyncResponse; import javax.ws.rs.container.Suspended; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import com.google.gson.JsonElement; import com.x.base.core.project.annotation.JaxrsDescribe; import com.x.base.core.project.annotation.JaxrsMethodDescribe; import com.x.base.core.project.annotation.JaxrsParameterDescribe; import com.x.base.core.project.http.ActionResult; import com.x.base.core.project.http.EffectivePerson; import com.x.base.core.project.http.HttpMediaType; 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; @Path("unit") @JaxrsDescribe("组织操作") public class UnitAction extends StandardJaxrsAction { private static Logger logger = LoggerFactory.getLogger(UnitAction.class); @JaxrsMethodDescribe(value = "获取组织.", action = ActionGet.class) @GET @Path("{flag}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void get(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionGet().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "批量获取组织.", action = ActionList.class) @POST @Path("list") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void list(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionList().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "根据身份获取递归上级组织中等级为指定登记的组织.", action = ActionGetWithIdentityWithLevel.class) @GET @Path("identity/{identityFlag}/level/{level}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void getWithIdentityWithLevel(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("identityFlag") String identityFlag, @JaxrsParameterDescribe("组织等级") @PathParam("level") Integer level) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionGetWithIdentityWithLevel().execute(effectivePerson, identityFlag, level); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "根据身份获取递归上级组织中type为指定type的组织.", action = ActionGetWithIdentityWithType.class) @GET @Path("identity/{identityFlag}/type/{type}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void getWithIdentityWithType(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("identityFlag") String identityFlag, @JaxrsParameterDescribe("组织类型") @PathParam("type") String type) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionGetWithIdentityWithType().execute(effectivePerson, identityFlag, type); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "创建组织.", action = ActionCreate.class) @POST @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void create(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionCreate().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "更新组织.", action = ActionEdit.class) @PUT @Path("{flag}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void edit(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag, JsonElement jsonElement) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionEdit().execute(effectivePerson, flag, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "更新组织mockputtopost.", action = ActionEdit.class) @POST @Path("{flag}/mockputtopost") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void editMockPutToPost(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag, JsonElement jsonElement) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionEdit().execute(effectivePerson, flag, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "删除组织.", action = ActionDelete.class) @DELETE @Path("{flag}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void delete(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionDelete().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "删除组织mockdeletetoget.", action = ActionDelete.class) @GET @Path("{flag}/mockdeletetoget") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void deleteMockDeleteToGet(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionDelete().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "通过type属性值搜索组织.", action = ActionListWithUnitWithType.class) @PUT @Path("list/unit/type") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listWithUnitWithType(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListWithUnitWithType().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "通过type属性值搜索组织mockputtopost.", action = ActionListWithUnitWithType.class) @POST @Path("list/unit/type/mockputtopost") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listWithUnitWithTypeMockPutToPost(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListWithUnitWithType().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "列示组织,下一页.", action = ActionListNext.class) @GET @Path("list/{flag}/next/{count}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void listNext(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag, @JaxrsParameterDescribe("数量") @PathParam("count") Integer count) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListNext().execute(effectivePerson, flag, count); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "列示组织对象,上一页.", action = ActionListPrev.class) @GET @Path("list/{flag}/prev/{count}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void listPrev(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag, @JaxrsParameterDescribe("数量") @PathParam("count") Integer count) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListPrev().execute(effectivePerson, flag, count); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "直接下级组织.", action = ActionListSubDirect.class) @GET @Path("list/{flag}/sub/direct") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listSubDirect(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListSubDirect().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "查找直接下级组织中符合type值的对象.", action = ActionListSubDirectWithType.class) @GET @Path("list/{flag}/sub/direct/type/{type}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listSubDirectWithType(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag, @JaxrsParameterDescribe("组织的type属性值,匹配多值中的某一个") @PathParam("type") String type) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListSubDirectWithType().execute(effectivePerson, flag, type); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "递归下级组织.", action = ActionListSubNested.class) @GET @Path("list/{flag}/sub/nested") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listSubNested(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListSubNested().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "列示顶层组织.", action = ActionListTop.class) @GET @Path("list/top") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void listTop(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListTop().execute(effectivePerson); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "通过type属性值搜索顶层组织.", action = ActionListTopWithType.class) @GET @Path("list/top/type/{type}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listTopWithType(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织的type属性值,匹配多值中的某一个") @PathParam("type") String type) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListTopWithType().execute(effectivePerson, type); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "列示所有的组织属性.", action = ActionListType.class) @GET @Path("list/type") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) public void listType(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListType().execute(effectivePerson); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "获取拼音首字母开始的组织.", action = ActionListPinyinInitial.class) @PUT @Path("list/pinyininitial") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listPinyinInitial(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListPinyinInitial().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "获取拼音首字母开始的组织mockputtopost.", action = ActionListPinyinInitial.class) @POST @Path("list/pinyininitial/mockputtopost") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listPinyinInitialMockPutToPost(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListPinyinInitial().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "根据名称进行模糊查询.", action = ActionListLike.class) @PUT @Path("list/like") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listLike(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListLike().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "根据名称进行模糊查询mockputtopost.", action = ActionListLike.class) @POST @Path("list/like/mockputtopost") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listLikeMockPutToPost(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListLike().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "根据拼音或者首字母进行模糊查询.", action = ActionListLikePinyin.class) @PUT @Path("list/like/pinyin") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listLikePinyin(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListLikePinyin().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "根据拼音或者首字母进行模糊查询mockputtopost.", action = ActionListLikePinyin.class) @POST @Path("list/like/pinyin/mockputtopost") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listLikePinyinMockPutToPost(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListLikePinyin().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } @JaxrsMethodDescribe(value = "直接上级组织.", action = ActionGetSupDirect.class) @GET @Path("{flag}/sup/direct") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void getSupDirect(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionGetSupDirect().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "递归上级组织.", action = ActionListSupNested.class) @GET @Path("list/{flag}/sup/nested") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listSupNested(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListSupNested().execute(effectivePerson, flag); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "查找递归上级组织中符合type值的对象.", action = ActionListSupNestedWithType.class) @GET @Path("list/{flag}/sup/nested/type/{type}") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listSupNestedWithType(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, @JaxrsParameterDescribe("组织标识") @PathParam("flag") String flag, @JaxrsParameterDescribe("组织的type属性值,匹配多值中的某一个") @PathParam("type") String type) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListSupNestedWithType().execute(effectivePerson, flag, type); } catch (Exception e) { logger.error(e, effectivePerson, request, null); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result)); } @JaxrsMethodDescribe(value = "列示指定人员在组织管理者中的组织.", action = ActionListWithController.class) @POST @Path("list/controller") @Produces(HttpMediaType.APPLICATION_JSON_UTF_8) @Consumes(MediaType.APPLICATION_JSON) public void listWithController(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request, JsonElement jsonElement) { ActionResult> result = new ActionResult<>(); EffectivePerson effectivePerson = this.effectivePerson(request); try { result = new ActionListWithController().execute(effectivePerson, jsonElement); } catch (Exception e) { logger.error(e, effectivePerson, request, jsonElement); result.error(e); } asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result, jsonElement)); } }