From b5592792d82a48f3750fafe66ad0244aa6ec8884 Mon Sep 17 00:00:00 2001 From: coderliux Date: Sun, 5 Jan 2025 19:50:04 -0800 Subject: [PATCH 1/3] fix published page history query method --- .../it/common/base/PageQueryVo.java | 1 + .../it/mapper/PageHistoryMapper.java | 4 +- .../it/model/dto/PublishedPageVo.java | 1 + .../app/impl/I18nEntryServiceImpl.java | 19 ++--- .../material/impl/BlockServiceImpl.java | 75 ++++++++----------- 5 files changed, 46 insertions(+), 54 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java b/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java index 551beae9..753a22f8 100644 --- a/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java +++ b/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java @@ -23,6 +23,7 @@ public class PageQueryVo { * 最大分页数量 */ public static final int PAGESIZE_MAX = 200; + /** * 默认分页数量 */ diff --git a/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java b/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java index 960ba41b..b9f3abba 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java @@ -85,10 +85,10 @@ public interface PageHistoryMapper extends BaseMapper { /** * 查询发布的页面记录 * - * @param iPage the iPage + * @param iPage the iPage * @param pageHistoryVo the pageQueryVo * @return page history */ IPage findLatestPublishPage(IPage iPage, - @Param("pageHistory") PublishedPageVo pageHistoryVo); + @Param("pageHistory") PublishedPageVo pageHistoryVo); } \ No newline at end of file diff --git a/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java b/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java index 6b94d9bf..0024c199 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java @@ -25,6 +25,7 @@ @Getter public class PublishedPageVo { private Integer refId; + /** * 名称 */ diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java index 51f0f372..d25712ba 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java @@ -1,13 +1,12 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * + *

* Use of this source code is governed by an MIT-style license. - * + *

* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * */ package com.tinyengine.it.service.app.impl; @@ -40,7 +39,6 @@ import com.tinyengine.it.service.app.I18nEntryService; import cn.hutool.core.bean.BeanUtil; - import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; @@ -169,7 +167,8 @@ public List fillParam(OperateI18nEntries operateI18nEntries, Map contents = operateI18nEntries.getContents(); - contents.keySet().forEach(item -> { + contents.keySet().forEach(item -> + { int lang = langsDic.get(item); if (lang != 0) { I18nEntry i18nEntries = new I18nEntry(); @@ -180,7 +179,7 @@ public List fillParam(OperateI18nEntries operateI18nEntries, Map readFilesAndbulkCreate(String lang, MultipartFile file @SystemServiceLog(description = "bulkCreateOrUpdate 批量创建或修改") public Result bulkCreateOrUpdate(List entriesArr, int host) { List entries = new ArrayList<>(); - entriesArr.forEach(entriesItem -> { + entriesArr.forEach(entriesItem -> + { Map langEntries = entriesItem.getEntries(); - langEntries.forEach((key, value) -> { + langEntries.forEach((key, value) -> + { I18nEntry i18nEntry = new I18nEntry(); i18nEntry.setKey(key); i18nEntry.setLang(entriesItem.getLang()); @@ -395,8 +396,8 @@ public Result bulkCreateOrUpdate(List entriesArr, int h i18nEntry.setHostType("app"); i18nEntry.setContent(value.toString()); entries.add(i18nEntry); + }); }); - }); // 超大量数据更新,如上传国际化文件,不返回插入或更新的词条 FileResult result = bulkInsertOrUpdate(entries); return Result.success(result); diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java index a6f3fddf..c50274bc 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java @@ -223,26 +223,23 @@ public Map> getBlockAssets(Map pageContent, mergedAssets.put("styles", new ArrayList<>()); // Merge the assets using streams - return blocksList.stream().map(Block::getAssets).map(assetsMap -> - { + return blocksList.stream().map(Block::getAssets).map(assetsMap -> { Map> tempMap = new HashMap<>(); tempMap.put("material", (List) assetsMap.getOrDefault("material", new ArrayList<>())); tempMap.put("scripts", (List) assetsMap.getOrDefault("scripts", new ArrayList<>())); tempMap.put("styles", (List) assetsMap.getOrDefault("styles", new ArrayList<>())); return tempMap; - }).reduce(mergedAssets, (acc, curr) -> - { + }).reduce(mergedAssets, (acc, curr) -> { acc.get("material").addAll(curr.get("material")); acc.get("scripts").addAll(curr.get("scripts")); acc.get("styles").addAll(curr.get("styles")); return acc; - }, (map1, map2) -> - { + }, (map1, map2) -> { map1.get("material").addAll(map2.get("material")); map1.get("scripts").addAll(map2.get("scripts")); map1.get("styles").addAll(map2.get("styles")); return map1; - }); + }); } /** @@ -388,26 +385,23 @@ public List getNotInGroupBlocks(Integer groupId) { int userId = 1; User user = userMapper.queryUserById(userId); List blocksList = blockMapper.findBlocksReturn(); - return blocksList.stream() - .filter(item -> - { - // 过滤已发布的 - if (item.getLastBuildInfo() == null || item.getContent() == null || item.getAssets() == null) { - return false; - } - // 组过滤 - if (item.getGroups() != null && item.getGroups().stream() - .anyMatch(group -> group instanceof BlockGroup - && ((BlockGroup) group).getId().equals(groupId))) { - return false; - } - // 公开范围过滤 - if (item.getPublicStatus() == Enums.Scope.FULL_PUBLIC.getValue()) { - return true; - } - return user != null && item.getPublicStatus() == Enums.Scope.PUBLIC_IN_TENANTS.getValue(); - }) - .collect(Collectors.toList()); + return blocksList.stream().filter(item ->{ + // 过滤已发布的 + if (item.getLastBuildInfo() == null || item.getContent() == null || item.getAssets() == null) { + return false; + } + // 组过滤 + if (item.getGroups() != null && item.getGroups().stream() + .anyMatch(group -> group instanceof BlockGroup + && ((BlockGroup) group).getId().equals(groupId))) { + return false; + } + // 公开范围过滤 + if (item.getPublicStatus() == Enums.Scope.FULL_PUBLIC.getValue()) { + return true; + } + return user != null && item.getPublicStatus() == Enums.Scope.PUBLIC_IN_TENANTS.getValue(); + }).collect(Collectors.toList()); } /** @@ -532,12 +526,11 @@ public List getUsers(List blocksList) { Set userSet = new HashSet<>(); // 提取 createdBy 列表中的唯一值 - blocksList.forEach(item -> - { + blocksList.forEach(item -> { if (item.getCreatedBy() != null && !userSet.contains(item.getCreatedBy())) { userSet.add(String.valueOf(item.getCreatedBy())); } - }); + }); List userIdsList = new ArrayList<>(userSet); @@ -591,25 +584,21 @@ public Result> listNew(String appId, String groupId) { List combinedBlocks = Stream.concat(personalBlocks.stream(), appBlocks.stream()) .collect(Collectors.toList()); // 遍历合并后的数组,检查是否存在具有相同 id 的元素 - combinedBlocks.forEach(block -> - { + combinedBlocks.forEach(block -> { boolean isFind = retBlocks.stream() .anyMatch(retBlock -> Objects.equals(retBlock.getId(), block.getId())); if (!isFind) { retBlocks.add(block); } - }); + }); // 给is_published赋值 - List result = retBlocks.stream() - .map(b -> - { - boolean isPublished = b.getLastBuildInfo() != null - && b.getLastBuildInfo().get("result") instanceof Boolean - ? (Boolean) b.getLastBuildInfo().get("result") : Boolean.FALSE; - b.setIsPublished(isPublished); - return b; - }) - .collect(Collectors.toList()); + List result = retBlocks.stream().map(b ->{ + boolean isPublished = b.getLastBuildInfo() != null + && b.getLastBuildInfo().get("result") instanceof Boolean + ? (Boolean) b.getLastBuildInfo().get("result") : Boolean.FALSE; + b.setIsPublished(isPublished); + return b; + }).collect(Collectors.toList()); return Result.success(result); } From 63072df9fc47e3b649ff036a4afb8312aba97af0 Mon Sep 17 00:00:00 2001 From: coderliux Date: Sat, 29 Mar 2025 00:21:17 -0700 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E7=89=88=E6=9D=83?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E4=B8=8A=E4=B8=8B=E6=96=87=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E8=A7=A3=E5=86=B3=E7=A1=AC=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../context/DefaultLoginUserContext.java | 44 +++++++++++++++++ .../it/common/base/PageQueryVo.java | 5 +- .../it/common/context/LoginUserContext.java | 48 +++++++++++++++++++ .../common/handler/MyMetaObjectHandler.java | 14 ++++-- .../tinyengine/it/common/utils/TestUtil.java | 35 ++++++++++++++ .../it/mapper/BlockGroupBlockMapper.java | 5 +- .../it/mapper/PageHistoryMapper.java | 5 +- .../it/model/dto/PageHistoryVo.java | 5 +- .../it/model/dto/PublishedPageVo.java | 5 +- .../it/service/app/PageHistoryService.java | 5 +- .../app/impl/I18nEntryServiceImpl.java | 5 +- .../app/impl/PageHistoryServiceImpl.java | 6 ++- .../it/service/app/impl/PageServiceImpl.java | 23 +++++---- .../material/impl/BlockGroupServiceImpl.java | 10 ++-- .../material/impl/BlockServiceImpl.java | 21 ++++---- .../it/common/handler/MockUserContext.java | 44 +++++++++++++++++ .../handler/MyMetaObjectHandlerTest.java | 15 +++--- .../service/app/impl/PageServiceImplTest.java | 6 +++ .../impl/BlockGroupServiceImplTest.java | 13 +++-- .../material/impl/BlockServiceImplTest.java | 5 ++ 20 files changed, 265 insertions(+), 54 deletions(-) create mode 100644 app/src/main/java/com/tinyengine/it/config/context/DefaultLoginUserContext.java create mode 100644 base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java create mode 100644 base/src/main/java/com/tinyengine/it/common/utils/TestUtil.java create mode 100644 base/src/test/java/com/tinyengine/it/common/handler/MockUserContext.java diff --git a/app/src/main/java/com/tinyengine/it/config/context/DefaultLoginUserContext.java b/app/src/main/java/com/tinyengine/it/config/context/DefaultLoginUserContext.java new file mode 100644 index 00000000..37ad3e83 --- /dev/null +++ b/app/src/main/java/com/tinyengine/it/config/context/DefaultLoginUserContext.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + */ + +package com.tinyengine.it.config.context; + +import com.tinyengine.it.common.context.LoginUserContext; + +/** + * 默认的登录用户Context实现 + */ +public class DefaultLoginUserContext implements LoginUserContext { + @Override + public String getTenantId() { + return "1"; + } + + @Override + public String getLoginUserId() { + return "1"; + } + + @Override + public String getRenterId() { + return "1"; + } + + @Override + public int getAppId() { + return 1; + } + + @Override + public int getPlatformId() { + return 1; + } +} diff --git a/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java b/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java index 11c20c01..ed52d8b9 100644 --- a/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java +++ b/base/src/main/java/com/tinyengine/it/common/base/PageQueryVo.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.common.base; diff --git a/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java b/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java new file mode 100644 index 00000000..6f8bde93 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java @@ -0,0 +1,48 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + *

+ * Use of this source code is governed by an MIT-style license. + *

+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + */ + +package com.tinyengine.it.common.context; + +/** + * 保存用户信息的上下文 + * 由集成方自行实现接口 + */ +public interface LoginUserContext { + /** + * 返回当前用户所诉的业务租户信息 + * @return 租户ID + */ + public String getTenantId(); + + /** + * 返回当前用户信息 + * @return 用户ID + */ + public String getLoginUserId(); + + /** + * 返回当前用户所属业务租户信息 + * @return 业务租户ID + */ + public String getRenterId(); + + /** + * 返回当前应用信息 + * @return 应用ID + */ + public int getAppId(); + + /** + * 返回当前设计器信息 + * @return 设计器ID + */ + public int getPlatformId(); +} diff --git a/base/src/main/java/com/tinyengine/it/common/handler/MyMetaObjectHandler.java b/base/src/main/java/com/tinyengine/it/common/handler/MyMetaObjectHandler.java index 7effc2d9..b3673728 100644 --- a/base/src/main/java/com/tinyengine/it/common/handler/MyMetaObjectHandler.java +++ b/base/src/main/java/com/tinyengine/it/common/handler/MyMetaObjectHandler.java @@ -13,10 +13,12 @@ package com.tinyengine.it.common.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.tinyengine.it.common.context.LoginUserContext; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.time.LocalDateTime; @@ -29,15 +31,17 @@ @Component @Slf4j public class MyMetaObjectHandler implements MetaObjectHandler { + @Autowired + private LoginUserContext loginUserContext; + @Override public void insertFill(MetaObject metaObject) { this.setFieldValByName("createdTime", LocalDateTime.now(), metaObject); this.setFieldValByName("lastUpdatedTime", LocalDateTime.now(), metaObject); - this.setFieldValByName("createdBy", "1", metaObject); - this.setFieldValByName("lastUpdatedBy", "1", metaObject); - this.setFieldValByName("tenantId", "1", metaObject); - this.setFieldValByName("renterId", "1", metaObject); - this.setFieldValByName("siteId", "1", metaObject); + this.setFieldValByName("createdBy", loginUserContext.getLoginUserId(), metaObject); + this.setFieldValByName("lastUpdatedBy", loginUserContext.getLoginUserId(), metaObject); + this.setFieldValByName("tenantId", loginUserContext.getTenantId(), metaObject); + this.setFieldValByName("renterId", loginUserContext.getRenterId(), metaObject); } @Override diff --git a/base/src/main/java/com/tinyengine/it/common/utils/TestUtil.java b/base/src/main/java/com/tinyengine/it/common/utils/TestUtil.java new file mode 100644 index 00000000..3260c471 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/common/utils/TestUtil.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + *

+ * Use of this source code is governed by an MIT-style license. + *

+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + */ + +package com.tinyengine.it.common.utils; + +import java.lang.reflect.Field; + +/** + * 测试工工具类 + */ +public class TestUtil { + /** + * 设置私有字段的属性值 + * + * @param obj 对象 + * @param field 字段名 + * @param value 值 + * @throws NoSuchFieldException 异常 + * @throws IllegalAccessException 异常 + */ + public static void setPrivateValue(Object obj, String field, Object value) + throws NoSuchFieldException, IllegalAccessException { + Field declaredField = obj.getClass().getDeclaredField(field); + declaredField.setAccessible(true); + declaredField.set(obj, value); + } +} diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupBlockMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupBlockMapper.java index 47c878e1..2318bb27 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupBlockMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupBlockMapper.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.mapper; diff --git a/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java b/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java index b9f3abba..502594e6 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/PageHistoryMapper.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.mapper; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/PageHistoryVo.java b/base/src/main/java/com/tinyengine/it/model/dto/PageHistoryVo.java index e0b5c41d..f6c79962 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/PageHistoryVo.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/PageHistoryVo.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.model.dto; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java b/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java index 0024c199..252fe55f 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/PublishedPageVo.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.model.dto; diff --git a/base/src/main/java/com/tinyengine/it/service/app/PageHistoryService.java b/base/src/main/java/com/tinyengine/it/service/app/PageHistoryService.java index 165c73ff..4b4d5821 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/PageHistoryService.java +++ b/base/src/main/java/com/tinyengine/it/service/app/PageHistoryService.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.service.app; diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java index 6bd0aaad..0c15e806 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.service.app.impl; diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java index 99e890f6..62736861 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java @@ -1,12 +1,13 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - *

+ * * Use of this source code is governed by an MIT-style license. - *

+ * * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * */ package com.tinyengine.it.service.app.impl; @@ -101,6 +102,7 @@ public Integer updatePageHistoryById(PageHistory pageHistory) { @Override @SystemServiceLog(description = "创建页面历史记录") public Integer createPageHistory(PageHistory pageHistory) { + pageHistory.setIsPublished(true); return pageHistoryMapper.createPageHistory(pageHistory); } diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java index 19b62506..09095570 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java @@ -1,13 +1,12 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * + *

* Use of this source code is governed by an MIT-style license. - * + *

* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * */ package com.tinyengine.it.service.app.impl; @@ -15,6 +14,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.common.enums.Enums; import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.exception.ServiceException; @@ -126,6 +126,9 @@ public class PageServiceImpl implements PageService { @Autowired private PageHistoryService pageHistoryService; + @Autowired + private LoginUserContext loginUserContext; + /** * 通过appId查询page所有数据实现方法 * @@ -217,8 +220,8 @@ public Result createPage(Page page) { if (!page.getGroup().isEmpty() && Arrays.asList("static", "public").contains(page.getGroup())) { page.setGroup(page.getGroup() + "Pages"); } - String userId = "1"; - page.setOccupierBy(userId); + + page.setOccupierBy(loginUserContext.getLoginUserId()); page.setIsDefault(false); page.setDepth(0); @@ -284,9 +287,8 @@ public Result createFolder(Page page) { page.setGroup("staticPages"); page.setIsDefault(false); page.setIsBody(true); - // needTODO 获取user的ID - String userId = "1"; - page.setOccupierBy(userId); + // 获取user的ID + page.setOccupierBy(loginUserContext.getLoginUserId()); List pageResult = queryPages(page); if (!pageResult.isEmpty()) { return Result.failed(ExceptionEnum.CM003); @@ -531,12 +533,13 @@ public boolean iCanDoIt(User occupier, User user) { /** * 保护默认页面 + * * @param page the pages * @return boolean */ public boolean protectDefaultPage(Page page) { String id = page.getParentId(); - if("0".equals(id)){ + if ("0".equals(id)) { return true; } String parentId = this.getParentPage(id); @@ -558,6 +561,7 @@ public boolean protectDefaultPage(Page page) { /** * 查询父页面 + * * @param parentId the parentId * @return parentId the parentId */ @@ -572,6 +576,7 @@ private String getParentPage(String parentId) { /** * 查询默认子页面 + * * @param parentId the parentId * @return subPageId the subPageId */ diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java index d3ef6c45..3f6bb081 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java @@ -13,6 +13,7 @@ package com.tinyengine.it.service.material.impl; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.common.enums.Enums; import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.mapper.BlockCarriersRelationMapper; @@ -51,7 +52,8 @@ public class BlockGroupServiceImpl implements BlockGroupService { @Autowired private BlockGroupBlockMapper blockGroupBlockMapper; - private static final String DEFAULT_USER_ID = "1"; + @Autowired + private LoginUserContext loginUserContext; /** * 查询表t_block_group所有数据 @@ -71,7 +73,7 @@ public List findAllBlockGroup() { */ @Override public BlockGroup findBlockGroupById(@Param("id") Integer id) { - BlockGroup blockGroupResult = blockGroupMapper.queryBlockGroupAndBlockById(id, null, DEFAULT_USER_ID); + BlockGroup blockGroupResult = blockGroupMapper.queryBlockGroupAndBlockById(id, null, loginUserContext.getLoginUserId()); // 对查询的结果的区块赋值current_version if (blockGroupResult == null || blockGroupResult.getBlocks().isEmpty()) { return blockGroupResult; @@ -186,8 +188,8 @@ public Result> createBlockGroup(BlockGroup blockGroup) { public List getBlockGroupByIdsOrAppId(List ids, Integer appId, String from) { // 此接收到的两个参数不一定同时存在 List blockGroupsListResult = new ArrayList<>(); - String groupCreatedBy = "1"; // 获取登录用户id - String blockCreatedBy = "1"; + String groupCreatedBy = loginUserContext.getLoginUserId(); // 获取登录用户id + String blockCreatedBy = loginUserContext.getLoginUserId(); blockCreatedBy = (Enums.BlockGroup.BLOCK.getValue()).equals(from) ? blockCreatedBy : null; // from值为block在区块管理处增加createdBy条件 BlockGroup blockGroup = new BlockGroup(); if (ids != null) { diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java index 8fe27152..d932106e 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java @@ -20,6 +20,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.common.enums.Enums; import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.log.SystemServiceLog; @@ -93,8 +94,8 @@ public class BlockServiceImpl implements BlockService { @Autowired private BlockGroupBlockMapper blockGroupBlockMapper; - private static final int DEFAULT_PLATFORM_ID = 1; - private static final String DEFAULT_USER_ID = "1"; + @Autowired + private LoginUserContext loginUserContext; /** * 查询表t_block所有数据 @@ -122,7 +123,7 @@ public BlockDto queryBlockById(@Param("id") Integer id) { && blockDto.getLastBuildInfo().get("result") instanceof Boolean ? (Boolean) blockDto.getLastBuildInfo().get("result") : Boolean.FALSE; blockDto.setIsPublished(isPublished); - List groups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), DEFAULT_USER_ID); + List groups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), loginUserContext.getLoginUserId()); blockDto.setGroups(groups); return blockDto; } @@ -170,7 +171,7 @@ public Result updateBlockById(BlockParam blockParam, Integer appId) { // 把前端传参赋值给实体 Block blocks = new Block(); BeanUtils.copyProperties(blockParam, blocks); - blocks.setOccupierBy(DEFAULT_USER_ID); + blocks.setOccupierBy(loginUserContext.getLoginUserId()); if (blockParam.getLatestHistoryId() != null) { blocks.setLatestHistoryId(blockParam.getLatestHistoryId().getId()); } @@ -187,7 +188,7 @@ public Result updateBlockById(BlockParam blockParam, Integer appId) { } // 根据区块id获取区块所在分组 - List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blocks.getId(), DEFAULT_USER_ID); + List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blocks.getId(), loginUserContext.getLoginUserId()); // 删除区块与分组关系 if(blockGroups != null && !blockGroups.isEmpty()){ List blockGroupIds = blockGroups.stream().map(BlockGroup::getId).collect(Collectors.toList()); @@ -234,7 +235,7 @@ public Result createBlock(BlockParam blockParam) { BeanUtils.copyProperties(blockParam, blocks); blocks.setIsDefault(false); blocks.setIsOfficial(false); - blocks.setPlatformId(DEFAULT_PLATFORM_ID); // 新建区块给默认值 + blocks.setPlatformId(loginUserContext.getPlatformId()); // 新建区块给默认值 int result = blockMapper.createBlock(blocks); if (result < 1) { @@ -453,7 +454,7 @@ public List getNotInGroupBlocks(NotGroupDto notGroupDto) { } for (BlockDto blockDto : blocksList) { - List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), DEFAULT_USER_ID); + List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), loginUserContext.getLoginUserId()); blockDto.setGroups(blockGroups); } return blocksList.stream() @@ -641,7 +642,7 @@ public Result> listNew(String appId, String groupId) { List blocksList = new ArrayList<>(); // 如果有 groupId, 只查group下的block,以及自己创建的区块 if (groupIdTemp != 0) { - blocksList = blockMapper.findBlockByBlockGroupId(groupIdTemp, DEFAULT_USER_ID); + blocksList = blockMapper.findBlockByBlockGroupId(groupIdTemp, loginUserContext.getLoginUserId()); return Result.success(blocksList); } // 如果没有 groupId @@ -653,7 +654,7 @@ public Result> listNew(String appId, String groupId) { List appBlocks = blocksList; // 通过createBy查询区块表数据 Block blocks = new Block(); - blocks.setCreatedBy(DEFAULT_USER_ID); + blocks.setCreatedBy(loginUserContext.getLoginUserId()); List personalBlocks = queryBlockByCondition(blocks); List retBlocks = new ArrayList<>(); // 合并 personalBlocks 和 appBlocks 数组 @@ -698,7 +699,7 @@ public int ensureBlockId(BlockDto blockDto) { Block queryBlock = new Block(); queryBlock.setLabel(blockDto.getLabel()); queryBlock.setFramework(blockDto.getFramework()); - queryBlock.setCreatedBy(DEFAULT_USER_ID); + queryBlock.setCreatedBy(loginUserContext.getLoginUserId()); List blockList = blockMapper.queryBlockByCondition(queryBlock); List groups = blockDto.getGroups().stream().map(BlockGroup::getId).collect(Collectors.toList()); ; diff --git a/base/src/test/java/com/tinyengine/it/common/handler/MockUserContext.java b/base/src/test/java/com/tinyengine/it/common/handler/MockUserContext.java new file mode 100644 index 00000000..e39eebcf --- /dev/null +++ b/base/src/test/java/com/tinyengine/it/common/handler/MockUserContext.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + *

+ * Use of this source code is governed by an MIT-style license. + *

+ * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + */ + +package com.tinyengine.it.common.handler; + +import com.tinyengine.it.common.context.LoginUserContext; + +/** + * Mock user context + */ +public class MockUserContext implements LoginUserContext { + @Override + public String getTenantId() { + return "1"; + } + + @Override + public String getLoginUserId() { + return "1"; + } + + @Override + public String getRenterId() { + return "1"; + } + + @Override + public int getAppId() { + return 1; + } + + @Override + public int getPlatformId() { + return 1; + } +} diff --git a/base/src/test/java/com/tinyengine/it/common/handler/MyMetaObjectHandlerTest.java b/base/src/test/java/com/tinyengine/it/common/handler/MyMetaObjectHandlerTest.java index f4d57936..a713172c 100644 --- a/base/src/test/java/com/tinyengine/it/common/handler/MyMetaObjectHandlerTest.java +++ b/base/src/test/java/com/tinyengine/it/common/handler/MyMetaObjectHandlerTest.java @@ -1,13 +1,12 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * + *

* Use of this source code is governed by an MIT-style license. - * + *

* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * */ package com.tinyengine.it.common.handler; @@ -17,6 +16,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import com.tinyengine.it.common.utils.TestUtil; + import org.apache.ibatis.reflection.MetaObject; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -30,17 +31,19 @@ class MyMetaObjectHandlerTest { MyMetaObjectHandler myMetaObjectHandler = new MyMetaObjectHandler(); @Test - void testInsertFill() { + void testInsertFill() throws NoSuchFieldException, IllegalAccessException { MetaObject param = Mockito.mock(MetaObject.class); when(param.hasSetter("tenantId")).thenReturn(true); + TestUtil.setPrivateValue(myMetaObjectHandler, "loginUserContext", new MockUserContext()); myMetaObjectHandler.insertFill(param); - verify(param, times(7)).hasSetter(anyString()); + verify(param, times(6)).hasSetter(anyString()); } @Test - void testUpdateFill() { + void testUpdateFill() throws NoSuchFieldException, IllegalAccessException { MetaObject param = Mockito.mock(MetaObject.class); when(param.hasSetter("lastUpdatedTime")).thenReturn(true); + TestUtil.setPrivateValue(myMetaObjectHandler, "loginUserContext", new MockUserContext()); myMetaObjectHandler.updateFill(param); verify(param, times(1)).hasSetter(anyString()); } diff --git a/base/src/test/java/com/tinyengine/it/service/app/impl/PageServiceImplTest.java b/base/src/test/java/com/tinyengine/it/service/app/impl/PageServiceImplTest.java index 2d98e7ff..bc496654 100644 --- a/base/src/test/java/com/tinyengine/it/service/app/impl/PageServiceImplTest.java +++ b/base/src/test/java/com/tinyengine/it/service/app/impl/PageServiceImplTest.java @@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.mapper.AppExtensionMapper; import com.tinyengine.it.mapper.AppMapper; import com.tinyengine.it.mapper.BlockHistoryMapper; @@ -89,6 +90,9 @@ class PageServiceImplTest { @InjectMocks private PageServiceImpl pageServiceImpl; + @Mock + private LoginUserContext loginUserContext; + @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); @@ -150,6 +154,7 @@ void testCreatePage() { // not home page when(appMapper.queryAppById(333)).thenReturn(app); when(pageHistoryService.createPageHistory(any(PageHistory.class))).thenReturn(1); + when(loginUserContext.getLoginUserId()).thenReturn("1"); Result result = pageServiceImpl.createPage(param); assertEquals(returnPage, result.getData()); @@ -189,6 +194,7 @@ void testCreateFolder() { } }; when(blockServiceImpl.getBlockAssets(any(Map.class), anyString())).thenReturn(blockAsset); + when(loginUserContext.getLoginUserId()).thenReturn("1"); Result result = pageServiceImpl.createFolder(param); assertEquals(returnPage, result.getData()); diff --git a/base/src/test/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImplTest.java b/base/src/test/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImplTest.java index ccd31939..24059616 100644 --- a/base/src/test/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImplTest.java +++ b/base/src/test/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImplTest.java @@ -1,13 +1,12 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * + *

* Use of this source code is governed by an MIT-style license. - * + *

* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * */ package com.tinyengine.it.service.material.impl; @@ -16,6 +15,7 @@ import static org.mockito.Mockito.when; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.mapper.BlockCarriersRelationMapper; import com.tinyengine.it.mapper.BlockGroupBlockMapper; import com.tinyengine.it.mapper.BlockGroupMapper; @@ -47,6 +47,8 @@ class BlockGroupServiceImplTest { private BlockCarriersRelationMapper blockCarriersRelationMapper; @Mock private BlockGroupBlockMapper blockGroupBlockMapper; + @Mock + private LoginUserContext loginUserContext; @BeforeEach void setUp() { @@ -65,7 +67,8 @@ void testFindAllBlockGroup() { @Test void testFindBlockGroupById() { BlockGroup mockData = new BlockGroup(); - when(blockGroupMapper.queryBlockGroupAndBlockById(any(),any(),any())).thenReturn(mockData); + when(blockGroupMapper.queryBlockGroupAndBlockById(any(), any(), any())).thenReturn(mockData); + when(loginUserContext.getLoginUserId()).thenReturn("1"); BlockGroup result = blockGroupServiceImpl.findBlockGroupById(1); Assertions.assertEquals(mockData, result); @@ -105,6 +108,7 @@ void testUpdateBlockGroupById() { void testCreateBlockGroup() { BlockGroup param = new BlockGroup(); when(blockGroupMapper.createBlockGroup(param)).thenReturn(1); + when(loginUserContext.getLoginUserId()).thenReturn("1"); BlockGroup blockGroupParam = new BlockGroup(); blockGroupParam.setId(1); Result> result = blockGroupServiceImpl.createBlockGroup(blockGroupParam); @@ -119,6 +123,7 @@ void testGetBlockGroupByIdsOrAppId() { List mockData = new ArrayList<>(); when(blockGroupMapper.queryBlockGroupAndBlockById(any(), any(), any())).thenReturn(new BlockGroup()); when(blockGroupMapper.queryBlockGroupByAppId(any(), any(), any())).thenReturn(mockData); + when(loginUserContext.getLoginUserId()).thenReturn("1"); // not empty param List result = blockGroupServiceImpl.getBlockGroupByIdsOrAppId(paramIdList, appId, from); diff --git a/base/src/test/java/com/tinyengine/it/service/material/impl/BlockServiceImplTest.java b/base/src/test/java/com/tinyengine/it/service/material/impl/BlockServiceImplTest.java index f4469344..ec53692c 100644 --- a/base/src/test/java/com/tinyengine/it/service/material/impl/BlockServiceImplTest.java +++ b/base/src/test/java/com/tinyengine/it/service/material/impl/BlockServiceImplTest.java @@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.mapper.AppMapper; import com.tinyengine.it.mapper.BlockGroupMapper; import com.tinyengine.it.mapper.BlockMapper; @@ -68,9 +69,13 @@ class BlockServiceImplTest { @Mock private BlockGroupMapper blockGroupMapper; + @Mock + private LoginUserContext loginUserContext; + @BeforeEach void setUp() { MockitoAnnotations.openMocks(this); + when(loginUserContext.getLoginUserId()).thenReturn("1"); } @Test From 875cc2f685372ebd28671aa3c159907004c66b5d Mon Sep 17 00:00:00 2001 From: coderliux Date: Sat, 29 Mar 2025 00:40:05 -0700 Subject: [PATCH 3/3] =?UTF-8?q?=E7=BB=9F=E4=B8=80=E7=89=88=E6=9D=83?= =?UTF-8?q?=E6=B3=A8=E9=87=8A=EF=BC=8C=E5=A2=9E=E5=8A=A0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=9A=84=E4=B8=8A=E4=B8=8B=E6=96=87=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E8=A7=A3=E5=86=B3=E7=A1=AC=E7=BC=96=E7=A0=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tinyengine/it/controller/PageController.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/controller/PageController.java b/base/src/main/java/com/tinyengine/it/controller/PageController.java index 8fefcb94..92bff43c 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PageController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PageController.java @@ -1,13 +1,12 @@ /** * Copyright (c) 2023 - present TinyEngine Authors. * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. - * + *

* Use of this source code is governed by an MIT-style license. - * + *

* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. - * */ package com.tinyengine.it.controller; @@ -71,8 +70,8 @@ public class PageController { * @return allpage */ @Operation(summary = "获取页面列表", description = "获取页面列表", parameters = { - @Parameter(name = "aid", description = "appId")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", + @Parameter(name = "aid", description = "appId")}, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Page.class))), @ApiResponse(responseCode = "400", description = "请求失败")}) @@ -207,8 +206,8 @@ public Result previewData(@ModelAttribute PreviewParam previewParam) @ApiResponse(responseCode = "400", description = "请求失败")}) @SystemControllerLog(description = "页面发布") @PostMapping("/pages/deploy") - public Result pageDeploy(@RequestBody PageHistory pageHistory) { - Integer result = pageHistoryService.createPageHistory(pageHistory); - return Result.success(result); + public Result pageDeploy(@RequestBody PageHistory pageHistory) { + pageHistoryService.createPageHistory(pageHistory); + return Result.success(pageHistory); } }