From c84c6564cf3f71999622828290ae19972972afaf Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 20 十一月 2024 11:07:48 +0800
Subject: [PATCH] 添加登录成功,登录错误次数清零逻辑,ui定义的数据查询服务中增加通用查询接口。

---
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java        |    9 ++--
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java               |    8 ++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java |    1 
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java                |    4 +-
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java       |   19 +++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java       |   58 ++++++++++++++++++++++++++++
 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIManagerServiceImpl.java    |    2 
 7 files changed, 93 insertions(+), 8 deletions(-)

diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
index bf51a1c..e6d97ae 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsQueryTemplateController.java
@@ -265,6 +265,7 @@
             return objectBaseResult;
         }
     }
+
     /**
      * 瀵煎嚭閾炬帴绫诲瀷鏌ヨ妯℃澘
      * names 鏌ヨ妯℃澘鍚�
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java
index ba3ad2d..316cb50 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebUIDataController.java
@@ -98,6 +98,25 @@
     }
 
     /**
+     * 鏍规嵁鏌ヨ妯℃澘鏌ヨ鏁版嵁锛岃繑鍥炲�兼寜鐓ч〉闈㈠畾涔�
+     * @param treeQuery 鏍戞煡璇㈠璞�
+     * @return 鏍戠殑鏁版嵁
+     */
+    @PostMapping("/getDataByTemp")
+    @VciUnCheckRight
+    @VciBusinessLog(operateName = "鏌ヨ")
+    public BaseResult getDataByTemp(UITreeQuery treeQuery){
+        try {
+            return uiDataService.getDataByTemp(treeQuery);
+        }catch (Exception e){
+            e.printStackTrace();
+            String errorMsg = "鏁版嵁鏌ヨ鍑虹幇閿欒锛屽師鍥狅細"+ VciBaseUtil.getExceptionMessage(e);
+            logger.error(errorMsg);
+            throw new VciBaseException(errorMsg);
+        }
+    }
+
+    /**
      * 娣诲姞鏁版嵁銆傚墠绔娇鐢↗SON鎻愪氦
      * @param formDataDTO 琛ㄥ崟
      * @return 鎵ц鐨勭粨鏋�
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java
index 1093ba8..6f6179e 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/LoginServiceI.java
@@ -20,7 +20,7 @@
      * @return 鐧诲綍鐨勭粨鏋滃璞�
      * @throws VciBaseException 鐧诲綍澶辫触鐨勬椂鍊欐姏鍑哄紓甯�
      */
-    LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException;
+    LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception;
 
     /**
      * 鍗曠偣鐧诲綍
@@ -29,7 +29,7 @@
      * @return 鐧诲綍鐨勭粨鏋滃璞�
      * @throws VciBaseException 鐧诲綍澶辫触鐨勬椂鍊欐姏鍑哄紓甯�
      */
-    LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException;
+    LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception;
 
     /**
      * 閫�鍑虹郴缁�
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java
index d3b564a..7bcfcf6 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/UIDataServiceI.java
@@ -53,6 +53,14 @@
     List<Tree> getDataForTree(UITreeQuery treeQuery) throws VciBaseException, PLException;
 
     /**
+     * 鑾峰彇鏍戝舰鏁版嵁(鏍规嵁鏌ヨ妯℃澘鏌ヨ瀵硅薄)
+     * @param treeQuery 鏍戝舰鏌ヨ鏉′欢
+     * @return 鏍戝舰鏁版嵁
+     * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
+     */
+    BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException;
+
+    /**
      * 璋冪敤鍓嶇疆浜嬩欢
      * @param baseModelDTOList 涓氬姟鏁版嵁鐨勪俊鎭�
      * @param baseLinkModelDTOList 閾炬帴绫诲瀷鐨勬暟鎹�
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
index b4be78a..8bc2aa7 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/LoginServiceImpl.java
@@ -135,7 +135,7 @@
      * @throws VciBaseException 鐧诲綍鍙戠敓寮傚父鐨勬椂鍊欏嚭鐜颁簡閿欒
      */
     @Override
