From 7b35e72c742333924e785d64ee01f6485fe05546 Mon Sep 17 00:00:00 2001 From: 354798ggg <1074825718@qq.com> Date: 星期四, 01 六月 2023 14:41:36 +0800 Subject: [PATCH] 文档检索逻辑优化和文档管理权限处理 --- src/main/java/com/product/lucene/service/LuceneService.java | 60 +++++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 47 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/product/lucene/service/LuceneService.java b/src/main/java/com/product/lucene/service/LuceneService.java index 4a788ea..fc77c7b 100644 --- a/src/main/java/com/product/lucene/service/LuceneService.java +++ b/src/main/java/com/product/lucene/service/LuceneService.java @@ -6,6 +6,7 @@ import com.product.core.dao.BaseDao; import com.product.core.entity.FieldSetEntity; import com.product.core.permission.PermissionService; +import com.product.core.spring.context.SpringMVCContextHolder; import com.product.lucene.config.CmnConst; import com.product.lucene.util.FileUtils; import com.product.util.BaseUtil; @@ -169,22 +170,40 @@ /** * 鑾峰彇鏂囨。妫�绱㈤厤缃俊鎭紙鏉冮檺锛屽姛鑳藉悕绉帮紝璺宠浆鎸夐挳锛� - * @param json - * @param function_uuid - * @param service_uuid + * + * @param json 妫�绱㈡枃浠跺搴斾俊鎭� + * @param function_uuid 鎵�灞炲姛鑳経UID + * @param service_uuid 闄勪欢UUID */ public void getConfig(JSONObject json, String function_uuid, String uuid) { - FieldSetEntity fseConfig=baseDao.getFieldSetEntityByFilter(CmnConst.PRODUCT_SYS_DOCUMENT_SEARCH, "function_uuid=?", new Object[] {function_uuid}, false); + StringBuilder searchConfigSql = new StringBuilder(); + searchConfigSql.append("SELECT ") + .append(" A.uuid,A.function_uuid,A.function_button_uuid,A.table_name,") + .append(" A.attachment_file,A.org_fields,A.user_fields,title_field,time_field,") + .append(" B.function_name,C.button_name") + .append(" FROM product_sys_document_search A") + .append(" LEFT JOIN product_sys_functions B ON A.function_uuid = B.uuid") + .append(" LEFT JOIN product_sys_function_buttons C ON A.function_button_uuid = C.uuid") + .append(" WHERE function_uuid=?"); + + //鑾峰彇鏂囨。妫�绱㈤厤缃� + FieldSetEntity fseConfig = baseDao.getFieldSetBySQL(searchConfigSql.toString(), new Object[] {function_uuid}, false); if (fseConfig!=null) { - FieldSetEntity fseFunction=baseDao.getFieldSetEntity(CoreConst.PRODUCT_SYS_FUNCTIONS, function_uuid, false); + //鑾峰彇璺宠浆鎸夐挳 骞� 鍒ゆ柇璺宠浆鏉冮檺 + String buttonName = fseConfig.getString(CoreConst.BUTTON_NAME); + if (BaseUtil.strIsNull(buttonName)) { + json.put(CmnConst.IS_PERSSION, 2); + }else { + json.put(CmnConst.SKIPBUTTON, fseConfig.getString(CoreConst.BUTTON_NAME)); + } //鑾峰彇鏉冮檺杩囨护瀛楁 String org_fields=fseConfig.getString(CmnConst.ORG_FIELDS); String user_fields=fseConfig.getString(CmnConst.USER_FIELDS); - //鑾峰彇闄勪欢淇℃伅 + //鑾峰彇闄勪欢淇℃伅锛岀粨鍚堟暟鎹潈闄愬瓧娈碉紝鐢熸垚鍘熸暟鎹殑杩囨护SQL FieldSetEntity fseAttachment=baseDao.getFieldSetEntity(CmnConst.PRODUCT_SYS_ATTACHMENTS, uuid, false); baseDao.loadPromptData(fseAttachment); if (fseAttachment!=null) { @@ -206,30 +225,45 @@ } } - //鑾峰彇鍘熸暟鎹� FieldSetEntity fseService=baseDao.getFieldSetEntityByFilter(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_TABLE), filter.toString(), new Object[] {uuid}, false); - if (fseService==null) {//鏉冮檺杩囨护鏃犲師鏁版嵁 + if (fseService==null) { + //鑾峰彇鏃犳潈闄愯繃婊ょ殑鍘熸暟鎹� FieldSetEntity fseService2=baseDao.getFieldSetEntityByFilter(fseAttachment.getString(CmnConst.ATTACHMENT_DATA_TABLE), fseAttachment.getString(CmnConst.ATTACHMENT_DATA_FIELD)+"=?", new Object[] {uuid}, false); if (fseService2==null) { -// json.put("date_time", fseService2.getString(fseConfig.getString("time_field"))); - json.put(CmnConst.TITLE, "鏃犵浉鍏充笟鍔℃暟鎹�"); - json.put(CoreConst.FUNCTION_NAME, fseFunction.getString(CoreConst.FUNCTION_NAME)); + json.put(CmnConst.TITLE, "涓氬姟鏁版嵁涓嶅瓨鍦�"); json.put(CmnConst.IS_PERSSION, 1); }else { json.put(CmnConst.SERVICE_UUID, fseService2.getString(CoreConst.UUID)); json.put(CmnConst.DATE_TIME, fseService2.getString(fseConfig.getString(CmnConst.TIME_FIELD))); json.put(CmnConst.TITLE, fseService2.getString(fseConfig.getString(CmnConst.TITLE_FIELD))); - json.put(CoreConst.FUNCTION_NAME, fseFunction.getString(CoreConst.FUNCTION_NAME)); json.put(CmnConst.IS_PERSSION, 0); } }else { + + //鍒ゆ柇鏄惁涓烘枃妗g鐞嗗姛鑳斤紝骞跺鐞嗗崟浣嶆枃妗e拰涓汉鏂囨。鏉冮檺 + if("e4fa2c88-88a4-4ef4-9020-ebbe0440b4cf".equals(function_uuid)) { + if(!SpringMVCContextHolder.getCurrentUserId().equals(fseService.getString(CoreConst.CREATED_BY))) { + json.put(CmnConst.IS_PERSSION, 0); + } + }else if ("01513ff6-c758-4384-b861-e58dfe146fdd".equals(function_uuid)) { + //鑾峰彇鍗曚綅鏂囨。鎵�灞炵洰褰曟潈闄� + FieldSetEntity fseDirectRight = baseDao.getFieldSetByFilter(CmnConst.PRODUCT_OA_DIRECTORY_RIGHTS, "directory_uuid=?", new Object[] {fseService.getString(CmnConst.DIRECTORY_UUID)}, false); + if (fseDirectRight == null) { + json.put(CmnConst.IS_PERSSION, 0); + }else { + boolean succ= BaseUtil.multipleTypeConcat(fseDirectRight.getString(CmnConst.STORAGE_UUID), SpringMVCContextHolder.getCurrentUserId()); + if (!succ) { + json.put(CmnConst.IS_PERSSION, 0); + } + } + } json.put(CmnConst.SERVICE_UUID, fseService.getString(CoreConst.UUID)); json.put(CmnConst.DATE_TIME, fseService.getString(fseConfig.getString(CmnConst.TIME_FIELD))); json.put(CmnConst.TITLE, fseService.getString(fseConfig.getString(CmnConst.TITLE_FIELD))); - json.put(CoreConst.FUNCTION_NAME, fseFunction.getString(CoreConst.FUNCTION_NAME)); } + json.put(CoreConst.FUNCTION_NAME, fseConfig.getString(CoreConst.FUNCTION_NAME)); json.put(CoreConst.CREATED_BY, fseAttachment.getString(CoreConst.CREATED_BY)); } } -- Gitblit v1.9.2