From a9a8b053387f01d87ef16e6c555d20fa1e851025 Mon Sep 17 00:00:00 2001
From: lihang <lihang@vci-tech.com>
Date: 星期二, 25 四月 2023 18:47:32 +0800
Subject: [PATCH] code服务启动类
---
Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 107 insertions(+), 1 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java
index 9a483fe..e993f2f 100644
--- a/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-omd/src/main/java/com/vci/ubcs/omd/service/impl/OmdAttributeServiceImpl.java
@@ -3,23 +3,30 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.vci.ubcs.core.log.exception.ServiceException;
import com.vci.ubcs.omd.constant.OmdCacheConstant;
import com.vci.ubcs.omd.dto.OmdAttributeDTO;
+import com.vci.ubcs.omd.dto.OmdBtmTypeLinkAttributesDTO;
import com.vci.ubcs.omd.entity.OmdAttribute;
import com.vci.ubcs.omd.mapper.OmdAttributeMapper;
import com.vci.ubcs.omd.service.IOmdAttributeService;
import com.vci.ubcs.omd.vo.OmdAttributeVO;
import com.vci.ubcs.omd.wrapper.OmdAttributeWrapper;
+import com.vci.ubcs.starter.exception.VciBaseException;
+import com.vci.ubcs.starter.web.util.VciBaseUtil;
import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.constant.BladeConstant;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
/**
@@ -94,4 +101,103 @@
public List<String> applyRange(Long id) {
return new ArrayList<>();
}
+
+ /**
+ * 妫�鏌ュ睘鎬ф槸鍚﹀瓨鍦�
+ *
+ * @param keyCollections 鑻辨枃鍚嶇О闆嗗悎
+ * @return true琛ㄧず閮藉瓨鍦紝false琛ㄧず涓嶅瓨鍦紝涓嶅瓨鍦ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
+ * @throws VciBaseException 涓嶅瓨鍦ㄧ殑鏃跺�欎細鎶涘嚭寮傚父
+ */
+ @Override
+ public boolean checkAttributeExists(Collection<String> keyCollections) throws VciBaseException {
+ List<OmdAttributeVO> existAttributeVOList = listAttributeByKeyCollection(keyCollections);
+ if (CollectionUtils.isEmpty(existAttributeVOList)) {
+ throw new VciBaseException("浣跨敤鐨勫睘鎬ч兘鍦ㄧ郴缁熶腑涓嶅瓨鍦紝璇峰厛鏌ヨ瘉");
+ } else {
+ Set<String> existAttributeIdSet = (existAttributeVOList.stream().collect(Collectors.toMap(s -> s.getKey().toLowerCase().trim(), t -> t))).keySet();
+ keyCollections.stream().forEach(s -> {
+ if (!existAttributeIdSet.contains(s)) {
+ throw new VciBaseException("浣跨敤鐨勫睘鎬0}鍦ㄧ郴缁熶腑涓嶅瓨鍦紝璇峰厛鏌ヨ瘉", new Object[]{s});
+ }
+ });
+ }
+ return true;
+ }
+
+
+ /**
+ * 鏍规嵁鑻辨枃鍚嶇О闆嗗悎鎵归噺鑾峰彇灞炴�у璞�
+ *
+ * @param attributeIdCollection 鑻辨枃鍚嶇О闆嗗悎
+ * @return 灞炴�у璞″垪琛紝濡傛灉鏈変笉瀛樺湪鐨勪笉浼氳繑鍥烇紝鍏ㄩ儴涓嶅瓨鍦ㄧ殑鍒欒繑鍥炵┖鍒楄〃
+ * @throws VciBaseException 鍙傛暟涓虹┖鎴栬�呮煡璇㈠嚭閿欐椂浼氭姏鍑洪敊璇�
+ */
+ @Override
+ public List<OmdAttributeVO> listAttributeByKeyCollection(Collection<String> attributeIdCollection) throws VciBaseException {
+ if(!CollectionUtils.isEmpty(attributeIdCollection)){
+ List<OmdAttribute> attributeDOList = listAttributeByKeyCollectionDO(attributeIdCollection);
+ if(!CollectionUtils.isEmpty(attributeDOList)) {
+ return OmdAttributeWrapper.build().listEntityVO(attributeDOList);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 鏍规嵁鑻辨枃鍚嶇О闆嗗悎鑾峰彇灞炴�ф暟鎹璞�
+ * @param attributeIdCollection 灞炴�х殑鑻辨枃鍚嶇О闆嗗悎
+ * @return 灞炴�ф暟鎹璞″垪琛紝濡傛灉鏈変笉瀛樺湪鐨勪笉浼氳繑鍥烇紝鍏ㄩ儴涓嶅瓨鍦ㄧ殑鍒欒繑鍥炵┖鍒楄〃
+ * @throws VciBaseException mybatis鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
+ */
+ private List<OmdAttribute> listAttributeByKeyCollectionDO(Collection<String> attributeIdCollection) throws VciBaseException {
+ if(!CollectionUtils.isEmpty(attributeIdCollection)){
+ List<OmdAttribute> attributeDOList = new ArrayList<>();
+ Collection<String> distAttributeIdCollection = attributeIdCollection.stream().distinct().collect(Collectors.toList());
+ Collection<Collection<String>> idCollections = VciBaseUtil.switchCollectionForOracleIn(distAttributeIdCollection);
+ if(!CollectionUtils.isEmpty(idCollections)) {
+ idCollections.stream().forEach(s -> {
+ List<OmdAttribute> attributeDOS = baseMapper.selectList(Wrappers.<OmdAttribute>query().lambda().in(OmdAttribute::getKey, s));
+ if(!CollectionUtils.isEmpty(attributeDOS)){
+ attributeDOList.addAll(attributeDOS);
+ }
+ });
+ }
+ return attributeDOList;
+ }
+ return null;
+ }
+
+ /**
+ * 鍒ゆ柇灞炴�х殑鍐呭鏄惁绗﹀悎瑕佹眰
+ *
+ * @param id 灞炴�х殑涓婚敭
+ * @param attrDataType 灞炴�х殑绫诲瀷
+ * @param attributeLength 灞炴�х殑闀垮害
+ * @param defaultValue 榛樿鍊�
+ * @return true琛ㄧず绗﹀悎瑕佹眰锛屼笉绗﹀悎瑕佹眰浼氭姏鍑哄紓甯�
+ * @throws VciBaseException 涓嶇鍚堣姹備細鎶涘嚭寮傚父
+ */
+ @Override
+ public boolean checkAttributePass(String id, String attrDataType, Integer attributeLength, String defaultValue) throws VciBaseException {
+ return true;
+ }
+
+ /**
+ * 鏍¢獙灞炴�ф槸鍚︾鍚堣姹�
+ *
+ * @param attributesDTO 灞炴�ф暟鎹紶杈撳璞�
+ * @return true 绗﹀悎 false 涓嶇鍚�
+ * @throws VciBaseException 涓嶇鍚堟椂鎶涘嚭寮傚父
+ */
+ @Override
+ public boolean checkAttribute(OmdBtmTypeLinkAttributesDTO attributesDTO) throws VciBaseException {
+ VciBaseUtil.alertNotNull(attributesDTO.getId(), "灞炴�х殑鑻辨枃鍚嶇О", attributesDTO.getName(), "灞炴�х殑涓枃鍚嶇О",
+ attributesDTO.getAttrDataType(), "灞炴�х殑鏁版嵁绫诲瀷");
+ boolean pass = checkAttributePass(attributesDTO.getId(), attributesDTO.getAttrDataType(), attributesDTO.getAttributeLength(), attributesDTO.getDefaultValue());
+ if (!pass){
+ throw new VciBaseException("灞炴�т笉绗﹀悎瑕佹眰");
+ }
+ return pass;
+ }
}
--
Gitblit v1.10.0