From ac3f3629a261770f573f27e5e23f7ec19d096c2a Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期三, 04 九月 2024 18:29:05 +0800 Subject: [PATCH] UI授权功能查询 --- Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java | 137 +++++++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java | 12 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java | 20 + Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java | 142 ++++++++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java | 11 + Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java | 6 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java | 236 ++++++++++++++++++++++ 7 files changed, 550 insertions(+), 14 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java new file mode 100644 index 0000000..6c1fb38 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/RoleRightDO.java @@ -0,0 +1,142 @@ +package com.vci.model; + +import com.vci.starter.web.annotation.Transient; +import com.vci.starter.web.annotation.VciBtmType; +import com.vci.starter.web.constant.FrameWorkLcStatusConstant; + +import java.io.Serializable; +import java.util.Date; + +/** + * 鐘舵�佹睜 + * @author weidy + * @date 2022-2-15 + */ +@VciBtmType(name = "UIAuthor",text = "UI鏉冮檺",tableName = "PLROLERIGHT",lifeCycle = FrameWorkLcStatusConstant.EMTYPE_LIFE_CYCLE) +@Transient +public class RoleRightDO implements Serializable { + private static final long serialVersionUID = -5073244242126466800L; + /** + * ID + */ + private String id = ""; + /** + *瑙掕壊ID + */ + private String roleId = ""; + /** + * 妯″潡ID + */ + private String funcId = ""; + /** + * 鏉冮檺鍊� + */ + private long rightValue = -1; + /** + * 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + */ + private short rightType = -1; + + /**鏂板鏁版嵁鍒涘缓鑰咃紝淇敼鑰咃紝鍒涘缓鏃堕棿锛屼慨鏀规椂闂达紝鎺堟潈鑰�***/ + private String createUser = ""; + private Date createTime = new Date(); + private String licensor = ""; + private String modifyUser = ""; + private Date modifyTime = new Date(); + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + + public String getFuncId() { + return funcId; + } + + public void setFuncId(String funcId) { + this.funcId = funcId; + } + + public long getRightValue() { + return rightValue; + } + + public void setRightValue(long rightValue) { + this.rightValue = rightValue; + } + + public short getRightType() { + return rightType; + } + + public void setRightType(short rightType) { + this.rightType = rightType; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getLicensor() { + return licensor; + } + + public void setLicensor(String licensor) { + this.licensor = licensor; + } + + public String getModifyUser() { + return modifyUser; + } + + public void setModifyUser(String modifyUser) { + this.modifyUser = modifyUser; + } + + public Date getModifyTime() { + return modifyTime; + } + + public void setModifyTime(Date modifyTime) { + this.modifyTime = modifyTime; + } + + @Override + public String toString() { + return "RoleRightDTO{" + + "id='" + id + '\'' + + ", roleId='" + roleId + '\'' + + ", funcId='" + funcId + '\'' + + ", rightValue=" + rightValue + + ", rightType=" + rightType + + ", createUser='" + createUser + '\'' + + ", createTime=" + createTime + + ", licensor='" + licensor + '\'' + + ", modifyUser='" + modifyUser + '\'' + + ", modifyTime=" + modifyTime + + '}'; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java new file mode 100644 index 0000000..3c6ff70 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/RoleRightVO.java @@ -0,0 +1,137 @@ +package com.vci.pagemodel; + +import java.io.Serializable; +import java.util.Date; + +public class RoleRightVO implements Serializable { + + + private static final long serialVersionUID = 2030418807220108229L; + /** + * ID + */ + private String id = ""; + /** + *瑙掕壊ID + */ + private String roleId = ""; + /** + * 妯″潡ID + */ + private String funcId = ""; + /** + * 鏉冮檺鍊� + */ + private long rightValue = -1; + /** + * 鏉冮檺绫诲瀷锛岃秴绾х鐞嗗憳缁欑鐞嗗憳鎺堟潈涓�1锛岀鐞嗗憳缁欐櫘閫氱敤鎴锋巿鏉冧负2 + */ + private short rightType = -1; + /** + * 鏉冮檺绫诲瀷 + */ + private String rigthTypeText=""; + + /**鏂板鏁版嵁鍒涘缓鑰咃紝淇敼鑰咃紝鍒涘缓鏃堕棿锛屼慨鏀规椂闂达紝鎺堟潈鑰�***/ + private String createUser = ""; + private String createTime = ""; + private String licensor = ""; + private String modifyUser = ""; + private String modifyTime =""; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + + public String getFuncId() { + return funcId; + } + + public void setFuncId(String funcId) { + this.funcId = funcId; + } + + public long getRightValue() { + return rightValue; + } + + public void setRightValue(long rightValue) { + this.rightValue = rightValue; + } + + public short getRightType() { + return rightType; + } + + public void setRightType(short rightType) { + this.rightType = rightType; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getLicensor() { + return licensor; + } + + public void setLicensor(String licensor) { + this.licensor = licensor; + } + + public String getModifyUser() { + return modifyUser; + } + + public void setModifyUser(String modifyUser) { + this.modifyUser = modifyUser; + } + + public String getModifyTime() { + return modifyTime; + } + + public void setModifyTime(String modifyTime) { + this.modifyTime = modifyTime; + } + + @Override + public String toString() { + return "RoleRightVO{" + + "id='" + id + '\'' + + ", roleId='" + roleId + '\'' + + ", funcId='" + funcId + '\'' + + ", rightValue=" + rightValue + + ", rightType=" + rightType + + ", createUser='" + createUser + '\'' + + ", createTime=" + createTime + + ", licensor='" + licensor + '\'' + + ", modifyUser='" + modifyUser + '\'' + + ", modifyTime=" + modifyTime + + '}'; + } +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java index 5d143b7..ad4c627 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/UIManagerController.java @@ -7,6 +7,7 @@ import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; +import com.vci.starter.web.pagemodel.Tree; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.OsBtmServiceI; import com.vci.web.service.UIManagerServiceI; @@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; /** * UI瀹氫箟鎺у埗灞� @@ -149,6 +151,22 @@ } } - + /** + * 鏍规嵁瑙掕壊鑾峰彇UI/琛ㄥ崟/鎸夐挳鐨勬潈闄�. + * @param baseQueryObject + * @return + */ + @GetMapping( "/getUIAuthor") + @VciBusinessLog(operateName = "UI鎺堟潈锛堟爲褰㈢粨鏋勶級") + public BaseResult getUIAuthor(BaseQueryObject baseQueryObject){ + try { + return BaseResult.dataList( uiManagerService.getUIAuthor(baseQueryObject)); + }catch (Throwable e) { + e.printStackTrace(); + String exceptionMessage = "UI鎺堟潈鍔犺浇鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java index c14d6ed..6471de0 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebPortalVIController.java @@ -32,10 +32,11 @@ import java.util.List; /** - * 鍏紡鎺у埗鍣� + * 琛ㄥ崟/琛ㄦ牸鎺у埗鍣� * @author weidy * @date 2022-2-11 */ +@VciBusinessLog(modelName="琛ㄥ崟/琛ㄦ牸鎺у埗鍣�",notStore=true) @RestController @RequestMapping("/portalVIController") public class WebPortalVIController { @@ -95,7 +96,7 @@ } /** - * 涓氬姟绫诲瀷鍒犻櫎 + * 琛ㄥ崟/table鍒犻櫎 * btmTypeDTO 涓氬姟绫诲瀷瀵硅薄 * @return 鍒犻櫎缁撴灉 */ @@ -112,7 +113,7 @@ } } /** - * 涓氬姟绫诲瀷鍒犻櫎 + * 琛ㄥ崟/table鍒犻櫎 * btmTypeDTO 涓氬姟绫诲瀷瀵硅薄 * @return 鍒犻櫎缁撴灉 */ @@ -128,8 +129,11 @@ return BaseResult.fail(exceptionMessage); } } + /** - * + * 琛ㄥ崟/table鍏嬮殕 + * @param portalVIDTOList clong瀵硅薄 + * @return */ @PostMapping("/clone") @VciBusinessLog(operateName = "鍏嬮殕琛ㄥ崟/琛ㄦ牸") diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java index a554efb..0001abd 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIManagerServiceI.java @@ -3,11 +3,15 @@ import com.vci.corba.common.PLException; import com.vci.corba.portal.data.PLUILayout; import com.vci.pagemodel.PLUILayoutCloneVO; +import com.vci.starter.web.exception.VciBaseException; 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.Tree; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.List; /** * @author ludc @@ -59,4 +63,11 @@ */ void expUiContextData(String[] oids, HttpServletResponse response) throws PLException, IOException; + /** + * 鑾峰彇UI鏉冮檺鏍� + * @param baseQueryObject + * @return + * @throws VciBaseException + */ + List<Tree> getUIAuthor(BaseQueryObject baseQueryObject)throws Exception; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java index f6ed246..5db621e 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsPortalVIServiceImpl.java @@ -168,6 +168,9 @@ } PortalVIVO portalVIVO=new PortalVIVO(); PortalVI portalVI= platformClientUtil.getPortalService().getPortalVIById(id); + if(portalVI==null||StringUtils.isBlank(portalVI.id)){ + throw new VciBaseException("鏍规嵁涓婚敭鏈煡璇㈠埌鏁版嵁"); + } portalVIVO=portalVIDOO2VO(portalVI); return portalVIVO; } @@ -640,7 +643,7 @@ boolean flag = false; String labelName=PortalVIType.Form.getName(); try { - VciBaseUtil.alertNotNull(portalVIDTO.getViName(),"鍚嶇О涓嶈兘涓虹┖锛�"); + VciBaseUtil.alertNotNull(portalVIDTO.getViName(),"鍚嶇О"); if(portalVIDTO.getPrm()==null||portalVIDTO.getPrm().getPrmItemList()==null||portalVIDTO.getPrm().getPrmItemList().size()==0){ throw new Throwable(labelName+"锛屾湭璁剧疆"); } @@ -1258,7 +1261,6 @@ private List<String> getRefFormVIName(String refFormOid){ List<String> keyList=new ArrayList<>(); try { - PortalVI refFormVI = UITools.getService().getPortalVIById(refFormOid); PortalVIVO portalVIVO= portalVIDOO2VO(refFormVI); if(portalVIVO!=null&&portalVIVO.getPrm().getPrmItemList().size()>0){ 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 9a1b63a..98d2f58 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 @@ -4,19 +4,27 @@ import com.vci.client.mw.ClientContextVariable; 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.frameworkcore.compatibility.SmRoleQueryServiceI; +import com.vci.pagemodel.OsBtmTypeVO; import com.vci.pagemodel.PLUILayoutCloneVO; +import com.vci.pagemodel.RoleRightVO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.SessionInfo; +import com.vci.starter.web.pagemodel.Tree; 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.Func; -import com.vci.web.util.PlatformClientUtil; -import com.vci.web.util.UITools; +import com.vci.web.util.*; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -24,10 +32,9 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * UI瀹氫箟鏈嶅姟鐣岄潰鐩稿叧鎺ュ彛 @@ -42,6 +49,18 @@ */ @Resource private PlatformClientUtil platformClientUtil; + /** + * 瑙掕壊 + */ + @Resource + private SmRoleQueryServiceI smRoleQueryServiceI; + + /** + * 涓氬姟绫诲瀷 + */ + @Resource + private OsBtmServiceI osBtmServiceI; + /** * 鏃ュ織 */ @@ -87,6 +106,22 @@ List<PLUILayout> pluiLayouts = Arrays.asList(res); dataGrid.setData(pluiLayouts); return dataGrid; + } + + /** + * ton閫氳繃涓氬姟绫诲瀷鍜屽悕绉版煡璇� + * @param btemName + * @param code + * @return + * @throws PLException + */ + public List<PLUILayout> getUIContextDataByBtName(String btemName,String code) throws PLException { + List<PLUILayout> pluiLayoutList=new ArrayList<>(); + PLUILayout[] pluiLayouts= platformClientUtil.getUIService().getPLUILayoutEntityByTypeAndCode(btemName,code); + if(pluiLayouts!=null&&pluiLayouts.length>0){ + pluiLayoutList= Stream.of(pluiLayouts).collect(Collectors.toList()); + } + return pluiLayoutList; } /** @@ -247,6 +282,193 @@ } /** + * 鑾峰彇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); + childList.add(bizTypeTree); + 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; + } + + 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.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.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.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.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) {//鎸夐挳 + String id = ((PLTabButton) funcObj).plTableOId; + if(roleRightVOMap.containsKey(id)){ + 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