From c826afb6dbc2c1d4433b3c127c5f30f9f72fb2dc Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期一, 09 九月 2024 17:18:37 +0800 Subject: [PATCH] 属性加UI类型字段 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 477 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 472 insertions(+), 5 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java index b3595cf..2a06917 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java @@ -1,22 +1,31 @@ package com.vci.web.service.impl; -import com.vci.client.mw.ClientContextVariable; -import com.vci.common.qt.object.QTConstants; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.PLException; +import com.vci.corba.framework.data.RoleRightInfo; +import com.vci.corba.omd.btm.BizType; import com.vci.corba.portal.PortalService; import com.vci.corba.portal.data.*; +import com.vci.dto.RoleRightDTO; +import com.vci.dto.UIAuthorDTO; +import com.vci.frameworkcore.compatibility.SmRoleQueryServiceI; import com.vci.model.PLDefination; import com.vci.pagemodel.PLDefinationVO; import com.vci.pagemodel.PLUILayoutCloneVO; +import com.vci.pagemodel.RoleRightVO; import com.vci.starter.web.exception.VciBaseException; +import com.vci.starter.web.pagemodel.*; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.starter.web.util.VciBaseUtil; +import com.vci.starter.web.util.VciDateUtil; import com.vci.starter.web.util.WebThreadLocalUtil; +import com.vci.web.service.OsBtmServiceI; import com.vci.web.service.UIManagerServiceI; +import com.vci.web.util.*; +import org.apache.commons.lang3.StringUtils; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.UITools; @@ -24,17 +33,16 @@ import lombok.NoArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; -import javax.swing.*; -import javax.swing.text.JTextComponent; import java.io.IOException; import java.util.*; -import java.util.regex.Pattern; import java.util.stream.Collectors; +import java.util.regex.Pattern; /** * UI瀹氫箟鏈嶅姟鐣岄潰鐩稿叧鎺ュ彛 @@ -49,6 +57,22 @@ */ @Resource private PlatformClientUtil platformClientUtil; + + /** + * 瑙掕壊 + */ + @Resource + private SmRoleQueryServiceI smRoleQueryServiceI; + /*** + * 鏄惁鏄鐞嗗憳 + */ + @Autowired + RightControlUtil rightControlUtil; + /** + * 涓氬姟绫诲瀷 + */ + @Resource + private OsBtmServiceI osBtmServiceI; /** * 鏃ュ織 @@ -95,6 +119,37 @@ List<PLUILayout> pluiLayouts = Arrays.asList(res); dataGrid.setData(pluiLayouts); return dataGrid; + } + + /** + * ton閫氳繃涓氬姟绫诲瀷鍜屽悕绉版煡璇� + * @param btemName + * @param context + * @return + * @throws PLException + */ + public List<PLUILayout> getUIContextDataByBtName(String btemName,String context) throws PLException { + VciBaseUtil.alertNotNull(btemName,"涓氬姟绫诲瀷"); + List<PLUILayout> pluiLayoutList=new ArrayList<>(); + List<String> contextList= VciBaseUtil.str2List(context); + if(StringUtils.isNotBlank(context)){ + contextList=VciBaseUtil.str2List(context); + }else{ + contextList.add(""); + } + contextList.stream().forEach(code->{ + PLUILayout[] pluiLayouts= new PLUILayout[0]; + try { + pluiLayouts = platformClientUtil.getUIService().getPLUILayoutEntityByTypeAndCode(btemName,code); + } catch (PLException e) { + e.printStackTrace(); + } + if(pluiLayouts!=null&&pluiLayouts.length>0) { + pluiLayoutList.addAll(Arrays.stream(pluiLayouts).collect(Collectors.toList())); + } + }); + + return pluiLayoutList; } /** @@ -726,6 +781,418 @@ } /** + * 鑾峰彇UI鎺堟潈鏍� + * @param treeQueryObject + * @return + * @throws Exception + */ + @Override + public List<Tree> getUIAuthor(BaseQueryObject treeQueryObject) throws Exception { + + Map<String, String> conditionMap = treeQueryObject.getConditionMap(); + if (conditionMap == null) { + conditionMap = new HashMap<>(); + } + String roleId = StringUtils.isBlank(conditionMap.get("roleId")) ? "" : conditionMap.get("roleId"); + String type = StringUtils.isBlank(conditionMap.get("type")) ? "" : conditionMap.get("type"); + String context = StringUtils.isBlank(conditionMap.get("context")) ? "" : conditionMap.get("context"); + boolean showCheckBox = Boolean.parseBoolean(conditionMap.get("showCheckBox")); + Map<String,RoleRightVO> roleRightVOMap=new HashMap<>(); + if(StringUtils.isNotBlank(roleId)){ + String userName= WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); + RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(roleId,userName); + List<RoleRightVO> roleRightVOList=roleRightDOO2VOS(Arrays.asList(rightInfos)); + roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO)); + } + BizType[] bizTypes=osBtmServiceI.getBizTypes(type); + List<Tree> treeList=new ArrayList<>(); + Tree rootNode =new Tree("root","鍔熻兘妯″潡","root"); + rootNode.setLevel(0); + rootNode.setShowCheckbox(true); + rootNode.setExpanded(true); + List<Tree> childList=new ArrayList<>(); + for (int i = 0; i < bizTypes.length; i++) { + Tree bizTypeTree = new Tree(bizTypes[i].oid,bizTypes[i].name,bizTypes[i]);//(btmItems[i].label+" ["+ btmItems[i].name+"]", btmItems[i]); + bizTypeTree.setLevel(1); + bizTypeTree.setShowCheckbox(true); + bizTypeTree.setParentId(rootNode.getOid()); + bizTypeTree.setParentName(rootNode.getText()); + bizTypeTree.setShowCheckbox(true); + bizTypeTree.setParentBtmName(bizTypes[i].name); + childList.add(bizTypeTree); + if(roleRightVOMap.containsKey(bizTypes[i].oid)){ + List<PLUILayout>contextList=getUIContextDataByBtName(bizTypes[i].name,context); + List<Tree> btmChildList=new ArrayList<>(); + btmChildList.add(bizTypeTree); + setChildNode(btmChildList,contextList,roleRightVOMap,showCheckBox); + } + } + rootNode.setChildren(childList); + treeList.add(rootNode); + return treeList; + } + + /*** + * UI鎺堟潈 + * @param uiAuthorDTO + * @return + * @throws Exception + */ + @Override + public boolean authorizedUI(UIAuthorDTO uiAuthorDTO) throws Exception { + boolean res=false; + if(uiAuthorDTO==null||CollectionUtil.isEmpty(uiAuthorDTO.getSelectTreeList())){ + throw new VciBaseException("璇烽�夋嫨鑺傜偣杩涜鎺堟潈!"); + } + BaseQueryObject treeQueryObject=new BaseQueryObject(); + Map<String,String> conditionMap = new HashMap<>(); + conditionMap.put("roleId",uiAuthorDTO.getRoleId()); + conditionMap.put("type",uiAuthorDTO.getType()); + conditionMap.put("context",uiAuthorDTO.getContext()); + conditionMap.put("showCheckBox","true"); + treeQueryObject.setConditionMap(conditionMap); + List<Tree> treeList=this.getUIAuthor(treeQueryObject); + HashMap<String,Tree> allTreeMap=new HashMap<>(); + Map<String,RoleRightVO> roleRightVOMap=new HashMap<>(); + if(!CollectionUtil.isEmpty(treeList)){ + if(StringUtils.isNotBlank(uiAuthorDTO.getRoleId())){ + String userName= WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); + RoleRightInfo[] rightInfos= platformClientUtil.getFrameworkService().getRoleRightList(uiAuthorDTO.getRoleId(),userName); + List<RoleRightVO> roleRightVOList=roleRightDOO2VOS(Arrays.asList(rightInfos)); + roleRightVOMap=roleRightVOList.stream().collect(Collectors.toMap(RoleRightVO::getFuncId,roleRightVO ->roleRightVO)); + } + convertTreeDOO2Map(treeList,allTreeMap); + List<RoleRightDTO> roleRightDTOList=new ArrayList<>(); + List<Tree> selectTreeList= uiAuthorDTO.getSelectTreeList(); + getSelectedRoleRightObjs(uiAuthorDTO.getRoleId(),selectTreeList,allTreeMap,roleRightDTOList); + } + return res; + } + + /** + * + * @param roleOid + * @param selectTreeList + * @param allTreeMap + * @param roleRightDTOList + */ + private void getSelectedRoleRightObjs(String roleOid,List<Tree> selectTreeList,HashMap<String,Tree> allTreeMap, List<RoleRightDTO> roleRightDTOList){ + Date date=new Date(); + Map<String,RoleRightDTO> roleRightDTOMap=new HashMap<>(); + selectTreeList.stream().forEach(tree -> { + RoleRightDTO roleRightDTO=new RoleRightDTO(); + String id=ObjectUtility.getNewObjectID36(); + Object data= tree.getData(); + if(data instanceof String){ + getRightValue(roleOid,tree,allTreeMap,false,roleRightDTOMap);//鍚戜笅鑾峰彇鎵�鏈夋ā鍧楃殑鏉冮檺鍊� + }else if (!(data instanceof PLTabButton)) {//涓氬姟绫诲瀷 + getRightValue(roleOid,tree,allTreeMap,true,roleRightDTOMap);//鍚戜笂澶勭悊 + getRightValue(roleOid,tree,allTreeMap,false,roleRightDTOMap);//鍚戜笅澶勭悊锛堝寘鍚綋鍓嶈妭鐐癸級 + }else if (data instanceof PLTabButton) {//鎸夐挳 + + } + }); + + + + } + /** + * 鑾峰彇鏉冮檺 + * @param isUp 鏄惁鏄悜涓婅幏鍙栵紝濡傛灉鏄悜涓婅幏鍙栵紝浼犺繘鏉ョ殑蹇呯劧鏄ā鍧楄妭鐐癸紝涓斾笂绾фā鍧楀繀鐒舵槸娌℃湁閫変腑 + */ + private void getRightValue(String roleId,Tree node,HashMap<String,Tree> allTreeMap,boolean isUp,Map<String,RoleRightDTO> rightMap){ + SessionInfo sessionInfo = WebThreadLocalUtil.getCurrentUserSessionInfoInThread(); + String currentUserName = sessionInfo.getUserId(); + boolean isDeveloper= rightControlUtil.isDeveloper(currentUserName); + String parentOid=node.getParentId(); + if(allTreeMap.containsKey(parentOid)){ + String id=ObjectUtility.getNewObjectID36(); + Tree parentNode =allTreeMap.get(parentOid); + Object parentData= parentNode.getData(); + if(isUp) {//鍚戜笂鑾峰彇锛屽瓨鍌ㄦ瘡涓笂绾фā鍧楃殑鏉冮檺鍊� + while (!"root".equals(parentNode.getData())){ + String funcId = ""; + if (parentData instanceof BizType) { + BizType bizType = (BizType) parentData; + funcId = bizType.name; + } else if (parentData instanceof PLUILayout) { + PLUILayout context = (PLUILayout)parentData; + funcId = context.plOId; + } else if (parentData instanceof PLTabPage) { + PLTabPage tab = (PLTabPage) parentData; + funcId = tab.plOId; + } else if (parentData instanceof PLPageDefination){ + PLPageDefination pageDef = (PLPageDefination) parentData; + funcId = pageDef.plOId; + } else if (parentData instanceof PLTabButton) { + PLTabButton but = (PLTabButton)parentData; + funcId = but.plOId; + } + RoleRightDTO roleRightDTO = new RoleRightDTO(); + roleRightDTO.setId(id);//涓婚敭 + roleRightDTO.setFuncId(funcId); + if(isDeveloper) { + roleRightDTO.setRightType((short) 1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + }else{ + roleRightDTO.setRightType((short) 2); + } + roleRightDTO.setRightValue(1);// 鏉冮檺鍊硷紝娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRoleId(roleId);//瑙掕壊ID + roleRightDTO.setCreateUser(currentUserName);//鍒涘缓鑰� + roleRightDTO.setCreateTime(new Date());//鍒涘缓鏃堕棿 + roleRightDTO.setModifyUser(currentUserName);//淇敼鑰� + roleRightDTO.setModifyTime(new Date());//淇敼鏃堕棿 + roleRightDTO.setLicensor(""); + if(!rightMap.containsKey(funcId)){ + rightMap.put(funcId, roleRightDTO); + } + } + }else{ + String funcId = ""; + if(parentData instanceof String){ + funcId = (String)parentData; + } else if (parentData instanceof BizType) { + BizType bizType = (BizType)parentData; + funcId = bizType.name; + } else if (parentData instanceof PLUILayout) { + PLUILayout context = (PLUILayout)parentData; + funcId = context.plOId; + } else if (parentData instanceof PLTabPage) { + PLTabPage tab = (PLTabPage) parentData; + funcId = tab.plOId; + } else if (parentData instanceof PLPageDefination){ + PLPageDefination pageDef = (PLPageDefination) parentData; + funcId = pageDef.plOId; + } else if (parentData instanceof PLTabButton) { + PLTabButton but = (PLTabButton)parentData; + funcId = but.plOId; + } + if(!(parentData instanceof PLPageDefination)) {//瀛愯妭鐐逛笉鏄搷浣� + if(!rightMap.containsKey(funcId)&&!funcId.equals("root")){ + RoleRightDTO roleRightDTO = new RoleRightDTO(); + roleRightDTO.setFuncId(funcId); + if(isDeveloper) { + roleRightDTO.setRightType((short) 1);//鏉冮檺绫诲瀷 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + }else{ + roleRightDTO.setRightType((short) 2); + } + roleRightDTO.setRightValue(0);//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRoleId(roleId); + roleRightDTO.setCreateUser(currentUserName); + roleRightDTO.setCreateTime(new Date()); + roleRightDTO.setModifyUser(currentUserName); + roleRightDTO.setModifyTime(new Date()); + roleRightDTO.setLicensor(""); + rightMap.put(funcId, roleRightDTO); + } + for(int i = 0;i < parentNode.getChildren().size();i++){ + //瀵规瘡涓瓙鍚戜笅閫掑綊閬嶅巻 + getRightValue(roleId,parentNode.getChildren().get(i),allTreeMap,false,rightMap); + } + }else { + if(!rightMap.containsKey(funcId)){ + RoleRightDTO roleRightDTO = new RoleRightDTO(); + roleRightDTO.setFuncId(funcId); + roleRightDTO.setRightType((short)2); // 璁剧疆UI鏉冮檺 + roleRightDTO.setRightValue(countRightValue(parentNode,true));//娌℃湁鎿嶄綔鐨勬ā鍧楁潈闄愬�煎瓨鍌ㄤ负0 + roleRightDTO.setRoleId(roleId); + + roleRightDTO.setCreateUser(currentUserName); + roleRightDTO.setCreateTime(new Date()); + roleRightDTO.setModifyUser(currentUserName); + roleRightDTO.setModifyTime(new Date()); + roleRightDTO.setLicensor(""); + rightMap.put(funcId, roleRightDTO); + } + } + } + + } + } + /** + * 浼犲叆鐩存帴鎸傛帴鎿嶄綔鐨勬ā鍧楃殑鑺傜偣,璁$畻璇ヨ妭鐐圭殑鏉冮檺鍊� + * @param node 妯″潡鑺傜偣 + * @param isAll 鏄惁瀛愮骇鍏ㄩ儴閫変腑 + * @return + */ + private long countRightValue(Tree node,boolean isAll){ + long value = 0; + for(int i = 0;i < node.getChildren().size();i++){ + Tree childNode = (Tree)node.getChildren().get(i); + if(isAll && node.getData() instanceof PLTabButton ){ + PLTabButton obj = (PLTabButton)node.getData(); + value += (long)Math.pow(2, obj.plSeq);//绱鍔犱笂鍚勪釜鎿嶄綔鐨勬潈闄愬�� + } + } + return value; + } + + /** + * + * @param treeList 鏍戣妭鐐� + * @param allTreeMap锛屾墍鏈夌殑鑺傜偣 + */ + private void convertTreeDOO2Map(List<Tree> treeList,Map<String,Tree> allTreeMap){ + Optional.ofNullable(treeList).orElseGet(()->new ArrayList<Tree>()).stream().forEach(tree -> { + List<Tree> childTreeList= tree.getChildren(); + allTreeMap.put(tree.getOid(),tree); + if(!CollectionUtil.isEmpty(childTreeList)){ + convertTreeDOO2Map(childTreeList,allTreeMap); + } + }); + } + private void setChildNode(List<Tree> parentTree, List<PLUILayout>contextList,Map<String,RoleRightVO> roleRightVOMap,boolean isShowCheckBox){ + Optional.ofNullable(parentTree).orElseGet(()->new ArrayList<Tree>()).stream().forEach(pTree -> { + Object funcObj= pTree.getData(); + List<Tree> chiledTreeList=new ArrayList<>(); + if (funcObj instanceof BizType) {//涓氬姟绫诲瀷 + BizType bizType = (BizType) funcObj; + if(!CollectionUtil.isEmpty(contextList)) { + contextList.stream().forEach(context->{ + Tree childTree=new Tree(context.plOId,context.plName+"("+context.plCode+")",context); + childTree.setParentName(pTree.getText()); + childTree.setParentBtmName(pTree.getParentBtmName()); + childTree.setParentId(pTree.getOid()); + childTree.setLevel(pTree.getLevel()+1); + childTree.setShowCheckbox(isShowCheckBox); + chiledTreeList.add(childTree); + }); + pTree.setChildren(chiledTreeList); + } + if(!CollectionUtil.isEmpty(chiledTreeList)) { + setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); + } + }else if (funcObj instanceof PLUILayout){//UI + PLUILayout context = (PLUILayout) funcObj; + PLTabPage[] pages = new PLTabPage[0]; + try { + pages = platformClientUtil.getUIService().getPLTabPagesByPageDefinationOId(context.plOId); + } catch (PLException e) { + e.printStackTrace(); + } + if(pages!=null&&pages.length>0){ + List<PLTabPage> plTabPageList= Arrays.stream(pages).collect(Collectors.toList()); + plTabPageList.stream().forEach(plTabPage -> { + Tree childTree=new Tree(plTabPage.plOId,plTabPage.plName,plTabPage); + childTree.setParentName(pTree.getText()); + childTree.setParentId(pTree.getOid()); + childTree.setParentBtmName(pTree.getParentBtmName()); + childTree.setLevel(pTree.getLevel()+1); + childTree.setShowCheckbox(isShowCheckBox); + chiledTreeList.add(childTree); + }); + pTree.setChildren(chiledTreeList); + } + if(!CollectionUtil.isEmpty(chiledTreeList)) { + setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); + } + + }else if (funcObj instanceof PLTabPage) {//涓婁笅鏂� + PLTabPage plTabPage = (PLTabPage) funcObj; + List<PLPageDefination>plPageDefinationList=new ArrayList<>(); + try { + PLPageDefination[] pLPageDefinations = platformClientUtil.getUIService().getPLPageDefinationsByPageContextOId(plTabPage.plOId); + if(pLPageDefinations!=null&&pLPageDefinations.length>0){ + plPageDefinationList= Arrays.stream(pLPageDefinations).collect(Collectors.toList()); + plPageDefinationList.stream().forEach(plPageDefination -> { + Tree childTree=new Tree(plPageDefination.plOId,plPageDefination.name,plPageDefination); + childTree.setParentName(pTree.getText()); + childTree.setParentId(pTree.getOid()); + childTree.setParentBtmName(pTree.getParentBtmName()); + childTree.setLevel(pTree.getLevel()+1); + childTree.setShowCheckbox(isShowCheckBox); + chiledTreeList.add(childTree); + }); + pTree.setChildren(chiledTreeList); + } + if(!CollectionUtil.isEmpty(chiledTreeList)) { + setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); + } + } catch (PLException e) { + e.printStackTrace(); + } + + }else if (funcObj instanceof PLPageDefination) {// + PLPageDefination plPageDefination = (PLPageDefination) funcObj; + try { + List<PLTabButton>plTabButtonList=new ArrayList<>(); + PLTabButton[] pLTabButtons = platformClientUtil.getUIService().getPLTabButtonsByTableOId(plPageDefination.plOId); + if(pLTabButtons!=null&&pLTabButtons.length>0){ + plTabButtonList= Arrays.stream(pLTabButtons).collect(Collectors.toList()); + plTabButtonList.stream().forEach(plTabButton -> { + Tree childTree=new Tree(plTabButton.plOId,plTabButton.plLabel,plTabButton); + childTree.setParentName(pTree.getText()); + childTree.setParentId(pTree.getOid()); + childTree.setParentBtmName(pTree.getParentBtmName()); + childTree.setLevel(pTree.getLevel()+1); + childTree.setShowCheckbox(isShowCheckBox); + childTree.setLeaf(true); + chiledTreeList.add(childTree); + }); + pTree.setChildren(chiledTreeList); + } + if(!CollectionUtil.isEmpty(chiledTreeList)) { + setChildNode(chiledTreeList, contextList, roleRightVOMap, isShowCheckBox); + } + } catch (PLException e) { + e.printStackTrace(); + } + + }else if (funcObj instanceof PLTabButton) {//鎸夐挳 + PLTabButton plTabButton= (PLTabButton) funcObj; + String id =plTabButton.plTableOId; + if(roleRightVOMap.containsKey(id)){ + RoleRightVO roleRightVO = roleRightVOMap.get(id); + Long rightValue = roleRightVO.getRightValue(); + int nodeValue = plTabButton.plSeq; + if (nodeValue >= 0 && nodeValue <= 63) { + long preValue = (rightValue >> nodeValue) & 1; + if (preValue == 1) { + pTree.setChecked(true); + } + } + }else{ + pTree.setChecked(false); + } + } + }); + } + /** + * UI瑙掕壊瀵硅薄杞崲 + * @param infos + * @return + */ + private List<RoleRightVO> roleRightDOO2VOS(List<RoleRightInfo> infos){ + List<RoleRightVO> roleRightVOS=new ArrayList<>(); + Optional.ofNullable(infos).orElseGet(()->new ArrayList<>()).stream().forEach(info -> { + RoleRightVO vo=roleRightDOO2VO(info); + roleRightVOS.add(vo); + }); + + return roleRightVOS; + } + + /** + * UI瑙掕壊瀵硅薄杞崲 + * @param info + * @return + */ + private RoleRightVO roleRightDOO2VO(RoleRightInfo info){ + RoleRightVO vo=new RoleRightVO(); + vo.setId(info.id); + vo.setCreateTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.createTime),"")); + vo.setCreateUser(info.createUser); + vo.setRoleId(info.roleId); + vo.setRightType(info.rightType); + vo.setLicensor(info.licensor); + vo.setRightValue(info.rightValue); + vo.setFuncId(info.funcId); + vo.setModifyTime(VciDateUtil.date2Str(VciDateUtil.long2Date(info.modifyTime),"")); + vo.setModifyUser(info.modifyUser); + return vo; + } + + /** * 鎺у埗鍖鸿妭鐐瑰強鍏跺瓙鑺傜偣鐨勫厠闅� * @param obj */ -- Gitblit v1.9.3