-    public LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException {
+    public LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception {
         return login(userDTO,clientInfo,true);
     }
 
@@ -147,7 +147,7 @@
      * @return 鎵ц缁撴灉
      * @throws VciBaseException 鍙傛暟閿欒锛岀敤鎴蜂笉鑳界櫥褰曠瓑浼氭姏鍑哄紓甯�
      */
-    private LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo, boolean checkPassword/*鍗曠偣鐧诲綍涓嶉渶瑕佹牎楠屽瘑鐮�*/) throws VciBaseException {
+    private LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo, boolean checkPassword/*鍗曠偣鐧诲綍涓嶉渶瑕佹牎楠屽瘑鐮�*/) throws Exception {
         LoginResultBO loginResult = new LoginResultBO();
         loginResult.setSuccess(false);
 
@@ -238,7 +238,8 @@
         }
         //6銆佺櫥褰曟垚鍔熶箣鍚庨渶瑕佸鐞嗙殑閫昏緫
         user.setLastLoginTime(new Date());//鏈�鍚庣櫥褰曟椂闂�
-        user.setPwdWrongCount(0);//瀵嗙爜閿欒娆℃暟娓�0
+        //user.setPwdWrongCount(0);//鐧诲綍鎴愬姛瀵嗙爜閿欒娆℃暟娓�0
+        platformClientUtil.getFrameworkService().updateLogonInfo(user.getOid(),true);
         //澶勭悊鐢ㄦ埛鐧诲綍鎴愬姛鐨剆ession
         SessionInfo sessionInfo = new SessionInfo();
         sessionInfo.setToken(token);
@@ -529,7 +530,7 @@
      * @throws VciBaseException 鐧诲綍澶辫触鐨勬椂鍊欐姏鍑哄紓甯�
      */
     @Override
-    public LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws PLException {
+    public LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws Exception {
         return login(userDTO,clientInfo,false);
     }
 
diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
index 3e1c57f..e07bba7 100644
--- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
+++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/UIDataServiceImpl.java
@@ -391,7 +391,7 @@
         if(StringUtils.isBlank(treeDefineVO.getLinkType())){
             //杩欎釜鏄笟鍔$被鍨嬬殑鑷弬鐓�
             //浠ュ墠鐨勫钩鍙版病鏈夊鑷弬鐓ц繖绉嶆湁鍏ㄩ儴鏌ヨ鐨�
-            OsBtmTypeVO btmTypeVO = btmService.getBtmById(treeDefineVO.getBtmType(),attributeVOMap);
+            OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType());
             queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
             queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values());
 
