From 57c62dd3e7d398e253c2db549b819d020040b1a5 Mon Sep 17 00:00:00 2001
From: kimi42345 <kimi42345@outlook.com>
Date: 星期日, 29 三月 2020 20:49:17 +0800
Subject: [PATCH] no message

---
 src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java |  183 ++++++++++++++++++++++++++-------------------
 1 files changed, 104 insertions(+), 79 deletions(-)

diff --git a/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java b/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java
index 9759a82..1b2cf0c 100644
--- a/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java
+++ b/src/main/java/com/highdatas/mdm/service/impl/MasterDataServiceImpl.java
@@ -47,6 +47,9 @@
     RedisClient redisClient;
     @Autowired
     IMaintainFieldService maintainFieldService;
+    @Autowired
+    IMasterAuthorService masterAuthorService;
+
     @Resource
     protected DataSource dataSource;
 
@@ -75,41 +78,40 @@
     }
 
     @Override
-    public Result selectList(String tableName) {
-        return selectList(tableName, null,null, (maintainService.getNowVersion(tableName).getVersion()));
+    public Result selectList(TUser user, String tableName) {
+        return selectList(user, tableName, null,null, (maintainService.getNowVersion(tableName).getVersion()));
     }
 
 
     @Override
-    public Result selectList(String tableName, String whereSegment) {
-        return selectList(tableName, whereSegment, (maintainService.getNowVersion(tableName).getVersion()));
+    public Result selectList(TUser user, String tableName, String whereSegment) {
+        return selectList(user,tableName, whereSegment, (maintainService.getNowVersion(tableName).getVersion()));
     }
 
     @Override
-    public Result selectList(String tableName, String whereSegment, String version) {
-        return selectList(tableName, null, whereSegment, version);
+    public Result selectList(TUser user,String tableName, String whereSegment, String version) {
+        return selectList(user, tableName, null, whereSegment, version);
     }
 
     @Override
-    public Result selectList(String tableName, List<String> fieldList, String whereSegment) {
-        return selectList(tableName, fieldList, whereSegment, maintainService.getNowVersion(tableName).getVersion());
+    public Result selectList(TUser user, String tableName, List<String> fieldList, String whereSegment) {
+        return selectList(user, tableName, fieldList, whereSegment, maintainService.getNowVersion(tableName).getVersion());
     }
 
     @Override
-    public Result selectList(String tableName,List<String> fieldList, String whereSegment, String version) {
+    public Result selectList(TUser user, String tableName,List<String> fieldList, String whereSegment, String version) {
         try{
             JSONObject object = new JSONObject();
-
+            //TODO only add  version
+            Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
             String fields;
             if (fieldList == null || fieldList.size() == 0) {
-                fields = getFields(tableName);
+                fields = getFields(user, tableName, maintainFromVersion);
             } else {
                 fields = fieldList.stream().collect(Collectors.joining(Constant.COMMA));
             }
             //std
             List<Map<String, Object>> select = mapper.select(tableName, fields, whereSegment);
-            //TODO only add  version
-            Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
 
             List<Map<String, Object>> maps = maintainService.selectVersionOperatorByType(tableName, maintainFromVersion.getId(), Operate.create);
 
@@ -124,8 +126,8 @@
 
 
     @Override
-    public Result selectList(String tableName, List<String> fields) {
-        return selectList(tableName,fields,Constant.WHERE_DEFAULT,(maintainService.getNowVersion(tableName).getVersion()));
+    public Result selectList(TUser user, String tableName, List<String> fields) {
+        return selectList(user, tableName,fields,Constant.WHERE_DEFAULT,(maintainService.getNowVersion(tableName).getVersion()));
     }
 
     public Long getCount(String tableName, String whereSegment) {
@@ -143,20 +145,24 @@
     }
 
     @Override
-    public Long getCountByVersion (String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
+    public Long getCountByVersion (TUser user, String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
         try{
             Maintain maintain = maintainService.selectById(maintainId);
 
-            String fields = getFields(tableName, maintain);
-            String Hfields = getFields(tableName, Constant.H, maintain);
-            String tempFields = getTempFields(tableName, maintain);
-            String A1fields = getFields(tableName, Constant.A1, maintain);
-            String A2fields = getFields(tableName, Constant.A2, maintain);
-            String tempHFields = getTempFields(tableName, Constant.H, maintain);
+            String fields = getFields(user,tableName, maintain);
+            String Hfields = getFields(user, tableName, Constant.H, maintain);
+            String tempFields = getTempFields(user, tableName, maintain);
+            String A1fields = getFields(user, tableName, Constant.A1, maintain);
+            String A2fields = getFields(user, tableName, Constant.A2, maintain);
+            String tempHFields = getTempFields(user, tableName, Constant.H, maintain);
             if (StringUtils.isEmpty(whereSegment)) {
                 whereSegment = Constant.WHERE_DEFAULT;
             }
-            Long count = mapper.getCountByVersion(tableName, tableTempName, fields, tempFields, Hfields, A1fields,A2fields,tempHFields, fromOrderNo, toOrderNo, DbUtils.quotedStr(maintainId), whereSegment);
+            Long count;
+            if (StringUtils.isEmpty(fields)) {
+                return 0L;
+            }
+            count = mapper.getCountByVersion(tableName, tableTempName, fields, tempFields, Hfields, A1fields,A2fields,tempHFields, fromOrderNo, toOrderNo, DbUtils.quotedStr(maintainId), whereSegment);
             return count;
         }
         catch (Exception e) {
@@ -165,16 +171,16 @@
         }
     }
 
-    public Long getCountByMaxVersion (String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
+    public Long getCountByMaxVersion (TUser user, String maintainId, String tableName,String tableTempName,Integer fromOrderNo, Integer toOrderNo, String whereSegment) {
         try{
             Maintain maintain = maintainService.selectById(maintainId);
 
-            String fields = getFields(tableName, maintain);
-            String Hfields = getFields(tableName, Constant.H, maintain);
-            String tempFields = getTempFields(tableName, maintain);
-            String A1fields = getFields(tableName, Constant.A1, maintain);
-            String A2fields = getFields(tableName, Constant.A2, maintain);
-            String tempHFields = getTempFields(tableName, Constant.H, maintain);
+            String fields = getFields(user, tableName, maintain);
+            String Hfields = getFields(user, tableName, Constant.H, maintain);
+            String tempFields = getTempFields(user, tableName, maintain);
+            String A1fields = getFields(user, tableName, Constant.A1, maintain);
+            String A2fields = getFields(user, tableName, Constant.A2, maintain);
+            String tempHFields = getTempFields(user, tableName, Constant.H, maintain);
             if (StringUtils.isEmpty(whereSegment)) {
                 whereSegment = Constant.WHERE_DEFAULT;
             }
@@ -194,9 +200,9 @@
     }
 
     @Override
-    public String getFields(String tableName, Maintain maintain) {
+    public String getFields(TUser user, String tableName, Maintain maintain) {
 
-        return getFields(tableName, null, maintain);
+        return getFields(user, tableName, null, maintain);
     }
 
     private String getCaseWhenFields(String tableName) {
@@ -233,9 +239,17 @@
     }
 
     @Override
-    public String getFields(String tableName, String alias, Maintain maintain) {
-        List<SysField> fields = fieldService.getFieldByMaintain(maintain.getId());
+    public String getFields(TUser user, String tableName, String alias, Maintain maintain) {
+        List<SysField> fields;
+        if (user == null) {
+            fields = fieldService.getFieldByMaintain(maintain.getId());
+        }else {
+            fields = masterAuthorService.getField(user.getUserId(), maintain.getId());
+        }
         ContentBuilder contentBuilder = new ContentBuilder(Constant.COMMA);
+        if (fields == null) {
+            return Constant.EMPTY_Str;
+        }
         if (!fields.contains(Constant.ID)) {
             fields.add(new SysField().setField(Constant.ID));
         }
@@ -258,17 +272,18 @@
     }
 
     @Override
-    public String getTempFields(String tableName, Maintain maintain) {
-        return getTempFields(tableName, null, maintain);
+    public String getTempFields(TUser user, String tableName, Maintain maintain) {
+        return getTempFields(user, tableName, null, maintain);
     }
 
     @Override
-    public String getTempFields(String tableName) {
-        return getTempFields(tableName, Constant.EMPTY_Str);
+    public String getTempFields(TUser user, String tableName) {
+        return getTempFields(user, tableName, Constant.EMPTY_Str);
     }
     @Override
-    public String getTempFields(String tableName, String alias) {
+    public String getTempFields(TUser user, String tableName, String alias) {
         List<TableSchemaResult> tableField = mapper.getTableField(tableName);
+
         ContentBuilder contentBuilder = new ContentBuilder(Constant.COMMA);
         for (TableSchemaResult tableSchemaResult : tableField) {
             String fieldName = tableSchemaResult.getFieldName();
@@ -290,8 +305,16 @@
     }
 
     @Override
-    public String getTempFields(String tableName, String alias, Maintain maintain) {
-        List<SysField> fields = fieldService.getFieldByMaintain(maintain.getId());
+    public String getTempFields(TUser user, String tableName, String alias, Maintain maintain) {
+        List<SysField> fields;
+        if (user == null) {
+            fields = fieldService.getFieldByMaintain(maintain.getId());
+        }else {
+            fields = masterAuthorService.getField(user.getUserId(), maintain.getId());
+        }
+        if (fields == null) {
+            return Constant.EMPTY_Str;
+        }
         ContentBuilder contentBuilder = new ContentBuilder(Constant.COMMA);
         if (!fields.contains(Constant.ID)) {
             fields.add(new SysField().setField(Constant.ID));
@@ -317,45 +340,45 @@
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName, Integer pageNo, Integer pageSize, boolean findMax) {
-        return selectListByPageByVersion(tableName,Constant.WHERE_DEFAULT,pageNo,pageSize, findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, Integer pageNo, Integer pageSize, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,Constant.WHERE_DEFAULT,pageNo,pageSize, findMax);
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, boolean findMax) {
-        return selectListByPageByVersion(tableName,null, whereSegment,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, String whereSegment, Integer pageNo, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,null, whereSegment,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName, Integer pageNo, String version, boolean findMax) {
-        return selectListByPageByVersion(tableName,null,Constant.WHERE_DEFAULT,pageNo, null, version, findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, Integer pageNo, String version, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,null,Constant.WHERE_DEFAULT,pageNo, null, version, findMax);
     }
     @Override
-    public Result selectListByPageByVersion(String tableName, Integer pageNo, boolean findMax) {
-        return selectListByPageByVersion(tableName,null,Constant.WHERE_DEFAULT,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, Integer pageNo, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,null,Constant.WHERE_DEFAULT,pageNo, null, String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
-        return selectListByPageByVersion(tableName,null,whereSegment,pageNo,pageSize, findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,null,whereSegment,pageNo,pageSize, findMax);
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName, List<String> fieldList, String whereSegment, Integer pageNo, boolean findMax) {
-        return selectListByPageByVersion(tableName,null,whereSegment,pageNo, null, findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, List<String> fieldList, String whereSegment, Integer pageNo, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,null,whereSegment,pageNo, null, findMax);
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName, List<String> fieldList, Integer pageNo, boolean findMax) {
-        return selectListByPageByVersion(tableName,null,Constant.WHERE_DEFAULT,pageNo, findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, List<String> fieldList, Integer pageNo, boolean findMax) {
+        return selectListByPageByVersion(user, tableName,null,Constant.WHERE_DEFAULT,pageNo, findMax);
     }
     @Override
-    public Result selectListByPageByVersion(String tableName, String whereSegment, Integer pageNo, String version, boolean findMax) {
-        return selectListByPageByVersion(tableName, null,whereSegment, pageNo, null,version, findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName, String whereSegment, Integer pageNo, String version, boolean findMax) {
+        return selectListByPageByVersion(user, tableName, null,whereSegment, pageNo, null,version, findMax);
     }
 
     @Override
-    public List<Map<String, Object>> selectListByVersion(String tableName, List<String> fieldList, String whereSegment, String version, boolean findMax) {
+    public List<Map<String, Object>> selectListByVersion(TUser user, String tableName, List<String> fieldList, String whereSegment, String version, boolean findMax) {
         Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
         Maintain nowVersionMaintain = maintainService.getNowVersion(tableName);
         boolean isMax = maintainService.checkdMaxVersion(maintainFromVersion.getId());
@@ -379,12 +402,12 @@
 
         String tempHfields;
         if (fieldList == null || fieldList.size() == 0) {
-            fields = getFields(tableName, maintainFromVersion);
-            Hfields = getFields(tableName,Constant.H, maintainFromVersion);
-            A1fields = getFields(tableName,Constant.A1, maintainFromVersion);
-            A2fields = getFields(tableName,Constant.A2, maintainFromVersion);
-            tempFields = getTempFields(tableName, maintainFromVersion);
-            tempHfields = getTempFields(tableName, Constant.H, maintainFromVersion);
+            fields = getFields(user, tableName, maintainFromVersion);
+            Hfields = getFields(user, tableName,Constant.H, maintainFromVersion);
+            A1fields = getFields(user, tableName,Constant.A1, maintainFromVersion);
+            A2fields = getFields(user, tableName,Constant.A2, maintainFromVersion);
+            tempFields = getTempFields(user, tableName, maintainFromVersion);
+            tempHfields = getTempFields(user, tableName, Constant.H, maintainFromVersion);
         } else {
             fields = fieldList.stream().collect(Collectors.joining(Constant.COMMA));
             Hfields = fieldList.stream().map(s -> MessageFormat.format(Constant.Alias,Constant.H, s)).collect(Collectors.joining(Constant.COMMA));
@@ -423,8 +446,7 @@
         return result;
     }
     @Override
-    public Result selectListByPageByVersion(String tableName, List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, String version, boolean findMax) {
-
+    public Result selectListByPageByVersion(TUser user, String tableName, List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, String version, boolean findMax) {
         Maintain maintainFromVersion = maintainService.getMaintainFromVersion(tableName, version);
         Maintain nowVersionMaintain = maintainService.getNowVersion(tableName);
         boolean isMax = maintainService.checkdMaxVersion(maintainFromVersion.getId());
@@ -448,11 +470,13 @@
            if (isFirst && nowVersionMaintain == null) {
                nowVersionOrderNo = nowVersionOrderNo - 1;
            }
-            count = getCountByMaxVersion(maintainFromVersion.getId(), tableName, tableTempName, fromVersionOrderNo, nowVersionOrderNo,  whereSegment);
+            count = getCountByMaxVersion(user, maintainFromVersion.getId(), tableName, tableTempName, fromVersionOrderNo, nowVersionOrderNo,  whereSegment);
         }else {
-            count = getCountByVersion(maintainFromVersion.getId(), tableName, tableTempName, nowVersionOrderNo, fromVersionOrderNo, whereSegment);
+            count = getCountByVersion(user, maintainFromVersion.getId(), tableName, tableTempName, nowVersionOrderNo, fromVersionOrderNo, whereSegment);
         }
-
+        if (count == 0) {
+            return Result.success(null);
+        }
         //mapper.selectByPageByVersion(tableName, tableTempName, fieldList, whereSegment,);
         Page page = new Page(count);
         if (pageSize != null && pageSize.compareTo(1) != -1) {
@@ -473,12 +497,12 @@
 
         String tempHfields;
         if (fieldList == null || fieldList.size() == 0) {
-            fields = getFields(tableName, maintainFromVersion);
-            Hfields = getFields(tableName,Constant.H, maintainFromVersion);
-            A1fields = getFields(tableName,Constant.A1, maintainFromVersion);
-            A2fields = getFields(tableName,Constant.A2, maintainFromVersion);
-            tempFields = getTempFields(tableName, maintainFromVersion);
-            tempHfields = getTempFields(tableName, Constant.H, maintainFromVersion);
+            fields = getFields(user, tableName, maintainFromVersion);
+            Hfields = getFields(user, tableName,Constant.H, maintainFromVersion);
+            A1fields = getFields(user, tableName,Constant.A1, maintainFromVersion);
+            A2fields = getFields(user, tableName,Constant.A2, maintainFromVersion);
+            tempFields = getTempFields(user, tableName, maintainFromVersion);
+            tempHfields = getTempFields(user, tableName, Constant.H, maintainFromVersion);
         } else {
             fields = fieldList.stream().collect(Collectors.joining(Constant.COMMA));
             Hfields = fieldList.stream().map(s -> MessageFormat.format(Constant.Alias,Constant.H, s)).collect(Collectors.joining(Constant.COMMA));
@@ -539,7 +563,6 @@
 
     @Override
     public Maintain uploadedData(String tableName, SysAssembleUpdateType uploadType, String userId) {
-
         MenuMapping menuMapping = menuMappingService.selectOne(new EntityWrapper<MenuMapping>().eq("table_name",tableName));
         SysOperateLog operateLog = new SysOperateLog();
 
@@ -701,8 +724,8 @@
     }
 
     @Override
-    public Result selectListByPageByVersion(String tableName,List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
-       return  selectListByPageByVersion(tableName, fieldList, whereSegment,pageNo,pageSize,String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
+    public Result selectListByPageByVersion(TUser user, String tableName,List<String> fieldList, String whereSegment, Integer pageNo, Integer pageSize, boolean findMax) {
+       return  selectListByPageByVersion(user, tableName, fieldList, whereSegment,pageNo,pageSize,String.valueOf(maintainService.getNowVersion(tableName).getVersion()), findMax);
     }
 
     @Override
@@ -1038,7 +1061,9 @@
         ArrayList<String> fieldList = new ArrayList<>();
         fieldList.add(field);
         fieldList.add(Constant.ID);
-        List<Map<String, Object>> maps = selectListByVersion(tableName, fieldList, Constant.WHERE_DEFAULT, max.getVersion(), false);
+        // where
+
+        List<Map<String, Object>> maps = selectListByVersion(null, tableName, fieldList, Constant.WHERE_DEFAULT, max.getVersion(), false);
         String tempTableName = tableName + Constant.RECORD;
         List<Map<String, Object>> tempVals = mapper.getOneTempFieldDataByMaintainExtent(DbUtils.quotedStr(tableName), tempTableName, field, min.getOrderNo(), max.getOrderNo());
         maps.addAll(tempVals);

--
Gitblit v1.8.0