Просмотр исходного кода

feat:优化登录租户登录逻辑,动态表单中table的使用、回显数据逻辑,租户查询主库字典

韩帛霖 1 год назад
Родитель
Сommit
699bce2faa

+ 1 - 1
zkqy-admin/src/main/java/com/zkqy/web/controller/system/LoginPageConfigurationController.java

@@ -72,7 +72,7 @@ public class LoginPageConfigurationController extends BaseController {
     @Anonymous
     @GetMapping("/queryLoginPageConfigurationInfo/{loginPageNumber}")
     public AjaxResult queryLoginPageConfigurationInfo(@PathVariable("loginPageNumber") String loginPageNumber) {
-        return success(loginPageConfigurationService.selectLoginPageConfigurationByLoginPageNumber(loginPageNumber));
+        return success(loginPageConfigurationService.selectLoginPageConfigurationByLoginPageNumber(loginPageNumber,"client"));
     }
 
     /**

+ 1 - 1
zkqy-admin/src/main/java/com/zkqy/web/controller/system/SysLoginController.java

@@ -166,7 +166,7 @@ public class SysLoginController {
     public AjaxResult isTenantExist(String tenantCode) {
         SysTenant sysTenantInfo = iSysTenantService.selectSysTenantByTenantCode(tenantCode);
         if (sysTenantInfo != null) {
-            sysTenantInfo.setLoginPageConfiguration(loginPageConfigurationService.selectLoginPageConfigurationByLoginPageNumber(tenantCode));
+            sysTenantInfo.setLoginPageConfiguration(loginPageConfigurationService.selectLoginPageConfigurationByLoginPageNumber(tenantCode,"client"));
             return AjaxResult.success(sysTenantInfo);
         }
         return AjaxResult.error("租户不存在");

+ 60 - 23
zkqy-business/src/main/java/com/zkqy/business/controller/CommonBtnController.java

@@ -218,29 +218,65 @@ public class CommonBtnController extends BaseController {
         ((ArrayList) relationJsonMap.get("subFormList")).forEach(rtem -> {
             ((Map) rtem).put("showTemplate", commonEntityList.stream().filter(ctem -> ctem.getResultMap().get("formKey").equals(((Map) rtem).get("formKey"))).findFirst().get().getResultMap());
         });
-        // 表单组回显数据
-        String tableName = commonEntity.getBasicMap().get("tableName").toString();
-        // 通用查询方法
-        CommonEntity common = new CommonEntity();
-        common.getBasicMap().put("tableName", tableName);
-        commonEntity.getConditionMap().entrySet().forEach(item -> {
-            common.getQueryMap().put(item.getKey(), item.getValue());
-        });
-        //  主
-        List<CommonEntity> retCommonEntityList = commonService.selectList(common);
-        ((Map) relationJsonMap.get("mainForm")).put("showValue", retCommonEntityList);
-
-        // 从
-        ((ArrayList) relationJsonMap.get("subFormList")).forEach(item -> {
-            String[] congTableOInfo = ((Map) item).get("formItem").toString().split("\\.");
-            String[] zhuTableOWhere = ((Map) item).get("relateMainItem").toString().split("\\.");
-            CommonEntity congCommon = new CommonEntity();
-            congCommon.getBasicMap().put("tableName", congTableOInfo[0]);
-            Object val = retCommonEntityList.get(0).getResultMap().get(StringUtils.toCamelCase(zhuTableOWhere[1]));
-            congCommon.getQueryMap().put(congTableOInfo[1], val);
-            ((Map) item).put("showValue", commonService.selectList(congCommon));
-        });
-
+        if (!dragTableBtn.getBtnType().equals("INSERT")) {
+            // 表单组回显数据
+            String zhuTableName = commonEntity.getBasicMap().get("tableName").toString();
+            // 通用查询方法
+            CommonEntity common = new CommonEntity();
+            common.getBasicMap().put("tableName", zhuTableName);
+            commonEntity.getConditionMap().entrySet().forEach(item -> {
+                common.getQueryMap().put(item.getKey(), item.getValue());
+            });
+            //  主
+            List<CommonEntity> retCommonEntityList = commonService.selectList(common);
+            ((Map) relationJsonMap.get("mainForm")).put("showValue", retCommonEntityList);
+
+            // 从
+            ArrayList subFormList = ((ArrayList) relationJsonMap.get("subFormList"));
+
+            subFormList.forEach(item -> {
+                String[] congTableOInfo = ((Map) item).get("formItem").toString().split("\\.");
+                String[] zhuTableOWhere = ((Map) item).get("relateMainItem").toString().split("\\.");
+                CommonEntity congCommon = new CommonEntity();
+                congCommon.getBasicMap().put("tableName", congTableOInfo[0]);
+                Object val = retCommonEntityList.get(0).getResultMap().get(StringUtils.toCamelCase(zhuTableOWhere[1]));
+                congCommon.getQueryMap().put(congTableOInfo[1], val);
+
+                List<Map<String, Object>> queryListMap = (List<Map<String, Object>>) ((Map) item).get("queryMap");
+                queryListMap.forEach(qtem -> {
+                    if (qtem.get("type").equals("defaultValue")) {  // 当前查询条件是默认的
+                        congCommon.getQueryMap().put(qtem.get("fieldName").toString(), qtem.get("refValue"));
+                    }
+                    if (qtem.get("type").equals("relateValue")) {
+                        if (qtem.get("tableName").equals(zhuTableName)) {  // 当前关联条件是主表单
+                            Object queryVal = retCommonEntityList.get(0).getResultMap().get(qtem.get("relaField").toString().split("\\.")[1]);
+                            congCommon.getQueryMap().put(qtem.get("fieldName").toString(), queryVal);
+                        } else {  // 关联从表单
+                            String tableWhere[] = qtem.get("relaField").toString().split("\\.");
+                            Map<String, Object> getCurrentMap = (Map<String, Object>) subFormList.stream().filter(stem -> ((Map) stem).get("dfTableName").equals(
+                                    tableWhere[0]
+                            )).findFirst().get();
+//                                ((Map) getCurrentMap.get("showValue")).get(tableWhere[1]);
+                            CommonEntity common1 = (CommonEntity) ((ArrayList) getCurrentMap.get("showValue")).get(0);
+                            Object queryVal = common1.getResultMap().get(tableWhere[1]);
+
+                            congCommon.getQueryMap().put(qtem.get("fieldName").toString(), queryVal);
+                        }
+
+                        // retCommonEntityList.get(0).getResultMap().get(StringUtils.toCamelCase(zhuTableOWhere[1]));
+
+                        // ((Map<?, ?>) item).get("dfTableName").equals(qtem.get("tableName"));
+
+                        // zhuTableName
+
+                        // qtem.get("refValue") 某张表的某个字段值
+
+                    }
+                });
+
+                ((Map) item).put("showValue", commonService.selectList(congCommon));
+            });
+        }
         //得到【df_form_sql】
         String dfFormSql = ((Map) ((Map) relationJsonMap.get("mainForm")).get("showTemplate")).get("dfFormSql").toString();
         ObjectMapper objectMapper = new ObjectMapper();
@@ -258,6 +294,7 @@ public class CommonBtnController extends BaseController {
             e.printStackTrace();
         }
 
+
         ((ArrayList) relationJsonMap.get("subFormList")).forEach(rtem -> {
             String dfFormSql1 = ((Map) ((Map) rtem).get("showTemplate")).get("dfFormSql").toString();
             ObjectMapper objectMapper1 = new ObjectMapper();

+ 13 - 13
zkqy-process-execution/src/main/java/com/zkqy/execution/produce/utils/EchoNodeFormData.java

@@ -1,7 +1,6 @@
 package com.zkqy.execution.produce.utils;
 
 
-
 import com.zkqy.common.utils.StringUtils;
 import com.zkqy.execution.produce.dispersed.entity.BpmExecuteNode;
 import com.zkqy.execution.produce.dispersed.entity.CommonEntity;
@@ -84,16 +83,16 @@ public class EchoNodeFormData {
                 CommonEntity common = commonMapper.selectOne(item.getTableName(), item.getCondition());
                 if (common != null) {
                     //带流程key
-                    if(item.isNodeOnlyData()){
+                    if (item.isNodeOnlyData()) {
                         //节点数据回显逻辑
                         commonEntity.get().getResultMap().putAll(common.getResultMap());
-                    //不带流程key且
-                    }else {
-                        if(item.getIsTableNameKey()){
+                        //不带流程key且
+                    } else {
+                        if (item.getIsTableNameKey()) {
                             //不是节点数据的表名做Key\对象做键
                             String tableName = StringUtils.toCamelCase(item.getTableName());//转驼峰
                             commonEntity.get().getResultMap().put(tableName, common.getResultMap());
-                        }else {
+                        } else {
                             //带流程key但是我不想让他以表名作为键
                             commonEntity.get().getResultMap().putAll(common.getResultMap());
                         }
@@ -105,12 +104,19 @@ public class EchoNodeFormData {
     }
 
     /**
-     * 节点表单中的新增方法
+     * 节点表单中的批量新增、修改、删除方法
+     * 先行删除后新增、修改
      *
      * @param bpmRunNodeFormDateVo
      * @return
      */
     public int handleSubmitForm(BpmRunNodeFormDateVo bpmRunNodeFormDateVo) {
+        // 删除
+        if (bpmRunNodeFormDateVo.getDeleteCommonEntityList().size() != 0) {
+            bpmRunNodeFormDateVo.getDeleteCommonEntityList().forEach(item -> {
+                iCommonService.batchDelete(item);
+            });
+        }
         // 处理新增
         if (bpmRunNodeFormDateVo.getInsertCommonEntityList().size() != 0) {
             bpmRunNodeFormDateVo.getInsertCommonEntityList().forEach(item -> {
@@ -123,12 +129,6 @@ public class EchoNodeFormData {
                 iCommonService.edit(item);
             });
         }
-        // 删除
-        if (bpmRunNodeFormDateVo.getDeleteCommonEntityList().size() != 0) {
-            bpmRunNodeFormDateVo.getDeleteCommonEntityList().forEach(item -> {
-                iCommonService.batchDelete(item);
-            });
-        }
         return 1;
     }
 }

+ 2 - 1
zkqy-system/src/main/java/com/zkqy/system/mapper/LoginPageConfigurationMapper.java

@@ -1,6 +1,7 @@
 package com.zkqy.system.mapper;
 
 import com.zkqy.system.domain.LoginPageConfiguration;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -26,7 +27,7 @@ public interface LoginPageConfigurationMapper
      * @param loginPageNumber 登录页面配置信息编号
      * @return 登录页面配置信息
      */
-    LoginPageConfiguration selectLoginPageConfigurationByLoginPageNumber(String loginPageNumber);
+    LoginPageConfiguration selectLoginPageConfigurationByLoginPageNumber(@Param("loginPageNumber") String loginPageNumber, @Param("loginType") String loginType);
 
     /**
      * 查询登录页面配置信息列表

+ 1 - 1
zkqy-system/src/main/java/com/zkqy/system/service/ILoginPageConfigurationService.java

@@ -26,7 +26,7 @@ public interface ILoginPageConfigurationService
      * @param loginPageNumber 登录页面配置信息编号
      * @return 登录页面配置信息
      */
-    LoginPageConfiguration selectLoginPageConfigurationByLoginPageNumber(String loginPageNumber);
+    LoginPageConfiguration selectLoginPageConfigurationByLoginPageNumber(String loginPageNumber, String loginType);
 
     /**
      * 查询登录页面配置信息列表

+ 2 - 2
zkqy-system/src/main/java/com/zkqy/system/service/impl/LoginPageConfigurationServiceImpl.java

@@ -34,8 +34,8 @@ public class LoginPageConfigurationServiceImpl implements ILoginPageConfiguratio
     }
 
     @Override
-    public LoginPageConfiguration selectLoginPageConfigurationByLoginPageNumber(String loginPageNumber) {
-        return loginPageConfigurationMapper.selectLoginPageConfigurationByLoginPageNumber(loginPageNumber);
+    public LoginPageConfiguration selectLoginPageConfigurationByLoginPageNumber(String loginPageNumber, String loginType) {
+        return loginPageConfigurationMapper.selectLoginPageConfigurationByLoginPageNumber(loginPageNumber,  loginType);
     }
 
     /**

+ 1 - 1
zkqy-system/src/main/resources/mapper/system/LoginPageConfigurationMapper.xml

@@ -48,7 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectLoginPageConfigurationByLoginPageNumber" parameterType="string" resultMap="LoginPageConfigurationResult">
         <include refid="selectLoginPageConfigurationVo"/>
-        where login_page_number = #{loginPageNumber}
+        where login_page_number = #{loginPageNumber} and login_type = #{loginType}
     </select>
         
     <insert id="insertLoginPageConfiguration" parameterType="LoginPageConfiguration">

+ 1 - 1
zkqy-system/src/main/resources/mapper/system/SysDictDataMapper.xml

@@ -48,7 +48,7 @@
                create_by,
                create_time,
                remark
-        from sys_dict_data
+        from `ry-vue-call`.sys_dict_data
     </sql>
     <sql id="selectDictDataVoSan">
         select dict_value

+ 11 - 11
zkqy-ui/src/permission.js

@@ -1,14 +1,14 @@
 import router from './router'
 import store from './store'
-import { Message } from 'element-ui'
+import {Message} from 'element-ui'
 import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'
-import { getToken } from '@/utils/auth'
-import { isRelogin } from '@/utils/request'
+import {getToken} from '@/utils/auth'
+import {isRelogin} from '@/utils/request'
 
-NProgress.configure({ showSpinner: false })
+NProgress.configure({showSpinner: false})
 
-const whiteList = ['/login', '/register','/404']
+const whiteList = ['/login', '/register', '/404', '/401']
 
 router.beforeEach((to, from, next) => {
   NProgress.start()
@@ -16,7 +16,7 @@ router.beforeEach((to, from, next) => {
     to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
     /* has token*/
     if (to.path === '/login') {
-      next({ path: '/' })
+      next({path: '/'})
       NProgress.done()
     } else {
       if (store.getters.roles.length === 0) {
@@ -27,14 +27,14 @@ router.beforeEach((to, from, next) => {
           store.dispatch('GenerateRoutes').then(accessRoutes => {
             // 根据roles权限生成可访问的路由表
             router.addRoutes(accessRoutes) // 动态添加可访问路由表
-            next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
+            next({...to, replace: true}) // hack方法 确保addRoutes已完成
           })
         }).catch(err => {
-            store.dispatch('LogOut').then(() => {
-              Message.error(err)
-              next({ path: '/' })
-            })
+          store.dispatch('LogOut').then(() => {
+            Message.error(err)
+            next({path: '/'})
           })
+        })
       } else {
         next()
       }

+ 1 - 0
zkqy-ui/src/store/modules/user.js

@@ -132,6 +132,7 @@ const user = {
           commit('SET_TENANT', {})
           removeToken()
           localStorage.clear();
+          sessionStorage.clear();  // 清空缓存
           resolve()
         })
       })

