From d97fedd09ef0d768fe97f803b6568dbb96f74071 Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期四, 15 六月 2023 11:09:59 +0800 Subject: [PATCH] 1、主要完成密级服务的编写 --- Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/FrameWorkBusLangCodeConstant.java | 519 +++++++++++++++++++ Source/UBCS/ubcs-service-api/ubcs-omd-api/pom.xml | 6 Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretFallback.java | 101 +++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java | 27 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IWebSecretService.java | 120 ++++ Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretClient.java | 184 +++++++ Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/utils/VciOmdUtil.java | 25 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/DataSecretEnum.java | 76 ++ Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/WebSecretClient.java | 111 ++++ Source/UBCS/ubcs-service/ubcs-omd/pom.xml | 6 Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/WebSecretServiceImpl.java | 376 ++++++++++++++ 11 files changed, 1,537 insertions(+), 14 deletions(-) diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/pom.xml b/Source/UBCS/ubcs-service-api/ubcs-omd-api/pom.xml index 69dc113..d44c9e9 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-omd-api/pom.xml +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/pom.xml @@ -20,6 +20,12 @@ <artifactId>ubcs-util-api</artifactId> <version>3.0.1.RELEASE</version> </dependency> + <dependency> + <groupId>com.vci.ubcs</groupId> + <artifactId>ubcs-user-api</artifactId> + <version>3.0.1.RELEASE</version> + <scope>compile</scope> + </dependency> </dependencies> </project> diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretClient.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretClient.java new file mode 100644 index 0000000..0241c11 --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretClient.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package com.vci.ubcs.omd.feign; + +import com.vci.ubcs.omd.entity.Enum; +import com.vci.ubcs.omd.entity.EnumItem; +import com.vci.ubcs.omd.vo.EnumVO; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.system.user.vo.UserVO; +import io.swagger.models.auth.In; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.BladePage; +import org.springblade.core.tool.api.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +/** + * 鏋氫妇瀹氫箟 Feign鎺ュ彛绫� + * + * @author yuxc + * @since 2023-05-08 + */ +@FeignClient( + value = AppConstant.APPLICATION_NAME_OMD, + fallback = IWebSecretFallback.class +) +public interface IWebSecretClient { + + String API_PREFIX = "/client"; + String MINUSER = API_PREFIX + "/secret/min-user"; + String MINDATA = API_PREFIX + "/secret/min-data"; + String MINIP = API_PREFIX + "/secret/min-ip"; + String USER = API_PREFIX + "/secret/user"; + String USERVO = API_PREFIX + "/secret/uservo"; + String CHECKDATA = API_PREFIX + "/secret/check-data"; + String CHECKUSERDATA = API_PREFIX + "/secret/chec-user-data"; + String CHECKUSERIDDATA = API_PREFIX + "/secret/chec-userid-data"; + String CHECKVO = API_PREFIX + "/secret/checkvo"; + String IP = API_PREFIX + "/secret/ip"; + String IPUSER = API_PREFIX + "/secret/ip-user"; + String IPSECRET = API_PREFIX + "/secret/ip-secret"; + String IPUSERID = API_PREFIX + "/secret/ip-userid"; + String IPUSERVO = API_PREFIX + "/secret/ip-uservo"; + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇鐨勬渶灏忓�� + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @GetMapping(MINUSER) + R<Integer> getMinUserSecret() throws VciBaseException; + + /** + * 鑾峰彇鏁版嵁瀵嗙骇鐨勯粯璁ゅ�� + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @GetMapping(MINDATA) + R<Integer> getMinDataSecret() throws VciBaseException; + + /** + * 鑾峰彇IP瀵嗙骇鐨勯粯璁ゅ�� + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @GetMapping(MINIP) + R<Integer> getMinIpSecret() throws VciBaseException; + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇 + * @param userId 鐢ㄦ埛涓婚敭 + * @return 鐢ㄦ埛鐨勫瘑绾� + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + @GetMapping(USER) + R<Integer> getUserSecret(@RequestParam("userId") String userId) throws VciBaseException ; + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇 + * @param userVO 鐢ㄦ埛鐨勬樉绀哄璞� + * @return 鐢ㄦ埛鐨勫瘑绾� + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + @GetMapping(USERVO) + R<Integer> getUserSecret(@RequestBody UserVO userVO) throws VciBaseException; + + /** + * 鏍¢獙褰撳墠鐢ㄦ埛鏄惁鏈夋潈闄愯闂暟鎹� + * @param secret 鏁版嵁鐨勫瘑绾� + * @return true琛ㄧず鍏佽璁块棶 + */ + @GetMapping(CHECKDATA) + R<Boolean> checkDataSecret(@RequestParam("secret") int secret); + + /** + * 鏍¢獙鐢ㄦ埛鐨勫瘑绾ф槸鍚︽槸鍚︽湁鏉冮檺璁块棶鏁版嵁 + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userSecret 鐢ㄦ埛瀵嗙骇 + * @return true琛ㄧず鍏佽璁块棶 + */ + @GetMapping(CHECKUSERDATA) + R<Boolean> checkDataSecret(@RequestParam("secret") int secret, @RequestParam("userSecret") int userSecret) ; + + /** + * 鏍规嵁鐢ㄦ埛鍚嶆潵鏍¢獙鏁版嵁瀵嗙骇 + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userId 鐢ㄦ埛鍚� + * @return true琛ㄧず鍏佽璁块棶 + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + @GetMapping(CHECKUSERIDDATA) + R<Boolean> checkDataSecret(@RequestParam("secret") int secret, @RequestParam("userId") String userId) throws VciBaseException; + + /** + * 鏍规嵁鐢ㄦ埛瀵硅薄鏉ユ牎楠屾暟鎹瘑绾� + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userVO 鐢ㄦ埛鐨勬樉绀哄璞� + * @return true琛ㄧず鍏佽璁块棶 + */ + @GetMapping(CHECKVO) + R<Boolean> checkDataSecret(@RequestParam("secret") int secret,@RequestBody UserVO userVO) ; + + /** + * 鑾峰彇IP鍦板潃鐨勫瘑绾� + * @param ip ip鍦板潃 + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + @GetMapping(IP) + R<Integer> getIpSecret(@RequestParam("ip") String ip) throws VciBaseException; + /** + * 妫�鏌ユ満鍣ㄥ瘑绾� + * @param ipSecret 鏈哄櫒瀵嗙骇 + * @param userSecret 鐢ㄦ埛鐨勫瘑绾� + * @return 瀵嗙骇鐨勫�� + */ + @GetMapping(IPUSER) + R<Boolean> checkIpSecret(@RequestParam("ipSecret") int ipSecret, @RequestParam("userSecret") int userSecret); + + /** + * 妫�鏌ュ綋鍓嶇敤鎴锋槸鍚︾鍚堟満鍣ㄥ瘑绾� + * @param ipSecret 鏈哄櫒瀵嗙骇 + * @return true琛ㄧず鍏佽璁块棶 + */ + @GetMapping(IPSECRET) + R<Boolean> checkIpSecret(@RequestParam("ipSecret") int ipSecret) ; + + /** + * 鏍¢獙鎸囧畾ip鍜岀敤鎴锋槸鍚︾鍚堟満鍣ㄥ瘑绾� + * @param ip ip鍦板潃 + * @param userId 鐢ㄦ埛鍚� + * @return true琛ㄧず鍏佽璁块棶 + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + @GetMapping(IPUSERID) + R<Boolean> checkIpSecret(@RequestParam("ip") String ip, @RequestParam("userId") String userId) throws VciBaseException; + + /** + * 鏍¢獙鎸囧畾IP鍜岀敤鎴峰璞$鍚堟満鍣ㄥ瘑绾� + * @param ip ip鍦板潃 + * @param userVO 鐢ㄦ埛瀵硅薄 + * @return true琛ㄧず鍏佽璁块棶 + */ + @GetMapping(IPUSERVO) + R<Boolean> checkIpSecret(@RequestParam("ip") String ip,@RequestBody UserVO userVO) ; +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretFallback.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretFallback.java new file mode 100644 index 0000000..f63660c --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/feign/IWebSecretFallback.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package com.vci.ubcs.omd.feign; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.system.user.vo.UserVO; +import org.springblade.core.tool.api.R; +import org.springframework.stereotype.Component; + +/** + * Feign澶辫触閰嶇疆 + * + * @author Chill + */ +@Component +public class IWebSecretFallback implements IWebSecretClient { + + + @Override + public R<Integer> getMinUserSecret() throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Integer> getMinDataSecret() throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Integer> getMinIpSecret() throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Integer> getUserSecret(String userId) throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Integer> getUserSecret(UserVO userVO) throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkDataSecret(int secret) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkDataSecret(int secret, int userSecret) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkDataSecret(int secret, String userId) throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkDataSecret(int secret, UserVO userVO) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Integer> getIpSecret(String ip) throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkIpSecret(int ipSecret, int userSecret) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkIpSecret(int ipSecret) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkIpSecret(String ip, String userId) throws VciBaseException { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } + + @Override + public R<Boolean> checkIpSecret(String ip, UserVO userVO) { + return R.fail("鑾峰彇鏁版嵁澶辫触"); + } +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/utils/VciOmdUtil.java b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/utils/VciOmdUtil.java new file mode 100644 index 0000000..e681dc8 --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-omd-api/src/main/java/com/vci/ubcs/omd/utils/VciOmdUtil.java @@ -0,0 +1,25 @@ +package com.vci.ubcs.omd.utils; + +import com.vci.ubcs.omd.vo.EnumVO; +import com.vci.ubcs.starter.web.pagemodel.KeyValue; + +import java.util.ArrayList; +import java.util.List; + +public class VciOmdUtil { + /** + * 灏哃ist<EnumVO> 杞崲涓篕eyValue 绫诲瀷 + * @param enums 鏋氫妇闆嗗悎 + * @return KeyValue闆嗗悎 + */ + public static List<KeyValue> enumsToListKeyVale(List<EnumVO> enums) { + List<KeyValue> keyValues = new ArrayList<>(); + for (EnumVO anEnum : enums) { + KeyValue keyValue = new KeyValue(); + keyValue.setKey(anEnum.getItemName()); + keyValue.setValue(anEnum.getItemValue()); + keyValues.add(keyValue); + } + return keyValues; + } +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/FrameWorkBusLangCodeConstant.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/FrameWorkBusLangCodeConstant.java new file mode 100644 index 0000000..4396f43 --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/constant/FrameWorkBusLangCodeConstant.java @@ -0,0 +1,519 @@ +package com.vci.ubcs.starter.web.constant; + +/** + * 鍩虹妗嗘灦涓笟鍔¢儴鍒嗙殑澶氳瑷�浠g爜 + * @author weidy + * @date 2020/4/25 + */ +public class FrameWorkBusLangCodeConstant { + + //鐧婚檰閮ㄥ垎鐨� + /** + * 鐢ㄦ埛宸茬粡鐧诲綍 + */ + public static final String USER_IS_LOGINED = "userIsLogined"; + + /** + * 鐢ㄦ埛娌℃湁鎵惧埌 + */ + public static final String USER_NOT_FOUND = "userNotFound"; + + /** + * 鐢ㄦ埛宸茬粡鍋滅敤 + */ + public static final String USER_IS_DISABLED = "userIsDisabled"; + + /** + * 鐢ㄦ埛宸茬粡琚攣瀹� + */ + public static final String USER_IS_LOCK = "userIsLocked"; + + /** + * 鐢ㄦ埛宸茬粡瓒呰繃澶辨晥鏃堕棿 + */ + public static final String USER_MORE_THAN_DISABLE_DATE = "moreDisableDate"; + + /** + * 鐢ㄦ埛瀵嗙爜閿欒琚攣瀹� + */ + public static final String USER_PWD_LOCK = "userPwdErrorLock"; + + /** + * 鐢ㄦ埛瀵嗙爜涓嶇浉绛� + */ + public static final String USER_PWD_NOT_EQUAL = "userPwdNotEqual"; + + + //瀵嗙爜鐩稿叧 + + /** + * 纭瀵嗙爜涓嶇浉鍚� + */ + public static final String CHANGE_PWD_NOT_EQUAL="changePwdNotEqual"; + + /** + * 娌℃湁瀵嗙爜绛栫暐 + */ + public static final String HAS_NOT_PWD_STRATEGY="hasNotPasswordStrategy"; + + /** + * 瀵嗙爜瀹夊叏绛栫暐鏈壘鍒� + */ + public static final String PASSWORD_STRATEGY_NOT_FOUND = "passwordStrategyNotFound"; + + /** + * 瀵嗙爜鎵�闇�瀛楃绫诲瀷涓虹┖ + */ + public static final String REQUIRE_CHAR_TYPE_NULL = "requireCharTypeNull"; + + /** + * 瀵嗙爜鐨勫瓧绗︾被鍨嬩笉绗﹀悎瑕佹眰 + */ + public static final String REQUIRE_CHAR_TYPE_NOT_EXIST = "requireCharTypeNotExist"; + + /** + * 瀵嗙爜澶嶆潅搴︿笉绗﹀悎瑕佹眰 + */ + public static final String LESS_CHAR_TYPE = "lessCharType"; + + /** + * 瀵嗙爜涓嶅寘鍚皬鍐欏瓧姣� + */ + public static final String NOT_HAS_LOW_LETTER= "notHasLowLetter"; + + /** + * 瀵嗙爜涓嶅寘鍚暟瀛� + */ + public static final String NOT_HAS_NUMBER = "notHasNumber"; + + /** + * 瀵嗙爜涓嶅寘鍚壒娈婂瓧姣� + */ + public static final String NOT_HAS_SPECIAL ="notHasSpecial"; + + /** + * 瀵嗙爜涓嶇鍚堟渶灏忛暱搴﹁姹� + */ + public static final String LESS_MIN_LENGTH = "lessMinLength"; + + /** + * 瀵嗙爜涓嶇鍚堟渶澶ч暱搴﹁姹� + */ + public static final String MORE_MAX_lENGTH ="moreMaxLength"; + /** + * 瀵嗙爜鍗冲皢杩囨湡 + */ + public static final String PASSWORD_REMAIN_DAY = "passwordRemainDay"; + + //缁勭粐 + + + //閮ㄩ棬 + + //鑱屽姟 + + + //鑱岀骇 + + //鐢ㄦ埛 + + //瑙掕壊 + + //鏉冮檺 + + //鍦板尯鍒嗙被 + + //鍦扮偣 + + //鑱旂郴浜� + + //鐗╂枡鍩烘湰淇℃伅 + + //鐗╂枡 + + /** + * 鐗╂枡鐨勫簭鍒楀彿 + */ + public static final String BD_MATERIAL_SERIAL_NUMBER_REPEAT = "materialSerialNumberRepeat"; + + //搴撴埧绫诲瀷 + + /** + * 搴撴埧鍒嗙被鐨勫唴閮ㄦ爣璇嗕笉鍏ㄦ槸鑻辨枃 + */ + public static final String BD_WAREHOUSE_CLASSIFY_ID_NOT_LETTER = "warehouseClassifyIdNotLetter"; + + /** + * 鍥犱负宸茬粡鏈夊瓨鍦ㄤ娇鐢ㄥ綋鍓嶅垎绫荤殑搴撴埧锛屾墍浠ュ彧鏄慨鏀瑰悕绉帮紝鎻忚堪鍜屼笂绾у垎绫� + */ + public static final String BD_WAREHOUSE_CLASSIFY_LINK_BY_WAREHOUSE ="warehouseClassifyLinkByWarehouse" ; + + /** + * 涓庝笂绾у簱鎴垮熀鏈垎绫荤殑搴撴埧绫诲瀷涓嶇浉鍚� + */ + public static final String BD_WAREHOUSE_CLASSIFY_TYPE_NOT_EQUAL_PARENT = "warehouseClassifyParentNotEqualType"; + + //搴撴埧绠$悊 + + /** + * 涓庝笂绾у簱鎴跨殑搴撴埧鍒嗙被涓嶇浉鍚� + */ + public static final String BD_WAREHOUSE_PARENT_WAREHOUSE_NOT_EQUAL_CLASSIFY = "warehouseParentNotEqualClassify"; + + /** + * 鏈夋暟鎹笉鑳戒慨鏀瑰簱鎴跨殑鎵�灞炲熀鏈垎绫� + */ + public static final String BD_WAREHOUSE_HAS_DATA_NOT_EDIT_CLASSIFY = "warehouseHasDataNotEditClassify"; + + /** + * 娌℃湁浼犻�掔敤鎴风殑涓婚敭锛屼笉鑳借缃鐞嗗憳 + */ + public static final String BD_WAREHOUSE_ADMIN_USEROID_NOT_HAS = "warehouseAdminUserOidNotHas"; + + /** + * 涓哄簱鎴胯缃鐞嗗憳鎴愬姛 + */ + public static final String BD_WAREHOUSE_ADMIN_LINK_SUCCESS = "warehouseAdminLinkSuccess"; + + /** + * 搴撴埧鍒嗙被鐨勪富閿笉瀛樺湪 + */ + public static final String BD_WAREHOUSE_CLASSIFY_OID_NOT_EXIST = "warehouseClassifyOidNotExsit"; + + /** + * 褰撳墠鐢ㄦ埛娌℃湁搴撴埧鐨勬潈闄� + */ + public static final String BD_WAREHOUSE_NOT_RIGHT = "warehouseNotRight"; + + + //璐т綅 + + /** + * 涓婄骇涓嶆槸涓�涓揣鏋� + */ + public static final String BD_GOODS_LOCATION_PARENT_NOT_SHELF = "goodsLocationParentNotShelf"; + + //Feign + + /** + * 褰撳墠鐢ㄦ埛娌℃湁瀵硅搴撴埧鐨勬搷浣滄潈闄� + */ + public static final String BD_FEIGN_WAREHOUSEADMIN_NOT_PERMISSION = "feignCheckWareHouseAdminPermissions"; + + //璁¢噺鍗曚綅 + /** + * 璁¢噺鍗曚綅涓嶅瓨鍦� + */ + public static final String UNIT_NOT_EXIST_BY_IDS = "unitNotExistByIds"; + + /** + * 娣诲姞鎴愬姛 + */ + public static final String ADD_SUCCESS ="addSuccess"; + + /** + * 娣诲姞澶辫触 + */ + public static final String ADD_FAIL = "addFailInDB"; + + /** + * 淇敼鎴愬姛 + */ + public static final String EDIT_SUCCESS = "editSuccess"; + + /** + * 淇敼澶辫触 + */ + public static final String EDIT_FAIL = "editFail"; + + /** + * 鍒犻櫎鎴愬姛 + */ + public static final String DELETE_SUCCESS = "deleteSuccess"; + + /** + * 绾ц仈鍒犻櫎鎴愬姛 + */ + public static final String DELETE_SUCCESS_CASCADE = "deleteSuccessCascade"; + + /** + * 鍒犻櫎澶辫触 + */ + public static final String DELETE_FAIL = "deleteFail"; + + /** + * 鍚敤鎴愬姛 + */ + public static final String ENABLE_SUCCESS ="enableSuccess"; + + /** + * 閿佸畾鎴愬姛 + */ + public static final String LOCK_SUCCESS = "lockSuccess"; + + /** + * 閿佸畾澶辫触 + */ + public static final String LOCK_FAIL = "lockFail"; + + /** + * 瑙i攣鎴愬姛 + */ + public static final String UNLOCK_SUCCESS = "unlockSuccess"; + + /** + * 瑙i攣澶辫触 + */ + public static final String UNLOCK_FAIL = "unlockFail"; + + /** + * 绾ц仈鍚敤鎴愬姛 + */ + public static final String ENABLE_SUCCESS_CASCADE = "enableSuccessCascade"; + + /** + * 鍚敤澶辫触 + */ + public static final String ENABLE_FAIL = "enableFail"; + + /** + * 鍋滅敤鎴愬姛 + */ + public static final String DISABLE_SUCCESS = "disableSuccess"; + + /** + * 绾ц仈鍋滅敤鎴愬姛 + */ + public static final String DISABLE_SUCCESS_CASCADE = "disableSuccessCascade"; + + /** + * 鍋滅敤澶辫触 + */ + public static final String DISABLE_FAIL = "disableFail"; + + /** + * 鍗囩増鏈彿鎴愬姛 + */ + public static final String UP_REVISION_SUCCESS = "dataUpRevisionSuccess"; + + /** + * 鍗囩増鏈彿澶辫触 + */ + public static final String UP_REVISION_FAIL = "dataUpRevisionFail"; + + /** + * 鍗囩増娆℃垚鍔� + */ + public static final String UP_VERSION_SUCCESS = "dataUpVersionSuccess"; + + /** + * 鍗囩増娆″け璐� + */ + public static final String UP_VERSION_FAIL = "dataUpVersionFail"; + + /** + * 鎻愪氦鎴愬姛 + */ + public static final String SUBMIT_SUCCESS= "submitSuccess"; + + /** + * 鎻愪氦澶辫触 + */ + public static final String SUBMIR_FAIL = "submitFail"; + + /** + * 鍙戝竷鎴愬姛 + */ + public static final String RELEASE_SUCCESS = "releaseSuccess"; + + /** + * 鍙戝竷澶辫触 + */ + public static final String RELEASE_FAIL = "releaseFail"; + + /** + * 鐗堟湰鍙烽噸澶� + */ + public static final String REVISION_REPEAT = "revisionRepeat"; + + /** + * 鐗堟鍙烽噸澶� + */ + public static final String VERSION_REPEAT= "versionRepeat"; + + /** + * 鏍规嵁涓婚敭鏌ヨ鏁版嵁涓嶅瓨鍦� + */ + public static final String DATA_OID_NOT_EXIST = "dataOidNotExist"; + + /** + * 鏍规嵁涓婚敭鏌ヨ鐨勬暟鎹笉瀛樺湪 + */ + public static final String DATA_ID_NOT_EXIST = "dataIdNotExist"; + + /** + * 鏍规嵁鍚嶇О鏌ヨ鐨勬暟鎹笉瀛樺湪 + */ + public static final String DATA_NAME_NOT_EXIST = "dataNameNotExist"; + + /** + * 灞炴�у�奸噸澶� + */ + public static final String DATA_ATTR_REPEAT = "dataRepeat"; + + /** + * 鑰佺増鏈殑鏁版嵁涓嶅瓨鍦� + */ + public static final String OLD_REVISION_DATA_NOT_EXIST = "oldRevsionDataNotExist"; + + /** + * 涓婄骇涓婚敭瀹為檯鏄綋鍓嶈妭鐐圭殑涓嬬骇鑺傜偣锛屼細寮曡捣姝诲惊鐜� + */ + public static final String PARENT_OID_IS_CHILD ="parentIsChild"; + + /** + * 鏁版嵁琚紩鐢紝涓嶅厑璁稿垹闄� + */ + public static final String DATA_LINKED_NOT_DELETE = "dataLinkedNotDelete"; + + /** + * 鏁版嵁鐨勫瓙鑺傜偣涔熻寮曠敤锛屼笉鍏佽鍒犻櫎 + */ + public static final String DATA_CASCADE_LINKED_NOT_DELETE = "dataCascadeLinkedNotDelete"; + + /** + * 鏁版嵁琚紩鐢紝涓嶅厑璁镐慨鏀� + */ + public static final String DATA_LINKED_NOT_EDIT ="dataLinkedNotEdit"; + + /** + * 鏁版嵁涓嶅紩鐢紝涓嶅厑璁镐慨鏀规煇涓睘鎬� + */ + public static final String DATA_LINKED_NOT_EDIT_ATTR="dataLinkedNotEditAttr"; + + /** + * 涓婄骇妗f涓嶅瓨鍦� + */ + public static final String DATA_PARENT_NOT_EXIST = "parentNotExist"; + + /** + * 鍒嗙被鏁版嵁涓嶅瓨鍦� + */ + public static final String DATA_CLASSIFY_NOT_EXIST = "classifyNotExist"; + + /** + * 褰撳墠鐘舵�佷笅涓嶅厑璁镐慨鏀规暟鎹� + */ + public static final String LCSTATUS_CAN_NOT_EDIT = "lcStatusCannotEditData"; + + /** + * 褰撳墠鐘舵�佷笅涓嶅厑璁稿垹闄ゆ暟鎹� + */ + public static final String LCSTATUS_CAN_NOT_DELETE = "lcStatusCannotDeleteData"; + + /** + * 瀵煎叆鎴愬姛 + */ + public static final String IMPORT_SUCCESS = "importSuccess"; + + /** + * 瀵煎叆澶辫触 + */ + public static final String IMPORT_FAIL = "importFail"; + + /** + * 瀵煎叆鐨勬ā鏉挎枃浠朵笉瀛樺湪 + */ + public static final String IMPORT_TEMPLATE_FILE_NOT_FOUND = "importTemplateFileNotFound"; + + /** + * 瀵煎嚭鎴愬姛 + */ + public static final String EXPORT_SUCCESS = "exportSuccess"; + + /** + * 瀵煎嚭澶辫触 + */ + public static final String EXPORT_FAIL = "exportFail"; + + /** + * 涓婁紶鎴愬姛 + */ + public static final String UPLOAD_SUCCESS = "uploadSuccess"; + + /** + * 涓婁紶澶辫触 + */ + public static final String UPLOAD_FAIL = "uploadFail"; + + /** + * 涓嬭浇鎴愬姛 + */ + public static final String DOWNLOAD_SUCCESS = "downloadSuccess"; + + /** + * 涓嬭浇澶辫触 + */ + public static final String DOWNLOAD_FAIL = "downloadFail"; + + /** + * 鏂囦欢涓嶅瓨鍦� + */ + public static final String FILE_NOT_EXIST = "fileNotExist"; + + /** + * 瀹℃壒鎴愬姛 + */ + public static final String AUDIT_SUCCESS = "auditSuccess"; + + /** + * 瀹℃壒澶辫触 + */ + public static final String AUDIT_FAIL = "auditFail"; + + /** + * 涓嬪彂鎴愬姛 + */ + public static final String ISSUED_SUCCESS = "issuedSuccess"; + + /** + * 涓嬪彂澶辫触 + */ + public static final String ISSUED_FAIL = "issuedFail"; + + /** + * 鎺ユ敹鎴愬姛 + */ + public static final String RECEIVE_SUCCESS = "receiveSuccess"; + + /** + * 鎺ユ敹澶辫触 + */ + public static final String RECEIVE_FAIL = "receiveFail"; + + /** + * 璁″垝鐨勫埗閫犱緷鎹笉瀛樺湪 + */ + public static final String PLAN_SOURCE_NOT_EXIST = "planSourceNotExist"; + + /** + * 璁″垝鐨勫埗閫犵洰鏍囦笉瀛樺湪 + */ + public static final String PLAN_TARGET_NOT_EXIST = "planTargetNotExist"; + + /** + * 娲惧彂鎴愬姛 + */ + public static final String DISPATCH_SUCCESS = "dispatchSuccess"; + + /** + * 娲惧彂澶辫触 + */ + public static final String DISPATCH_FAIL = "dispatchFail"; + + /** + * 璇ヨ鍒掍笅涓嶅瓨鍦ㄦ淳鍙戣繃鐨勪换鍔� + */ + public static final String DISPATCH_TASK_NOT_EXIST_BY_PLAN = "dispatchTaskNotExistByPlan"; + +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/DataSecretEnum.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/DataSecretEnum.java new file mode 100644 index 0000000..472a7c7 --- /dev/null +++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/web/enumpck/DataSecretEnum.java @@ -0,0 +1,76 @@ +package com.vci.ubcs.starter.web.enumpck; + + +public enum DataSecretEnum implements BaseEnumInt { + NONE(10, "闈炲瘑"), + INNER(15, "鍐呴儴"), + SECRET(20, "绉樺瘑"), + PRIVACY(30, "鏈哄瘑"); + + private int value; + private String text; + + public int getValue() { + return this.value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getText() { + return this.text; + } + + public void setText(String text) { + this.text = text; + } + + private DataSecretEnum(int secret, String secretText) { + this.value = secret; + this.text = secretText; + } + + public static String getSecretText(int secret) { + DataSecretEnum[] var1 = values(); + int var2 = var1.length; + + for(int var3 = 0; var3 < var2; ++var3) { + DataSecretEnum eu = var1[var3]; + if (eu.value == secret) { + return eu.text; + } + } + + return NONE.text; + } + + public static int getSecretValueByText(String text) { + DataSecretEnum[] var1 = values(); + int var2 = var1.length; + + for(int var3 = 0; var3 < var2; ++var3) { + DataSecretEnum eu = var1[var3]; + if (eu.text.equalsIgnoreCase(text)) { + return eu.value; + } + } + + return NONE.value; + } + + public static boolean isValid(int secret) { + DataSecretEnum[] var1 = values(); + int var2 = var1.length; + + for(int var3 = 0; var3 < var2; ++var3) { + DataSecretEnum eu = var1[var3]; + if (eu.value == secret) { + return true; + } + } + + return false; + } +} + diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java index 9280f3a..097b294 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java @@ -24,10 +24,9 @@ import com.vci.ubcs.code.vo.pagemodel.*; import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant; import com.vci.ubcs.omd.entity.BtmTypeAttribute; -import com.vci.ubcs.omd.feign.IAttributeClient; -import com.vci.ubcs.omd.feign.IBtmTypeClient; -import com.vci.ubcs.omd.feign.IEnumClient; -import com.vci.ubcs.omd.feign.IRevisionRuleClient; +import com.vci.ubcs.omd.cache.EnumCache; +import com.vci.ubcs.omd.feign.*; +import com.vci.ubcs.omd.utils.VciOmdUtil; import com.vci.ubcs.omd.vo.BtmTypeAttributeVO; import com.vci.ubcs.omd.vo.BtmTypeVO; import com.vci.ubcs.omd.vo.EnumVO; @@ -108,8 +107,6 @@ @Resource private CodeClstemplateServiceImpl templateService; - @Resource - private IAttributeClient attributeClient; /** * 鐢熸垚缂栫爜鐨勬湇鍔� @@ -127,6 +124,11 @@ */ @Resource ISysClient iSysClient; + /** + * 绯荤粺鐨勬湇鍔� + */ + @Resource + private IWebSecretClient secretService; /** * 鐢ㄦ埛鏈嶅姟 */ @@ -853,9 +855,7 @@ } int secret = VciBaseUtil.getInt(String.valueOf(cbo.getSecretGrade())); - //鍚庣画鐪嬪瘑绾ф湇鍔℃槸鍚﹀彲鐢� -// if (secret == 0 || !secretService.checkDataSecret(secret)) { - if (secret == 0 ) { + if (secret == 0 || !secretService.checkDataSecret(secret).getData()) { Integer userSecret = VciBaseUtil.getCurrentUserSecret(); // cbo.setAttributeValue(SECRET_FIELD, String.valueOf((userSecret == null || userSecret == 0) ? UserSecretEnum.NONE.getValue() : userSecret)); cbo.setSecretGrade(userSecret == null || userSecret == 0 ? UserSecretEnum.NONE.getValue() : userSecret); @@ -1245,8 +1245,8 @@ fieldVO.setComboxKey(fieldVO.getField() + "_data"); } } else { -// List<KeyValue> osEnumItemVOList= enumService.getEnum(attrVO.getEnumId()); -// fieldVO.setData(osEnumItemVOList); + List<KeyValue> osEnumItemVOList= VciOmdUtil.enumsToListKeyVale(EnumCache.getList(attrVO.getEnumId())); + fieldVO.setData(osEnumItemVOList); } } //鐪嬫槸鍚︽湁鍙傜収 @@ -1748,7 +1748,7 @@ if (attrVOMap.keySet().contains("secretgrade")) { Integer userSecret = VciBaseUtil.getCurrentUserSecret(); if (userSecret == null || userSecret == 0) { -// userSecret = secretService.getMinUserSecret(); + userSecret = secretService.getMinUserSecret().getData(); } whereSql += " and ( t.secretGrade <= " + userSecret + ") "; } @@ -2970,12 +2970,11 @@ @Override public MdmUIInfoVO getUIInfoByClassifyOid(String codeClassifyOid, String functionId) { VciBaseUtil.alertNotNull(codeClassifyOid, "涓婚搴撳垎绫讳富閿�"); + MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid)); uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0); if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) { List<Menu> buttonVOS = iSysClient.getMenuButtonByType(uiInfoVO.getTemplateVO().getBtmTypeId()).getData(); - - //鍔熻兘鎸夐挳鏈嶅姟杩樻湭瀹炵幇锛岀瓑瀹炵幇浜嗭紝鍦ㄨ繘琛岃皟鐢� // List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId); // if (operationVOS == null) { // operationVOS = new ArrayList<>(); diff --git a/Source/UBCS/ubcs-service/ubcs-omd/pom.xml b/Source/UBCS/ubcs-service/ubcs-omd/pom.xml index 5b2fc51..43686d4 100644 --- a/Source/UBCS/ubcs-service/ubcs-omd/pom.xml +++ b/Source/UBCS/ubcs-service/ubcs-omd/pom.xml @@ -75,6 +75,12 @@ <version>3.0.1.RELEASE</version> <scope>compile</scope> </dependency> + <dependency> + <groupId>com.vci.ubcs</groupId> + <artifactId>ubcs-user-api</artifactId> + <version>3.0.1.RELEASE</version> + <scope>compile</scope> + </dependency> </dependencies> <build> diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/WebSecretClient.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/WebSecretClient.java new file mode 100644 index 0000000..116f24a --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/feign/WebSecretClient.java @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the dreamlu.net developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: Chill 搴勯獮 (smallchill@163.com) + */ +package com.vci.ubcs.omd.feign; + +import com.vci.ubcs.omd.service.IWebSecretService; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.system.user.vo.UserVO; +import lombok.AllArgsConstructor; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.annotations.ApiIgnore; + + +/** + * 鏋氫妇瀹氫箟 Feign瀹炵幇绫� + * + * @author yuxc + * @since 2023-05-08 + */ +@ApiIgnore() +@RestController +@AllArgsConstructor +public class WebSecretClient implements IWebSecretClient { + + IWebSecretService webSecretService; + + + @Override + public R<Integer> getMinUserSecret() throws VciBaseException { + return R.data(webSecretService.getMinUserSecret()); + } + + @Override + public R<Integer> getMinDataSecret() throws VciBaseException { + return R.data(webSecretService.getMinDataSecret()); + } + + @Override + public R<Integer> getMinIpSecret() throws VciBaseException { + return R.data(webSecretService.getMinIpSecret()); + } + + @Override + public R<Integer> getUserSecret(String userId) throws VciBaseException { + return R.data(webSecretService.getUserSecret(userId)); + } + + @Override + public R<Integer> getUserSecret(UserVO userVO) throws VciBaseException { + return R.data(webSecretService.getUserSecret(userVO)); + } + + @Override + public R<Boolean> checkDataSecret(int secret) { + return R.data(webSecretService.checkDataSecret(secret)); + } + + @Override + public R<Boolean> checkDataSecret(int secret, int userSecret) { + return R.data(webSecretService.checkDataSecret(secret,userSecret)); + } + + @Override + public R<Boolean> checkDataSecret(int secret, String userId) throws VciBaseException { + return R.data(webSecretService.checkDataSecret(secret,userId)); + } + + @Override + public R<Boolean> checkDataSecret(int secret, UserVO userVO) { + return R.data(webSecretService.checkDataSecret(secret,userVO)); + } + + @Override + public R<Integer> getIpSecret(String ip) throws VciBaseException { + return R.data(webSecretService.getIpSecret(ip)); + } + + @Override + public R<Boolean> checkIpSecret(int ipSecret, int userSecret) { + return R.data(webSecretService.checkIpSecret(ipSecret,userSecret)); + } + + @Override + public R<Boolean> checkIpSecret(int ipSecret) { + return R.data(webSecretService.checkIpSecret(ipSecret)); + } + + @Override + public R<Boolean> checkIpSecret(String ip, String userId) throws VciBaseException { + return R.data(webSecretService.checkIpSecret(ip,userId)); + } + + @Override + public R<Boolean> checkIpSecret(String ip, UserVO userVO) { + return R.data(webSecretService.checkIpSecret(ip,userVO)); + } +} diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IWebSecretService.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IWebSecretService.java new file mode 100644 index 0000000..228f575 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/IWebSecretService.java @@ -0,0 +1,120 @@ +package com.vci.ubcs.omd.service; + +import com.vci.ubcs.code.vo.pagemodel.SmUserVO; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.system.user.vo.UserVO; + +/** + * web绔殑瀵嗙骇鏈嶅姟 + */ +public interface IWebSecretService { + + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇鐨勬渶灏忓�� + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + int getMinUserSecret() throws VciBaseException; + + /** + * 鑾峰彇鏁版嵁瀵嗙骇鐨勯粯璁ゅ�� + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + int getMinDataSecret() throws VciBaseException; + + /** + * 鑾峰彇IP瀵嗙骇鐨勯粯璁ゅ�� + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + int getMinIpSecret() throws VciBaseException; + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇 + * @param userId 鐢ㄦ埛涓婚敭 + * @return 鐢ㄦ埛鐨勫瘑绾� + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + int getUserSecret(String userId) throws VciBaseException ; + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇 + * @param userVO 鐢ㄦ埛鐨勬樉绀哄璞� + * @return 鐢ㄦ埛鐨勫瘑绾� + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + int getUserSecret(UserVO userVO) throws VciBaseException; + + /** + * 鏍¢獙褰撳墠鐢ㄦ埛鏄惁鏈夋潈闄愯闂暟鎹� + * @param secret 鏁版嵁鐨勫瘑绾� + * @return true琛ㄧず鍏佽璁块棶 + */ + boolean checkDataSecret(int secret); + + /** + * 鏍¢獙鐢ㄦ埛鐨勫瘑绾ф槸鍚︽槸鍚︽湁鏉冮檺璁块棶鏁版嵁 + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userSecret 鐢ㄦ埛瀵嗙骇 + * @return true琛ㄧず鍏佽璁块棶 + */ + boolean checkDataSecret(int secret, int userSecret) ; + + /** + * 鏍规嵁鐢ㄦ埛鍚嶆潵鏍¢獙鏁版嵁瀵嗙骇 + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userId 鐢ㄦ埛鍚� + * @return true琛ㄧず鍏佽璁块棶 + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + boolean checkDataSecret(int secret, String userId) throws VciBaseException; + + /** + * 鏍规嵁鐢ㄦ埛瀵硅薄鏉ユ牎楠屾暟鎹瘑绾� + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userVO 鐢ㄦ埛鐨勬樉绀哄璞� + * @return true琛ㄧず鍏佽璁块棶 + */ + boolean checkDataSecret(int secret, UserVO userVO) ; + + /** + * 鑾峰彇IP鍦板潃鐨勫瘑绾� + * @param ip ip鍦板潃 + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + int getIpSecret(String ip) throws VciBaseException; + /** + * 妫�鏌ユ満鍣ㄥ瘑绾� + * @param ipSecret 鏈哄櫒瀵嗙骇 + * @param userSecret 鐢ㄦ埛鐨勫瘑绾� + * @return 瀵嗙骇鐨勫�� + */ + boolean checkIpSecret(int ipSecret, int userSecret); + + /** + * 妫�鏌ュ綋鍓嶇敤鎴锋槸鍚︾鍚堟満鍣ㄥ瘑绾� + * @param ipSecret 鏈哄櫒瀵嗙骇 + * @return true琛ㄧず鍏佽璁块棶 + */ + boolean checkIpSecret(int ipSecret) ; + + /** + * 鏍¢獙鎸囧畾ip鍜岀敤鎴锋槸鍚︾鍚堟満鍣ㄥ瘑绾� + * @param ip ip鍦板潃 + * @param userId 鐢ㄦ埛鍚� + * @return true琛ㄧず鍏佽璁块棶 + * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉瀛樺湪浼氭姏鍑哄紓甯� + */ + boolean checkIpSecret(String ip, String userId) throws VciBaseException; + + /** + * 鏍¢獙鎸囧畾IP鍜岀敤鎴峰璞$鍚堟満鍣ㄥ瘑绾� + * @param ip ip鍦板潃 + * @param userVO 鐢ㄦ埛瀵硅薄 + * @return true琛ㄧず鍏佽璁块棶 + */ + boolean checkIpSecret(String ip, UserVO userVO) ; +} diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/WebSecretServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/WebSecretServiceImpl.java new file mode 100644 index 0000000..0d8bbe9 --- /dev/null +++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/WebSecretServiceImpl.java @@ -0,0 +1,376 @@ +package com.vci.ubcs.omd.service.impl; + +import com.vci.ubcs.common.utils.CommonUtil; +import com.vci.ubcs.omd.cache.EnumCache; +import com.vci.ubcs.omd.service.IWebSecretService; +import com.vci.ubcs.omd.utils.VciOmdUtil; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.web.constant.EnumIdConstant; +import com.vci.ubcs.starter.web.enumpck.DataSecretEnum; +import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; +import com.vci.ubcs.starter.web.pagemodel.KeyValue; +import com.vci.ubcs.starter.web.util.VciBaseUtil; +import com.vci.ubcs.starter.web.util.WebUtil; +import com.vci.ubcs.system.user.entity.User; +import com.vci.ubcs.system.user.feign.IUserClient; +import com.vci.ubcs.system.user.vo.UserVO; +import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.api.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.vci.ubcs.starter.web.constant.FrameWorkBusLangCodeConstant.DATA_ID_NOT_EXIST; + +/** + * 瀵嗙骇鐨勬湇鍔� + * @author weidy + * @date 2021-2-16 + */ +@Service +public class WebSecretServiceImpl implements IWebSecretService { + + + /** + * 鐢ㄦ埛鏌ヨ鏈嶅姟 + */ + @Autowired + private IUserClient userClient; + + /** + * 涓氬姟绫诲瀷鏈嶅姟 + */ +// @Autowired +// private WebBoServiceI boService; + + /** + * 灞炴�х殑瀵硅薄 + */ +// @Autowired +// private WebProperties properties; + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇鐨勬渶灏忓�� + * + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public int getMinUserSecret() throws VciBaseException { + List<KeyValue> enumKeyValueList = VciOmdUtil.enumsToListKeyVale(EnumCache.getList(EnumIdConstant.USERSECRET_ENUMNAME)); +// enumService.getEnum(EnumIdConstant.USERSECRET_ENUMNAME); + //閲嶆柊璁剧疆鏋氫妇鐨勫�� + if(!CollectionUtils.isEmpty(enumKeyValueList)){ + List<KeyValue> keyValues = enumKeyValueList.stream().sorted((a, b) -> ((Integer) VciBaseUtil.getInt(a.getKey())).compareTo((Integer) VciBaseUtil.getInt(b.getKey()))).collect(Collectors.toList()); + for(int i = 0 ; i < keyValues.size() ; i++){ + KeyValue keyValue = keyValues.get(i); + if(i ==0){ + UserSecretEnum.NONE.setValue(VciBaseUtil.getInt(keyValue.getKey())); + UserSecretEnum.NONE.setText(keyValue.getValue()); + }else if(i ==1){ + UserSecretEnum.SECRET.setValue(VciBaseUtil.getInt(keyValue.getKey())); + UserSecretEnum.SECRET.setText(keyValue.getValue()); + }else{ + UserSecretEnum.PRIVACY.setValue(VciBaseUtil.getInt(keyValue.getKey())); + UserSecretEnum.PRIVACY.setText(keyValue.getValue()); + } + } + } + return getMinValueInKeyValueList(enumKeyValueList,UserSecretEnum.NONE.getValue()); + } + + /** + * 鑾峰彇鏋氫妇涓殑鏈�灏忓�� + * @param enumKeyValueList 鏋氫妇K-V鍒楄〃 + * @param minValue 鏈�灏忓�� + * @return 鏈�灏忓�� + */ + private int getMinValueInKeyValueList( List<KeyValue> enumKeyValueList,int minValue){ + for(KeyValue ec : enumKeyValueList){ + int value = VciBaseUtil.getInt(ec.getKey()); + if(minValue> value){ + minValue = value; + } + } + return minValue; + } + + /** + * 鑾峰彇鏁版嵁瀵嗙骇鐨勯粯璁ゅ�� + * + * @return 鏈�灏忓瘑绾х殑鍊� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public int getMinDataSecret() throws VciBaseException { + List<KeyValue> enumKeyValueList = VciOmdUtil.enumsToListKeyVale(EnumCache.getList(EnumIdConstant.DATASECRET_ENUMNAME)); + //閲嶆柊璁剧疆鏋氫妇鐨勫�� + if(!CollectionUtils.isEmpty(enumKeyValueList)){ + List<KeyValue> keyValues = enumKeyValueList.stream().sorted((a, b) -> ((Integer) VciBaseUtil.getInt(a.getKey())).compareTo((Integer) VciBaseUtil.getInt(b.getKey()))).collect(Collectors.toList()); + for(int i = 0 ; i < keyValues.size() ; i++){ + KeyValue keyValue = keyValues.get(i); + if(i ==0){ + DataSecretEnum.NONE.setValue(VciBaseUtil.getInt(keyValue.getKey())); + DataSecretEnum.NONE.setText(keyValue.getValue()); + }else if(i ==1){ + DataSecretEnum.INNER.setValue(VciBaseUtil.getInt(keyValue.getKey())); + DataSecretEnum.INNER.setText(keyValue.getValue()); + }else if(i ==2){ + DataSecretEnum.SECRET.setValue(VciBaseUtil.getInt(keyValue.getKey())); + DataSecretEnum.SECRET.setText(keyValue.getValue()); + }else{ + DataSecretEnum.PRIVACY.setValue(VciBaseUtil.getInt(keyValue.getKey())); + DataSecretEnum.PRIVACY.setText(keyValue.getValue()); + } + } + } + return getMinValueInKeyValueList(enumKeyValueList,DataSecretEnum.NONE.getValue()); + } + + /** + * 鑾峰彇IP瀵嗙骇鐨勯粯璁ゅ�� + * + * @return 鏈�灏忓瘑绾х殑鍊� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public int getMinIpSecret() throws VciBaseException { + List<KeyValue> enumKeyValueList = VciOmdUtil.enumsToListKeyVale(EnumCache.getList(EnumIdConstant.IPSECRET_ENUMNAME)); + return getMinValueInKeyValueList(enumKeyValueList,10); + } + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇 + * + * @param userId 鐢ㄦ埛鍚� + * @return 鐢ㄦ埛瀵嗙骇鐨勫�硷紝濡傛灉娌℃湁瀵嗙骇锛岄粯璁や负鏈�灏忓瘑绾� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public int getUserSecret(String userId) throws VciBaseException { + WebUtil.alertNotNull(userId,"鐢ㄦ埛鍚�"); + R<User> userR = userClient.userInfoById(Long.valueOf(userId)); + if(userR.getData() == null){ + throw new VciBaseException(DATA_ID_NOT_EXIST,new String[]{userId}); + } + return userR.getData().getSecretGrade()==null?getMinUserSecret():Integer.parseInt(userR.getData().getSecretGrade()); + } + + /** + * 鑾峰彇鐢ㄦ埛瀵嗙骇 + * + * @param userVO 鐢ㄦ埛鐨勫璞� + * @return 瀵嗙骇锛屼笉瀛樺湪鐨勬椂鍊欎负鏈�浣庡瘑绾� + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public int getUserSecret(UserVO userVO) throws VciBaseException { + if(userVO == null){ + throw new VciBaseException(DATA_ID_NOT_EXIST,new String[0]); + } + return userVO.getSecretGrade()==null?getMinUserSecret(): Integer.valueOf(userVO.getSecretGrade()); + } + + + /** + * 鏍¢獙褰撳墠鐢ㄦ埛鏄惁鏈夋潈闄愯闂暟鎹� + * + * @param secret 鏁版嵁鐨勫瘑绾� + * @return true琛ㄧず鍙互璁块棶 + */ + @Override + public boolean checkDataSecret(int secret) { + return checkDataSecret(secret,WebUtil.getCurrentUserSecret()==null?getMinUserSecret():WebUtil.getCurrentUserSecret()); + } + + /** + * 鑾峰彇鏁版嵁鏉冮檺 + * @param secret 鏁版嵁鐨勫瘑绾х殑鍊� + * @return 鏁版嵁瀵嗙骇 + */ + private DataSecretEnum dataSecretForValue(int secret){ + for(DataSecretEnum de : DataSecretEnum.values()){ + if(de.getValue() == secret){ + return de; + } + } + return null; + } + + /** + * 鐢ㄦ埛鐨勫瘑绾� + * @param userSecret 鐢ㄦ埛鐨勫瘑绾� + * @return 瀵嗙骇鐨勫璞� + */ + private UserSecretEnum userSecretForValue(int userSecret){ + for(UserSecretEnum ue : UserSecretEnum.values()){ + if(ue.getValue() == userSecret){ + return ue; + } + } + return null; + } + + /** + * 鏍¢獙鐢ㄦ埛鐨勫瘑绾ф槸鍚︽槸鍚︽湁鏉冮檺璁块棶鏁版嵁 + * + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userSecret 鐢ㄦ埛瀵嗙骇 + * @return true琛ㄧず鍙互璁块棶 + */ + @Override + public boolean checkDataSecret(int secret, int userSecret){ + //鍙兘琚浆鎹簡涓� + DataSecretEnum de = dataSecretForValue(secret); + if(de == null){ + de = DataSecretEnum.NONE; + } + UserSecretEnum ue = userSecretForValue(userSecret); + if(ue == null){ + ue = UserSecretEnum.NONE; + } + int reaySecret = 0; + switch (de){ + case NONE: + reaySecret=1; + break; + case INNER: + reaySecret = 2; + break; + case SECRET: + reaySecret = 3; + break; + default: + reaySecret = 4; + break; + } + + int userReaySecret = 0; + switch (ue){ + case NONE: + userReaySecret = 1; + break; + case SECRET: + userReaySecret = 3; + break; + default: + userReaySecret = 4; + break; + } + if(reaySecret> userReaySecret){ + return false; + }else{ + return true; + } + } + + /** + * 鏍规嵁鐢ㄦ埛鍚嶆潵鏍¢獙鏁版嵁瀵嗙骇 + * + * @param secret 鏁版嵁鐨勫瘑绾� + * @param userId 鐢ㄦ埛鍚� + * @return true琛ㄧず鍙互璁块棶 + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public boolean checkDataSecret(int secret, String userId) throws VciBaseException { + return checkDataSecret(secret,getUserSecret(userId)); + } + + /** + * 鏍规嵁鐢ㄦ埛瀵硅薄鏉ユ牎楠屾暟鎹瘑绾� + * + * @param secret 鏁版嵁瀵嗙骇 + * @param userVO 鐢ㄦ埛鐨勫璞� + * @return true琛ㄧず鍙互璁块棶 + */ + @Override + public boolean checkDataSecret(int secret, UserVO userVO) { + return checkDataSecret(secret,getUserSecret(userVO)); + } + + /** + * 鑾峰彇IP鍦板潃鐨勫瘑绾� 鏆傛椂杩樻湭浣跨敤锛屾暟鎹簱琛ㄤ篃杩樻湭绉绘銆� + * + * @param ip ip鍦板潃 + * @return 瀵嗙骇鐨勫�� + * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父 + */ + @Override + public int getIpSecret(String ip) throws VciBaseException { + if(StringUtils.isBlank(ip)){ + return getMinIpSecret(); + } + Map<String,String> conditionMap = new HashMap<String, String>(); + conditionMap.put("startip",ip.trim()); + +// List<ClientBusinessObject> ipCbos = boService.queryCBO(EnumIdConstant.IPSECRET_BTMNAME,conditionMap,null, Arrays.asList(new String[]{"ipsecret"})); + int ipSecret = 0; +// if(ipCbos!=null&& ipCbos.size()>0){ +// ipSecret = WebUtil.getInt(ipCbos.get(0).getAttributeValue("ipsecret")); +// } + if(ipSecret == 0){ + ipSecret = getMinIpSecret(); + } + return ipSecret; + } + + /** + * 妫�鏌ユ満鍣ㄥ瘑绾� + * + * @param ipSecret 鏈哄櫒瀵嗙骇 + * @param userSecret 鐢ㄦ埛鐨勫瘑绾� + * @return true琛ㄧず璁稿彲 + */ + @Override + public boolean checkIpSecret(int ipSecret, int userSecret) { + if(ipSecret> userSecret){ + return false; + }else{ + return true; + } + } + + /** + * 妫�鏌ュ綋鍓嶇敤鎴锋槸鍚︾鍚堟満鍣ㄥ瘑绾� + * + * @param ipSecret 鏈哄櫒瀵嗙骇 + * @return true琛ㄧず璁稿彲 + */ + @Override + public boolean checkIpSecret(int ipSecret) { + return checkIpSecret(ipSecret,WebUtil.getCurrentUserSecret()==null?getMinUserSecret():WebUtil.getCurrentUserSecret()); + } + + /** + * 鏍¢獙鎸囧畾ip鍜岀敤鎴锋槸鍚︾鍚堟満鍣ㄥ瘑绾� + * + * @param ip ip鍦板潃 + * @param userId 鐢ㄦ埛鍚� + * @return true琛ㄧず璁稿彲 + * @throws VciBaseException 鏌ヨ鍑洪敊浼氭姏鍑哄紓甯� + */ + @Override + public boolean checkIpSecret(String ip, String userId) throws VciBaseException { + return checkIpSecret(getIpSecret(ip),getUserSecret(userId)); + } + + /** + * 鏍¢獙鎸囧畾IP鍜岀敤鎴峰璞$鍚堟満鍣ㄥ瘑绾� + * + * @param ip ip鍦板潃 + * @param userVO 鐢ㄦ埛瀵硅薄 + * @return true琛ㄧず璁稿彲 + */ + @Override + public boolean checkIpSecret(String ip, UserVO userVO) { + return checkIpSecret(getIpSecret(ip),getUserSecret(userVO)); + } +} -- Gitblit v1.9.3