@@ -543,6 +543,62 @@
     }
 
     /**
+     * 鑾峰彇鏁版嵁(鏍规嵁鏌ヨ妯℃澘鏌ヨ瀵硅薄锛岃繑鍥炵殑缁撴瀯鎸夌収ui瀹氫箟锛屽畾涔夌殑妯℃澘绫诲瀷杩斿洖)
+     * @param treeQuery 鏍戝舰鏌ヨ鏉′欢
+     * @return 鏍戝舰鏁版嵁
+     * @throws VciBaseException 鏌ヨ鍑洪敊鐨勬椂鍊欎細鎶涘嚭寮傚父
+     */
+    @Override
+    public BaseResult getDataByTemp(UITreeQuery treeQuery) throws VciBaseException, PLException {
+        VciBaseUtil.alertNotNull(treeQuery,"琛ㄥ崟鐨勬煡璇㈠璞�",treeQuery.getComponentOid(),"褰撳墠缁勪欢鐨勪富閿�");
+        //1銆佸厛鏌ヨ椤甸潰瀹氫箟缁勪欢
+        Map<String, OsAttributeVO> attributeVOMap = attrService.selectAllAttributeMap();
+        UIComponentVO componentVO = uiEngineService.getComponentByOid(treeQuery.getComponentOid(),attributeVOMap);
+        if(componentVO == null || StringUtils.isBlank(componentVO.getOid())){
+            throw new VciBaseException("鏈幏鍙栧埌鐣岄潰閰嶇疆淇℃伅锛�");
+        }
+        // 2銆佹牴鎹厤缃殑鏌ヨ妯℃澘鏌ヨ鏁版嵁(闇�瑕佽�冭檻鍏ㄩ潰涓�鐐�),
+        // 杩欏効鏍规嵁褰撳墠绫诲瀷鏉ヨ幏鍙栨槸浠�涔堢被鍨嬬殑鏌ヨ妯℃澘锛岀劧鍚庡仛瀵瑰簲鐨勬煡璇㈠鐞�
+
+        UITreeDefineVO treeDefineVO = componentVO.getTreeDefineVO();
+        String queryTemplate = StringUtils.isNotBlank(treeQuery.getQueryTemplate())?treeQuery.getQueryTemplate():(!CollectionUtils.isEmpty(treeQuery.getSourceData())?treeQuery.getSourceData().getOrDefault("querytemplate",treeDefineVO.getQueryTemplateName()):treeDefineVO.getQueryTemplateName());
+        Map<String, String> replaceMap = wrapperReplaceMap(treeQuery.getSourceData());
+        List<String> queryFieldList = new ArrayList<>();
+        String valueField = treeQuery.isLinkTypeFlag()?(!treeDefineVO.isOrientation()?"${oid}" + TREE_NODE_ID_SEP + "${t_oid}":"${oid}" + TREE_NODE_ID_SEP + "${f_oid}"):(StringUtils.isNotBlank(treeQuery.getValueField())?treeQuery.getValueField():"oid");
+        String textField = StringUtils.isNotBlank(treeDefineVO.getTreeNodeExpression())?treeDefineVO.getTreeNodeExpression():(StringUtils.isNotBlank(treeQuery.getTextField())?treeQuery.getTextField():"name");
+        String rootExpress = StringUtils.isNotBlank(treeQuery.getRootExpress())?treeQuery.getRootExpress():treeDefineVO.getRootContent();
+        String parentFieldName = treeQuery.getParentFieldName();
+        if(parentFieldName.contains(",")){
+            parentFieldName = parentFieldName.split(",")[0];
+        }
+        queryFieldList.add("creator_name");
+        queryFieldList.add("lastmodifier_name");
+        OsBtmTypeVO btmTypeVO = btmService.getBtmByName(treeDefineVO.getBtmType());
+        queryFieldList.addAll(btmTypeVO.getAttributes().stream().map(OsBtmTypeAttributeVO::getId).collect(Collectors.toList()));
+        queryFieldList.addAll(WebBoServiceImpl.BO_BASE_FIELD_MAP.values());
+
+        addQueryField(queryFieldList,valueField);
+        addQueryField(queryFieldList,textField);
+        List<BusinessObject> rootCbos = boService.queryCBOByScheme(queryTemplate, null, replaceMap);
+
+        //3銆佹牴鎹笉鍚岀殑缁勪欢杩斿洖涓嶅悓鐨勬暟鎹被鍨嬶紙鏍戙�佸垪琛ㄣ�佹爲琛ㄣ�佽嚜瀹氫箟妯℃澘銆佽〃鍗曠瓑锛�
+        List<Tree> rootTreeList = null;
+        if(!CollectionUtils.isEmpty(rootCbos)){
+            rootTreeList = cbo2Trees(rootCbos,valueField,StringUtils.isBlank(rootExpress)?textField:rootExpress,parentFieldName,treeQuery.isShowCheckBox(),null);
+            TreeQueryObject treeQueryObject = new TreeQueryObject();
+            treeQueryObject.setValueField(valueField);
+            treeQueryObject.setTextField(textField);
+            treeQueryObject.setParentFieldName(parentFieldName);
+            treeQueryObject.setShowCheckBox(treeQuery.isShowCheckBox());
+            if(UITreeLoadTypeEnum.ALL.getValue().equalsIgnoreCase(treeDefineVO.getLoadType())){
+                treeQueryObject.setQueryAllLevel(false);
+            }
+            //queryTreeForBO(rootTreeList,treeDefineVO.getQueryTemplateName(),queryFieldList,treeQueryObject);
+        }
+        return BaseResult.tree(rootTreeList);
+    }
+
+    /**
      * 涓氬姟绫诲瀷鐨勫睘鎬ф煡璇�
      * @param rootTreeList 鏍硅妭鐐圭殑鍐呭
      * @param queryTemplate 鏌ヨ妯℃澘
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 0388ece..15dda69 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
@@ -3724,7 +3724,7 @@
                 return res;
             }
             // 閾炬帴绫诲瀷涓嶄负绌烘椂锛岄渶瑕佸悓鏃舵鏌ラ摼鎺ョ被鍨嬪強閾炬帴绫诲瀷涓嬬殑鏌ヨ妯℃澘鏄惁鏈夋晥
-            if(Func.isBlank(linkType)){
+            if(Func.isNotBlank(linkType)){
                 if(!(super.checkLinkTypeTxtIsOk("閾炬帴绫诲瀷", linkType,false))){
                     res = false;
                     return res;

--
Gitblit v1.9.3