+ 12 - 20
zkqy-ui/src/views/login.vue

@@ -149,34 +149,26 @@ export default {
       if (tenantCode != null) {
         // 得到tenantId 查询裤中是否存在该租户
         isTenantExist({tenantCode: tenantCode}).then(res => {
-
-          if (res == undefined) this.$router.push({path: "/404"})
-          if (res.data?.tenantId) { // 判断当前编号是否存在库中
-
+          if (res == undefined) {
+            this.$message.warning("请访问正确地址!")
+            this.$router.push({path: "/401"})
+          } else if (res.data?.tenantId) { // 判断当前编号是否存在库中
             this.tenantId = res.data.tenantId;
             this.loginForm.tenantID = this.tenantId;
-
-            // 得到租户的信息
-            this.config = res.data.loginPageConfiguration
-            this.setConfig();
-
-            // 如果当前租户没有配置登录页面则不可访问
-            if (this.config == null && this.config == undefined) {
-              // this.$router.push({path: "/404"})
-              this.getCode();
-              this.getCookie();
-            } else {
-              this.getCode();
-              this.getCookie();
+            if (res.data.loginPageConfiguration != null) {
+              // 得到租户的信息
+              this.config = res.data.loginPageConfiguration
+              this.setConfig();
             }
+            this.getCode();
+            this.getCookie();
           } else {
             // 当前访问链接中的租户编号不存在
-            this.$router.push({path: "/404"})
+            this.$router.push({path: "/401"})
           }
         })
       } else {
-        console.log('跳转')
-        this.$router.push({path: "/404"})
+        this.$router.push({path: "/401"})
       }
     },
     setConfig() {