From b97583e91a0f31c3e4951ea2d4906cd326b0fca2 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 26 Dec 2024 00:15:51 -0800 Subject: [PATCH 01/25] fix: update page history bug --- .../it/controller/BlockController.java | 18 ++++++++++-------- .../it/service/material/BlockService.java | 7 ++++--- .../material/impl/BlockServiceImpl.java | 10 ++++++---- .../resources/mappers/PageHistoryMapper.xml | 2 +- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/controller/BlockController.java b/base/src/main/java/com/tinyengine/it/controller/BlockController.java index 5f503d15..2a79c98d 100644 --- a/base/src/main/java/com/tinyengine/it/controller/BlockController.java +++ b/base/src/main/java/com/tinyengine/it/controller/BlockController.java @@ -399,24 +399,26 @@ public Result updateBlocks(@Valid @RequestBody BlockDto blockDto, @Pat } /** - * 根据label查询区块详情 + * 通过lable和appId查询区块 * - * @param label the label + * @param label label + * @param appId appId * @return the result */ - @Operation(summary = "根据label查询区块详情", - description = "根据label查询区块详情", + @Operation(summary = "根据lable和appId查询区块详情", + description = "根据lable和appId查询区块详情", responses = { @ApiResponse(responseCode = "200", description = "返回信息", content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), @ApiResponse(responseCode = "400", description = "请求失败")} ) - @SystemControllerLog(description = "获取所有用户api") + @SystemControllerLog(description = "根据lable和appId查询区块详情api") @GetMapping("/block/label") - public Result getBlockByLabel(@RequestParam(value = "label") - String label) { - return blockService.getBlockByLabel(label); + public Result getBlockByLabel( + @RequestParam(value = "label") String label, + @RequestParam(value = "appId") Integer appId) { + return blockService.getBlockByLabel(label, appId); } /** diff --git a/base/src/main/java/com/tinyengine/it/service/material/BlockService.java b/base/src/main/java/com/tinyengine/it/service/material/BlockService.java index 459e33e4..20e675bf 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/BlockService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/BlockService.java @@ -130,12 +130,13 @@ public interface BlockService { /** - * 通过lable查询区块 + * 通过label和appId查询区块 * - * @param lable lable + * @param label label + * @param appId appId * @return the BlockDto */ - Result getBlockByLabel(String lable); + Result getBlockByLabel(String label, Integer appId); /** * block发布 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 73c5df3f..36c1b2a0 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 @@ -405,15 +405,17 @@ public List getNotInGroupBlocks(Integer groupId) { } /** - * 通过lable查询区块 + * 通过label和appId查询区块 * - * @param lable lable + * @param label label + * @param appId appId * @return the BlockDto */ @Override - public Result getBlockByLabel(String lable) { + public Result getBlockByLabel(String label, Integer appId) { Block block = new Block(); - block.setLabel(lable); + block.setLabel(label); + block.setAppId(appId); List blockList = blockMapper.queryBlockByCondition(block); if (blockList.isEmpty()) { return Result.success(); diff --git a/base/src/main/resources/mappers/PageHistoryMapper.xml b/base/src/main/resources/mappers/PageHistoryMapper.xml index 164db6fe..bafe37b3 100644 --- a/base/src/main/resources/mappers/PageHistoryMapper.xml +++ b/base/src/main/resources/mappers/PageHistoryMapper.xml @@ -193,7 +193,7 @@ FROM t_page_history - AND ref_id = #{id} + AND id = #{id} From d30877c880df7e4bf6b040921850f237af20473b Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 6 Jan 2025 17:53:06 -0800 Subject: [PATCH 02/25] fix: format code and fix style issue --- .../com/tinyengine/it/service/app/impl/PageServiceImpl.java | 6 ------ base/src/main/resources/mappers/PageHistoryMapper.xml | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) 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 1adcc94b..db2431c8 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 @@ -20,7 +20,6 @@ import com.tinyengine.it.common.log.SystemServiceLog; import com.tinyengine.it.mapper.AppExtensionMapper; import com.tinyengine.it.mapper.AppMapper; -import com.tinyengine.it.mapper.BlockHistoryMapper; import com.tinyengine.it.mapper.BlockMapper; import com.tinyengine.it.mapper.I18nEntryMapper; import com.tinyengine.it.mapper.PageMapper; @@ -107,11 +106,6 @@ public class PageServiceImpl implements PageService { @Autowired private AppV1ServiceImpl appV1ServiceImpl; - /** - * The Block history mapper. - */ - @Autowired - private BlockHistoryMapper blockHistoryMapper; /** * The App extension mapper. diff --git a/base/src/main/resources/mappers/PageHistoryMapper.xml b/base/src/main/resources/mappers/PageHistoryMapper.xml index bafe37b3..164db6fe 100644 --- a/base/src/main/resources/mappers/PageHistoryMapper.xml +++ b/base/src/main/resources/mappers/PageHistoryMapper.xml @@ -193,7 +193,7 @@ FROM t_page_history - AND id = #{id} + AND ref_id = #{id} From 7fc6507af5333696f946f819f42505a0b1d366ed Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Mon, 6 Jan 2025 18:06:45 -0800 Subject: [PATCH 03/25] fix: modify page histiry entity --- .../it/model/entity/PageHistory.java | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/model/entity/PageHistory.java b/base/src/main/java/com/tinyengine/it/model/entity/PageHistory.java index 17fc59f2..903980b5 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/PageHistory.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/PageHistory.java @@ -12,10 +12,13 @@ package com.tinyengine.it.model.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; -import com.tinyengine.it.common.base.HistoryEntity; import com.tinyengine.it.common.handler.ListTypeHandler; import com.tinyengine.it.common.handler.MapTypeHandler; import com.tinyengine.it.model.dto.BlockVersionDto; @@ -24,6 +27,7 @@ import lombok.Getter; import lombok.Setter; +import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -39,7 +43,11 @@ @Setter @TableName("t_page_history") @Schema(name = "PageHistory", description = "页面历史") -public class PageHistory extends HistoryEntity { +public class PageHistory { + @Schema(name = "id", description = "主键id") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + @Schema(name = "name", description = "名称") private String name; @@ -89,4 +97,36 @@ public class PageHistory extends HistoryEntity { @Schema(name = "contentBlocks", description = "*设计预留字段*") @TableField(typeHandler = ListTypeHandler.class) private List contentBlocks; + + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "createdBy", description = "创建人") + private String createdBy; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(name = "lastUpdatedBy", description = "最后修改人") + private String lastUpdatedBy; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "created_at", description = "创建时间") + @JsonProperty("created_at") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createdTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("updated_at") + @Schema(name = "updated_at", description = "更新时间") + private LocalDateTime lastUpdatedTime; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "tenantId", description = "租户ID") + private String tenantId; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "renterId", description = "业务租户ID") + private String renterId; + + @Schema(name = "siteId", description = "站点ID") + private String siteId; } From 24474b89c1387a4271e524ce622e8ac7e73ed624 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 9 Jan 2025 00:16:05 -0800 Subject: [PATCH 04/25] feat: add code submission rules --- .github/ISSUE_TEMPLATE/bug-report.yml | 73 +++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 ++ .github/ISSUE_TEMPLATE/feature-request.yml | 23 ++++++ .github/PULL_REQUEST_TEMPLATE.md | 52 +++++++++++++ .../PULL_REQUEST_TEMPLATE.zh-CN.md | 52 +++++++++++++ .github/release.yml | 26 +++++++ .github/workflows/ai-code-review.yml | 23 ++++++ .github/workflows/issue-translator.yml | 18 +++++ app/src/main/resources/logback.xml | 2 +- pom.xml | 2 +- 10 files changed, 274 insertions(+), 2 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug-report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature-request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.zh-CN.md create mode 100644 .github/release.yml create mode 100644 .github/workflows/ai-code-review.yml create mode 100644 .github/workflows/issue-translator.yml diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml new file mode 100644 index 00000000..00f3a624 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug-report.yml @@ -0,0 +1,73 @@ +name: '🐛 Bug report' +description: Create a report to help us improve Tiny Engine +title: '🐛 [Bug]: ' +labels: ['🐛 bug'] +body: + - type: markdown + attributes: + value: | + Please fill out the following carefully in order to better fix the problem. + - type: input + id: Environment + attributes: + label: Environment + description: | + **Depending on your browser and operating system, websites may behave differently from one environment to another. Make sure your developers know your technical environment.** + placeholder: Please browser information. + validations: + required: true + - type: input + id: node-version + attributes: + label: Version + description: | + ### **Check if the issue is reproducible with the latest stable version.** + You can use the command `node -v` to view it + placeholder: latest + validations: + required: true + - type: input + id: tiny-vue-version + attributes: + label: Version + description: | + ### **Check if the issue is reproducible with the latest stable version.** + You can use the command `npm ls @opentiny/vue` to view it + placeholder: latest + validations: + required: true + - type: textarea + id: minimal-repo + attributes: + label: Link to minimal reproduction + description: | + **Provide a streamlined CodePen / CodeSandbox or GitHub repository link as much as possible. Please don't fill in a link randomly, it will only close your issue directly.** + placeholder: Please Input + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Step to reproduce + description: | + **After the replay is turned on, what actions do we need to perform to make the bug appear? Simple and clear steps can help us locate the problem more quickly. Please clearly describe the steps of reproducing the issue. Issues without clear reproducing steps will not be repaired. If the issue marked with 'need reproduction' does not provide relevant steps within 7 days, it will be closed directly.** + placeholder: Please Input + validations: + required: true + - type: textarea + id: expected + attributes: + label: What is expected + placeholder: Please Input + - type: textarea + id: actually + attributes: + label: What is actually happening + placeholder: Please Input + - type: textarea + id: additional-comments + attributes: + label: Any additional comments (optional) + description: | + **Some background / context of how you ran into this bug.** + placeholder: Please Input diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..1f521648 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Questions or need help + url: https://github.com/opentiny/tiny-engine/discussions + about: Add this WeChat(opentiny), we will invite you to the WeChat discussion group later. diff --git a/.github/ISSUE_TEMPLATE/feature-request.yml b/.github/ISSUE_TEMPLATE/feature-request.yml new file mode 100644 index 00000000..d3be2079 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.yml @@ -0,0 +1,23 @@ +name: ✨ Feature Request +description: Propose new features to @opentiny/tiny-engine-backend-java to improve it. +title: '✨ [Feature]: ' +labels: ['✨ feature'] +body: + - type: textarea + id: feature-solve + attributes: + label: What problem does this feature solve + description: | + Explain your use case, context, and rationale behind this feature request. More importantly, what is the end user experience you are trying to build that led to the need for this feature? + placeholder: Please Input + validations: + required: true + - type: textarea + id: feature-api + attributes: + label: What does the proposed API look like + description: | + Describe how you propose to solve the problem and provide code samples of how the API would work once implemented. Note that you can use Markdown to format your code blocks. + placeholder: Please Input + validations: + required: true diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..617bddd1 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,52 @@ +English | [简体中文](https://github.com/opentiny/tiny-engine-backend-java/blob/main/.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.zh-CN.md) + +# PR + +## PR Checklist + +Please check if your PR fulfills the following requirements: + +- [ ] The commit message follows our [Commit Message Guidelines](https://github.com/opentiny/tiny-engine-backend-java/blob/main/CONTRIBUTING.md) +- [ ] Tests for the changes have been added (for bug fixes / features) +- [ ] Docs have been added / updated (for bug fixes / features) +- [ ] Built its own designer, fully self-validated + +## PR Type + +What kind of change does this PR introduce? + + + +- [ ] Bugfix +- [ ] Feature +- [ ] Code style update (formatting, local variables) +- [ ] Refactoring (no functional changes, no api changes) +- [ ] Build related changes +- [ ] CI related changes +- [ ] Documentation content changes +- [ ] Other... Please describe: + +## Background and solution + + +### What is the current behavior? + + + +Issue Number: N/A + +### What is the new behavior? + + +## Does this PR introduce a breaking change? + +- [ ] Yes +- [ ] No + + + +## Other information diff --git a/.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.zh-CN.md b/.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.zh-CN.md new file mode 100644 index 00000000..32916663 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/PULL_REQUEST_TEMPLATE.zh-CN.md @@ -0,0 +1,52 @@ +[English](https://github.com/opentiny/tiny-engine-backend-java/blob/main/.github/PULL_REQUEST_TEMPLATE.md) | 简体中文 + +# PR + +## PR Checklist + +请检查您的 PR 是否满足以下要求: + +- [ ] commit message遵循我们的[提交贡献指南](https://github.com/opentiny/tiny-engine-backend-java/blob/main/CONTRIBUTING.zh-CN.md) +- [ ] 添加了更改内容的测试用例(用于bugfix/功能) +- [ ] 文档已添加/更新(用于bugfix/功能) +- [ ] 是否构建了自己的设计器,经过了充分的自验证 + +## PR 类型 + +这个PR的类型是? + +- [ ] 日常 bug 修复 +- [ ] 新特性支持 +- [ ] 代码风格优化 +- [ ] 重构 +- [ ] 构建优化 +- [ ] 测试用例 +- [ ] 文档更新 +- [ ] 分支合并 +- [ ] 其他改动(请补充) + + +## 需求背景和解决方案 + + + + +Issue Number: N/A + +### 修改前 + + +### 修改后 + +## 此PR是否含有 breaking change? + +- [ ] 是 +- [ ] 否 + + + +## Other information diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 00000000..274543b2 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,26 @@ +changelog: + exclude: + labels: + - ignore-for-release + authors: + - allcontributors[bot] + categories: + - title: Breaking Changes 🛠 + labels: + - Semver-Major + - breaking-change + - title: Exciting New Features 🎉 + labels: + - Semver-Minor + - feature + - enhancement + - title: Bug Fixes 🐛 + labels: + - Semver-Patch + - bug + - title: Other Changes + labels: + - documentation + - refactoring + - unit-test + - ci diff --git a/.github/workflows/ai-code-review.yml b/.github/workflows/ai-code-review.yml new file mode 100644 index 00000000..29777ff3 --- /dev/null +++ b/.github/workflows/ai-code-review.yml @@ -0,0 +1,23 @@ +name: AI Code Review + +permissions: + contents: read + pull-requests: write + +on: + pull_request: + types: [opened, reopened, synchronize] + +jobs: + review: + runs-on: ubuntu-latest + steps: + - uses: anc95/ChatGPT-CodeReview@main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + LANGUAGE: Chinese + OPENAI_API_ENDPOINT: https://api.openai.com/v1 + MODEL: gpt-3.5-turbo + MAX_TOKENS: 4096 + MAX_PATCH_LENGTH: 10000 diff --git a/.github/workflows/issue-translator.yml b/.github/workflows/issue-translator.yml new file mode 100644 index 00000000..8b3397bf --- /dev/null +++ b/.github/workflows/issue-translator.yml @@ -0,0 +1,18 @@ +name: 'issue-translator' +on: + issue_comment: + types: [created] + issues: + types: [opened] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: usthe/issues-translate-action@v2.7 + with: + IS_MODIFY_TITLE: false + # 非必须,决定是否需要修改issue标题内容 + # 若是true,则机器人账户@Issues-translate-bot必须拥有修改此仓库issue权限。可以通过邀请@Issues-translate-bot加入仓库协作者实现。 + CUSTOM_BOT_NOTE: Bot detected the issue body's language is not English, translate it automatically. + # 非必须,自定义机器人翻译的前缀开始内容。 diff --git a/app/src/main/resources/logback.xml b/app/src/main/resources/logback.xml index 7aa24fbe..be616676 100644 --- a/app/src/main/resources/logback.xml +++ b/app/src/main/resources/logback.xml @@ -1,7 +1,7 @@ - + diff --git a/pom.xml b/pom.xml index 39ed64e6..d33fc973 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ tiny-engine-service pom 1.0-SNAPSHOT - tiny-engine-webservice-java Maven Webapp + tiny-engine-backend-java Maven Webapp org.springframework.boot From b77f2f4a4caaf1144b43fb625b18a43631518bf7 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 9 Jan 2025 00:58:33 -0800 Subject: [PATCH 05/25] fix: modify app schema for test --- .../tinyengine/it/service/app/impl/v1/AppV1ServiceImplTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/base/src/test/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImplTest.java b/base/src/test/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImplTest.java index 6a87cc1c..0a7aa221 100644 --- a/base/src/test/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImplTest.java +++ b/base/src/test/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImplTest.java @@ -107,6 +107,7 @@ void testAppSchema() { int appId = 2; app.setId(appId); app.setHomePage(1); + app.setPlatformId(1); when(appMapper.queryAppById(anyInt())).thenReturn(app); Page page = new Page(); page.setIsPage(true); @@ -141,6 +142,7 @@ void testMergeEntries() { @Test void testGetMetaDto() { App app = new App(); + app.setPlatformId(1); when(appMapper.queryAppById(anyInt())).thenReturn(app); when(i18nEntryMapper.findI18nEntriesByHostandHostType(anyInt(), anyString())) .thenReturn(Arrays.asList(new I18nEntryDto())); From 6559becaa5b13bb46e430a885d84fde0c3a95fa2 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Wed, 22 Jan 2025 00:52:04 -0800 Subject: [PATCH 06/25] fix: modify t_i18n_entry u_idx_i18n_entity --- .../main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql b/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql index fb58b6f9..a4d5333f 100644 --- a/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql +++ b/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql @@ -511,7 +511,7 @@ create table `t_i18n_entry` `last_updated_by` varchar(60) not null comment '最后修改人', `last_updated_time` timestamp not null default current_timestamp comment '更新时间', primary key (`id`) using btree, - unique index `u_idx_i18n_entity` (`key`, `host_id`, `host_type`) using btree + unique index `u_idx_i18n_entity` (`key`, `host_id`, `host_type`,`lang_id`) using btree ) engine = innodb comment = '国际化语言配置表'; drop table if exists `t_i18n_lang`; From 656a4a1c765f37a09152eda05e6160ce8b73431c Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Wed, 22 Jan 2025 03:06:39 -0800 Subject: [PATCH 07/25] fix: modify t_i18n_entry u_idx_i18n_entity --- .../material/impl/BlockGroupServiceImpl.java | 5 +-- .../material/impl/BlockServiceImpl.java | 31 ++++++++++++++++--- ...oupBlock.xml => BlockGroupBlockMapper.xml} | 0 .../resources/mappers/BlockGroupMapper.xml | 12 +++---- .../impl/BlockGroupServiceImplTest.java | 12 ++++++- .../material/impl/BlockServiceImplTest.java | 14 ++++----- 6 files changed, 53 insertions(+), 21 deletions(-) rename base/src/main/resources/mappers/{BlockGroupBlock.xml => BlockGroupBlockMapper.xml} (100%) 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 bbf8df11..24aef050 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 @@ -103,7 +103,6 @@ public Integer deleteBlockGroupById(@Param("id") Integer id) { public Integer updateBlockGroupById(BlockGroup blockGroup) { // 判断是对正常的分组修改,还是在分组下添加区块操作的修改 List blockList = blockGroup.getBlocks(); - List blockIds = blockList.stream().map(Block::getId).collect(Collectors.toList()); List blockGroupBlocks = blockGroupBlockMapper.findBlockGroupBlockByBlockGroupId(blockGroup.getId()); List groupBlockIds = blockGroupBlocks.stream().map(BlockGroupBlock::getBlockId).collect(Collectors.toList()); @@ -113,9 +112,11 @@ public Integer updateBlockGroupById(BlockGroup blockGroup) { // 删除区块分组与区块历史版本关系 blockCarriersRelationMapper.deleteBlockCarriersRelation(blockGroup.getId(), hostType, null); // 删除区块分组与区块关系 - return blockGroupBlockMapper.deleteBlockGroupBlockByGroupId(blockGroup.getId()); + blockGroupBlockMapper.deleteBlockGroupBlockByGroupId(blockGroup.getId()); + return blockGroupMapper.updateBlockGroupById(blockGroup); } // 处理参数分组区块 + List blockIds = blockList.stream().map(Block::getId).collect(Collectors.toList()); int result = getBlockGroupIds(groupBlockIds, blockIds, blockGroup.getId()); // 更新区块分组和区块历史关系表 List blockCarriersRelations = new ArrayList<>(); 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 531cfcdd..90c47ed2 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 @@ -24,6 +24,7 @@ import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.log.SystemServiceLog; import com.tinyengine.it.mapper.AppMapper; +import com.tinyengine.it.mapper.BlockGroupBlockMapper; import com.tinyengine.it.mapper.BlockGroupMapper; import com.tinyengine.it.mapper.BlockHistoryMapper; import com.tinyengine.it.mapper.BlockMapper; @@ -37,7 +38,9 @@ import com.tinyengine.it.model.dto.SchemaI18n; import com.tinyengine.it.model.entity.App; import com.tinyengine.it.model.entity.Block; +import com.tinyengine.it.model.entity.BlockCarriersRelation; import com.tinyengine.it.model.entity.BlockGroup; +import com.tinyengine.it.model.entity.BlockGroupBlock; import com.tinyengine.it.model.entity.BlockHistory; import com.tinyengine.it.model.entity.User; import com.tinyengine.it.service.app.I18nEntryService; @@ -88,6 +91,8 @@ public class BlockServiceImpl implements BlockService { private I18nEntryMapper i18nEntryMapper; @Autowired private BlockGroupMapper blockGroupMapper; + @Autowired + private BlockGroupBlockMapper blockGroupBlockMapper; /** * 查询表t_block所有数据 @@ -150,12 +155,19 @@ public Integer updateBlockById(BlockDto blockDto) { Block blocks = new Block(); BeanUtils.copyProperties(blockDto, blocks); blocks.setOccupierBy(String.valueOf(1)); - blocks.setLatestHistoryId(blockDto.getLatestHistoryId().getId()); + if(blockDto.getLatestHistoryId() != null){ + blocks.setLatestHistoryId(blockDto.getLatestHistoryId().getId()); + } // 处理区块截图 if (!blockDto.getScreenshot().isEmpty() && !blockDto.getLabel().isEmpty()) { // 图片上传,此处给默认值空字符 blocks.setScreenshot(""); } + + if(blockDto.getGroups().isEmpty()){ + return blockMapper.updateBlockById(blocks); + } + // 过滤出 Integer 类型的对象 // 转换为 Integer 类型 // 收集为 List; @@ -163,10 +175,13 @@ public Integer updateBlockById(BlockDto blockDto) { .filter(obj -> obj instanceof Integer) .map(obj -> (Integer) obj) .collect(Collectors.toList()); - if (!groups.isEmpty()) { + int groupId = groups.get(0); - blocks.setBlockGroupId(groupId); - } + BlockGroupBlock blockGroupBlock = new BlockGroupBlock(); + blockGroupBlock.setBlockGroupId(groupId); + blockGroupBlock.setBlockId(blockDto.getId()); + blockGroupBlockMapper.createBlockGroupBlock(blockGroupBlock); + return blockMapper.updateBlockById(blocks); } @@ -190,7 +205,10 @@ public Result createBlock(BlockDto blockDto) { List groups = blockDto.getGroups(); if (!groups.isEmpty() && groups.get(0) instanceof Integer) { Integer groupId = (Integer) groups.get(0); // 强制类型转换 - blocks.setBlockGroupId(groupId); + BlockGroupBlock blockGroupBlock = new BlockGroupBlock(); + blockGroupBlock.setBlockGroupId(groupId); + blockGroupBlock.setBlockId(blockDto.getId()); + blockGroupBlockMapper.createBlockGroupBlock(blockGroupBlock); } int result = blockMapper.createBlock(blocks); if (result < 1) { @@ -394,6 +412,9 @@ public List getNotInGroupBlocks(NotGroupDto notGroupDto) { int userId = 1; User user = userMapper.queryUserById(userId); List blocksList = blockMapper.findBlocksReturn(notGroupDto); + if(blocksList == null || blocksList.isEmpty()){ + return blocksList; + } for (BlockDto blockDto : blocksList) { List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId()); List objectGroups = new ArrayList<>(blockGroups); diff --git a/base/src/main/resources/mappers/BlockGroupBlock.xml b/base/src/main/resources/mappers/BlockGroupBlockMapper.xml similarity index 100% rename from base/src/main/resources/mappers/BlockGroupBlock.xml rename to base/src/main/resources/mappers/BlockGroupBlockMapper.xml diff --git a/base/src/main/resources/mappers/BlockGroupMapper.xml b/base/src/main/resources/mappers/BlockGroupMapper.xml index 64fbc803..b7f2daaa 100644 --- a/base/src/main/resources/mappers/BlockGroupMapper.xml +++ b/base/src/main/resources/mappers/BlockGroupMapper.xml @@ -181,9 +181,9 @@ b.renter_id as block_renter_id, b.site_id as block_site_id FROM t_block_group bg - JOIN + LEFT JOIN r_block_group_block rbg ON rbg.block_group_id = bg.id - JOIN + LEFT JOIN t_block b ON b.id = rbg.block_id AND b.created_by = #{createdBy} @@ -240,9 +240,9 @@ b.renter_id as block_renter_id, b.site_id as block_site_id FROM t_block_group bg - JOIN + LEFT JOIN r_block_group_block rbg ON rbg.block_group_id = bg.id - JOIN + LEFT JOIN t_block b ON b.id = rbg.block_id AND b.created_by = #{createdBy} @@ -303,9 +303,9 @@ b.renter_id as block_renter_id, b.site_id as block_site_id FROM t_block_group bg - JOIN + LEFT JOIN r_block_group_block rbg ON rbg.block_group_id = bg.id - JOIN + LEFT JOIN t_block b ON b.id = rbg.block_id AND b.created_by = #{createdBy} 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 54f2dd36..9e92239d 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 @@ -16,6 +16,8 @@ import static org.mockito.Mockito.when; import com.tinyengine.it.common.base.Result; +import com.tinyengine.it.mapper.BlockCarriersRelationMapper; +import com.tinyengine.it.mapper.BlockGroupBlockMapper; import com.tinyengine.it.mapper.BlockGroupMapper; import com.tinyengine.it.model.dto.BlockGroupDto; import com.tinyengine.it.model.entity.BlockGroup; @@ -26,6 +28,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.Arrays; @@ -41,6 +44,10 @@ class BlockGroupServiceImplTest { private BlockGroupMapper blockGroupMapper; @InjectMocks private BlockGroupServiceImpl blockGroupServiceImpl; + @Mock + private BlockCarriersRelationMapper blockCarriersRelationMapper; + @Mock + private BlockGroupBlockMapper blockGroupBlockMapper; @BeforeEach void setUp() { @@ -86,8 +93,11 @@ void testDeleteBlockGroupById() { @Test void testUpdateBlockGroupById() { BlockGroup param = new BlockGroup(); + param.setId(1); + param.setBlocks(new ArrayList<>()); when(blockGroupMapper.updateBlockGroupById(param)).thenReturn(1); - + when(blockGroupBlockMapper.deleteBlockGroupBlockByGroupId(null)).thenReturn(1); + when(blockCarriersRelationMapper.deleteBlockCarriersRelation(null, null, null)).thenReturn(1); Integer result = blockGroupServiceImpl.updateBlockGroupById(param); Assertions.assertEquals(1, result); } 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 725a46e4..256ede34 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 @@ -25,6 +25,7 @@ import com.tinyengine.it.common.base.Result; import com.tinyengine.it.common.enums.Enums; import com.tinyengine.it.mapper.AppMapper; +import com.tinyengine.it.mapper.BlockGroupMapper; import com.tinyengine.it.mapper.BlockMapper; import com.tinyengine.it.mapper.UserMapper; import com.tinyengine.it.model.dto.BlockDto; @@ -32,6 +33,7 @@ import com.tinyengine.it.model.dto.NotGroupDto; import com.tinyengine.it.model.entity.App; import com.tinyengine.it.model.entity.Block; +import com.tinyengine.it.model.entity.BlockGroup; import com.tinyengine.it.model.entity.User; import org.junit.jupiter.api.Assertions; @@ -63,6 +65,8 @@ class BlockServiceImplTest { private UserMapper userMapper; @Mock private AppMapper appMapper; + @Mock + private BlockGroupMapper blockGroupMapper; @BeforeEach void setUp() { @@ -118,7 +122,6 @@ void testCreateBlock() { blockDto.setFramework("cc"); blockDto.setPlatformId(1); blockDto.setAppId(1); - blockDto.setGroups(asList(1)); blockDto.setName("testBlock"); Result result = blockServiceImpl.createBlock(blockDto); Assertions.assertEquals("test", result.getData().getName()); @@ -238,18 +241,15 @@ void testAllTags() { @Test void testGetNotInGroupBlocks() { BlockDto blockDto = new BlockDto(); - blockDto.setLastBuildInfo(new HashMap<>()); - blockDto.setContent(new HashMap<>()); - blockDto.setAssets(new HashMap<>()); - blockDto.setPublicStatus(Enums.Scope.PUBLIC_IN_TENANTS.getValue()); List mockData = Arrays.asList(blockDto); NotGroupDto notGroupDto =new NotGroupDto(); - notGroupDto.setGroupId(1); + List blockGroups = new ArrayList<>(); when(blockMapper.findBlocksReturn(notGroupDto)).thenReturn(mockData); when(userMapper.queryUserById(anyInt())).thenReturn(new User()); + when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId())).thenReturn(blockGroups); List result = blockServiceImpl.getNotInGroupBlocks(notGroupDto); - Assertions.assertEquals(blockDto, result.get(0)); + Assertions.assertEquals(new ArrayList<>(), result); } @Test From e9aa592a066a8de5a6edacf874fc92c614e61297 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 23 Jan 2025 00:35:13 -0800 Subject: [PATCH 08/25] fix: modify block update api --- .../exception/GlobalExceptionAdvice.java | 2 +- .../it/controller/BlockController.java | 10 +--- .../it/mapper/BlockGroupBlockMapper.java | 10 ++++ .../it/mapper/BlockGroupMapper.java | 7 ++- .../it/service/material/BlockService.java | 2 +- .../material/impl/BlockServiceImpl.java | 58 +++++++++++++------ .../mappers/BlockGroupBlockMapper.xml | 2 +- .../exception/GlobalExceptionAdviceTest.java | 5 +- .../it/controller/BlockControllerTest.java | 5 +- .../material/impl/BlockServiceImplTest.java | 17 +++--- 10 files changed, 74 insertions(+), 44 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/common/exception/GlobalExceptionAdvice.java b/base/src/main/java/com/tinyengine/it/common/exception/GlobalExceptionAdvice.java index d398d579..4e0e0f30 100644 --- a/base/src/main/java/com/tinyengine/it/common/exception/GlobalExceptionAdvice.java +++ b/base/src/main/java/com/tinyengine/it/common/exception/GlobalExceptionAdvice.java @@ -41,7 +41,7 @@ public class GlobalExceptionAdvice { * @param e the e * @return the result */ - @ResponseStatus(HttpStatus.OK) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) @ExceptionHandler(Exception.class) public Result> handleException(Exception e) { // 修改为 log.error,传递异常对象以打印堆栈信息 diff --git a/base/src/main/java/com/tinyengine/it/controller/BlockController.java b/base/src/main/java/com/tinyengine/it/controller/BlockController.java index cc076582..1b737136 100644 --- a/base/src/main/java/com/tinyengine/it/controller/BlockController.java +++ b/base/src/main/java/com/tinyengine/it/controller/BlockController.java @@ -398,14 +398,10 @@ public Result> getBlockGroups( ) @SystemControllerLog(description = "区块修改api") @PostMapping("/block/update/{id}") - public Result updateBlocks(@Valid @RequestBody BlockDto blockDto, @PathVariable Integer id) { + public Result updateBlocks(@Valid @RequestBody BlockDto blockDto, @PathVariable Integer id, + @RequestParam(value = "appId", required = false) Integer appId) { blockDto.setId(id); - int result = blockService.updateBlockById(blockDto); - if (result < 1) { - return Result.failed(ExceptionEnum.CM001); - } - BlockDto blocksResult = blockService.queryBlockById(blockDto.getId()); - return Result.success(blocksResult); + return blockService.updateBlockById(blockDto,appId); } /** 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 3add05c7..7eced891 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupBlockMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupBlockMapper.java @@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.tinyengine.it.model.entity.BlockGroupBlock; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -87,4 +88,13 @@ public interface BlockGroupBlockMapper extends BaseMapper { */ @Select("select * from r_block_group_block where block_group_id = #{blockGroupId}") List findBlockGroupBlockByBlockGroupId(Integer blockGroupId); + + /** + * 通过区块分组id查询分组下区块 + * @param blockId the block id + * @param groupId the block group id + * @return the list + */ + @Delete("delete from r_block_group_block where block_group_id = #{groupId} and block_id = #{blockId}") + Integer deleteByGroupIdAndBlockId(Integer groupId, Integer blockId); } diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java index 91d25d28..9b92094b 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java @@ -139,12 +139,13 @@ public interface BlockGroupMapper extends BaseMapper { /** * 根据区块id查询区块分组信息 - * + * @param createdBy the user id * @param blockId the block id * @return the list */ @Select("select * from t_block_group bg " + "left join r_block_group_block bgb on bgb.block_group_id = bg.id " - + "where bgb.block_id = #{blockId}") - List findBlockGroupByBlockId(Integer blockId); + + "where bgb.block_id = #{blockId} and created_by = #{createdBy}") + List findBlockGroupByBlockId(Integer blockId,String createdBy); + } \ No newline at end of file diff --git a/base/src/main/java/com/tinyengine/it/service/material/BlockService.java b/base/src/main/java/com/tinyengine/it/service/material/BlockService.java index 1b3485dd..32cb4df7 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/BlockService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/BlockService.java @@ -69,7 +69,7 @@ public interface BlockService { * @param blockDto the block dto * @return the BlockDto */ - Integer updateBlockById(BlockDto blockDto); + Result updateBlockById(BlockDto blockDto, Integer appId); /** * 新增表t_block数据 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 90c47ed2..2e824198 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 @@ -38,7 +38,6 @@ import com.tinyengine.it.model.dto.SchemaI18n; import com.tinyengine.it.model.entity.App; import com.tinyengine.it.model.entity.Block; -import com.tinyengine.it.model.entity.BlockCarriersRelation; import com.tinyengine.it.model.entity.BlockGroup; import com.tinyengine.it.model.entity.BlockGroupBlock; import com.tinyengine.it.model.entity.BlockHistory; @@ -113,6 +112,9 @@ public List queryAllBlock() { @Override public BlockDto queryBlockById(@Param("id") Integer id) { BlockDto blockDto = blockMapper.findBlockAndGroupAndHistoByBlockId(id); + if (blockDto == null) { + return blockDto; + } boolean isPublished = blockDto.getLastBuildInfo() != null && blockDto.getLastBuildInfo().get("result") instanceof Boolean ? (Boolean) blockDto.getLastBuildInfo().get("result") : Boolean.FALSE; @@ -149,23 +151,28 @@ public Integer deleteBlockById(@Param("id") Integer id) { * @return blockDto */ @Override - public Integer updateBlockById(BlockDto blockDto) { - // public 不是部分公开, 则public_scope_tenants为空数组 + public Result updateBlockById(BlockDto blockDto, Integer appId) { + Block blockResult = blockMapper.queryBlockById(blockDto.getId()); + if (blockResult.getAppId() != appId) { + return Result.failed(ExceptionEnum.CM007); + } // 把前端传参赋值给实体 Block blocks = new Block(); BeanUtils.copyProperties(blockDto, blocks); blocks.setOccupierBy(String.valueOf(1)); - if(blockDto.getLatestHistoryId() != null){ + if (blockDto.getLatestHistoryId() != null) { blocks.setLatestHistoryId(blockDto.getLatestHistoryId().getId()); } // 处理区块截图 - if (!blockDto.getScreenshot().isEmpty() && !blockDto.getLabel().isEmpty()) { + if (blockDto.getScreenshot() != null && blockDto.getLabel() != null) { // 图片上传,此处给默认值空字符 blocks.setScreenshot(""); } - - if(blockDto.getGroups().isEmpty()){ - return blockMapper.updateBlockById(blocks); + Integer result; + if (blockDto.getGroups() == null || blockDto.getGroups().isEmpty()) { + blockMapper.updateBlockById(blocks); + BlockDto blockDtoResult = queryBlockById(blocks.getId()); + return Result.success(blockDtoResult); } // 过滤出 Integer 类型的对象 @@ -176,13 +183,29 @@ public Integer updateBlockById(BlockDto blockDto) { .map(obj -> (Integer) obj) .collect(Collectors.toList()); - int groupId = groups.get(0); + // 对接登录后获取用户id + String createdBy = "1"; + // 根据区块id获取区块所在分组 + List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blocks.getId(), createdBy); + if (!blockGroups.isEmpty()) { + List blockGroupIds = blockGroups.stream().map(BlockGroup::getId).collect(Collectors.toList()); + for (Integer id : blockGroupIds) { + blockGroupBlockMapper.deleteByGroupIdAndBlockId(id, blocks.getId()); + } + } + + for (Integer groupId : groups) { BlockGroupBlock blockGroupBlock = new BlockGroupBlock(); - blockGroupBlock.setBlockGroupId(groupId); blockGroupBlock.setBlockId(blockDto.getId()); + blockGroupBlock.setBlockGroupId(groupId); blockGroupBlockMapper.createBlockGroupBlock(blockGroupBlock); + } + - return blockMapper.updateBlockById(blocks); + blockMapper.updateBlockById(blocks); + + BlockDto blockDtoResult = queryBlockById(blocks.getId()); + return Result.success(blockDtoResult); } /** @@ -412,11 +435,12 @@ public List getNotInGroupBlocks(NotGroupDto notGroupDto) { int userId = 1; User user = userMapper.queryUserById(userId); List blocksList = blockMapper.findBlocksReturn(notGroupDto); - if(blocksList == null || blocksList.isEmpty()){ + if (blocksList == null || blocksList.isEmpty()) { return blocksList; } + for (BlockDto blockDto : blocksList) { - List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId()); + List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), String.valueOf(userId)); List objectGroups = new ArrayList<>(blockGroups); blockDto.setGroups(objectGroups); } @@ -518,12 +542,8 @@ public Result deploy(BlockBuildDto blockBuildDto) { } blockDto.setLastBuildInfo(buildInfo); blockDto.setLatestHistoryId(blockHistory); - int blockResult = updateBlockById(blockDto); - if (blockResult < 1) { - return Result.failed(ExceptionEnum.CM008); - } - BlockDto result = queryBlockById(id); - return Result.success(result); + + return updateBlockById(blockDto, blockDto.getAppId()); } /** diff --git a/base/src/main/resources/mappers/BlockGroupBlockMapper.xml b/base/src/main/resources/mappers/BlockGroupBlockMapper.xml index 34df2193..1adf5c70 100644 --- a/base/src/main/resources/mappers/BlockGroupBlockMapper.xml +++ b/base/src/main/resources/mappers/BlockGroupBlockMapper.xml @@ -98,6 +98,6 @@ UPDATE block_id = VALUES (block_id), block_group_id = - VALUES (block_group_id) + VALUES (block_group_id); diff --git a/base/src/test/java/com/tinyengine/it/common/exception/GlobalExceptionAdviceTest.java b/base/src/test/java/com/tinyengine/it/common/exception/GlobalExceptionAdviceTest.java index 16ffb2bc..fb078966 100644 --- a/base/src/test/java/com/tinyengine/it/common/exception/GlobalExceptionAdviceTest.java +++ b/base/src/test/java/com/tinyengine/it/common/exception/GlobalExceptionAdviceTest.java @@ -36,8 +36,9 @@ class GlobalExceptionAdviceTest { @Test void testHandleException() { - Result> result = globalExceptionAdvice.handleException(new Exception("message", - new Throwable("message"))); + // 创建一个新的异常对象并传递给 handleException + Exception e = new Exception("message", new Throwable("message")); + Result> result = globalExceptionAdvice.handleException(e); Assertions.assertEquals(ExceptionEnum.CM001.getResultMsg(), result.getMessage()); Assertions.assertEquals(ExceptionEnum.CM001.getResultCode(), result.getCode()); } diff --git a/base/src/test/java/com/tinyengine/it/controller/BlockControllerTest.java b/base/src/test/java/com/tinyengine/it/controller/BlockControllerTest.java index 9dc2891c..ba0bb146 100644 --- a/base/src/test/java/com/tinyengine/it/controller/BlockControllerTest.java +++ b/base/src/test/java/com/tinyengine/it/controller/BlockControllerTest.java @@ -179,11 +179,12 @@ void testGetAllBlockCategories() { @Test void testUpdateBlocks() { - when(blockService.updateBlockById(any(BlockDto.class))).thenReturn(1); BlockDto returnData = new BlockDto(); + when(blockService.updateBlockById(any(BlockDto.class), anyInt())).thenReturn(Result.success(returnData)); + when(blockService.queryBlockById(anyInt())).thenReturn(returnData); - Result result = blockController.updateBlocks(returnData, Integer.valueOf(0)); + Result result = blockController.updateBlocks(returnData, Integer.valueOf(0), Integer.valueOf(1)); Assertions.assertEquals(returnData, result.getData()); } } 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 256ede34..ee5d586d 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 @@ -129,14 +129,15 @@ void testCreateBlock() { @Test void testUpdateBlockById() { - when(blockMapper.updateBlockById(any())).thenReturn(1); BlockDto blockDto = new BlockDto(); - blockDto.setId(1); - blockDto.setName("BlockTest1"); - blockDto.setScreenshot("aa"); - blockDto.setLabel("bb"); - Integer result = blockServiceImpl.updateBlockById(blockDto); - Assertions.assertEquals(1, result); + when(blockMapper.updateBlockById(any())).thenReturn(1); + when(blockMapper.findBlockAndGroupAndHistoByBlockId(anyInt())).thenReturn(new BlockDto()); + Block block = new Block(); + block.setAppId(1); + when(blockMapper.queryBlockById(blockDto.getId())).thenReturn(block); + + Result result = blockServiceImpl.updateBlockById(blockDto,1); + Assertions.assertEquals(null, result.getData()); } @Test @@ -246,7 +247,7 @@ void testGetNotInGroupBlocks() { List blockGroups = new ArrayList<>(); when(blockMapper.findBlocksReturn(notGroupDto)).thenReturn(mockData); when(userMapper.queryUserById(anyInt())).thenReturn(new User()); - when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId())).thenReturn(blockGroups); + when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(),blockDto.getCreatedBy())).thenReturn(blockGroups); List result = blockServiceImpl.getNotInGroupBlocks(notGroupDto); Assertions.assertEquals(new ArrayList<>(), result); From ed7483d1e4f0ec535278833039d55dde399043ad Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 23 Jan 2025 02:28:41 -0800 Subject: [PATCH 09/25] fix: Modify code format --- .../it/controller/BlockController.java | 2 -- .../mapper/BlockCarriersRelationMapper.java | 19 ++++++++----------- .../it/mapper/BlockGroupMapper.java | 2 +- .../it/model/dto/BlockGroupDto.java | 1 - .../tinyengine/it/model/dto/NotGroupDto.java | 2 -- .../service/app/impl/AiChatServiceImpl.java | 19 ++++++++++++++----- .../service/app/impl/v1/AppV1ServiceImpl.java | 1 - .../material/impl/BlockGroupServiceImpl.java | 14 +++++++------- .../material/impl/BlockServiceImpl.java | 2 +- .../impl/BlockGroupServiceImplTest.java | 1 - .../material/impl/BlockServiceImplTest.java | 7 +++---- 11 files changed, 34 insertions(+), 36 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/controller/BlockController.java b/base/src/main/java/com/tinyengine/it/controller/BlockController.java index 1b737136..1f1fdd18 100644 --- a/base/src/main/java/com/tinyengine/it/controller/BlockController.java +++ b/base/src/main/java/com/tinyengine/it/controller/BlockController.java @@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.tinyengine.it.common.base.Result; -import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.log.SystemControllerLog; import com.tinyengine.it.mapper.BlockMapper; import com.tinyengine.it.mapper.TenantMapper; @@ -46,7 +45,6 @@ import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map; diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockCarriersRelationMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockCarriersRelationMapper.java index 75be087a..7162a576 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockCarriersRelationMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockCarriersRelationMapper.java @@ -16,7 +16,6 @@ import com.tinyengine.it.model.entity.BlockCarriersRelation; import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; import java.util.List; @@ -44,10 +43,10 @@ public interface BlockCarriersRelationMapper extends BaseMapper queryBlockCarriersRelationByCondition(BlockCarriersRelation BlockCarriersRelation); + List queryBlockCarriersRelationByCondition(BlockCarriersRelation blockCarriersRelation); /** * 根据主键id删除表t_block_carriers_relation数据 @@ -60,31 +59,29 @@ public interface BlockCarriersRelationMapper extends BaseMapper { @Select("select * from t_block_group bg " + "left join r_block_group_block bgb on bgb.block_group_id = bg.id " + "where bgb.block_id = #{blockId} and created_by = #{createdBy}") - List findBlockGroupByBlockId(Integer blockId,String createdBy); + List findBlockGroupByBlockId(Integer blockId, String createdBy); } \ No newline at end of file diff --git a/base/src/main/java/com/tinyengine/it/model/dto/BlockGroupDto.java b/base/src/main/java/com/tinyengine/it/model/dto/BlockGroupDto.java index ee0887c8..cdd8819b 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/BlockGroupDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/BlockGroupDto.java @@ -17,7 +17,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.tinyengine.it.common.base.BaseEntity; import com.tinyengine.it.model.entity.App; -import com.tinyengine.it.model.entity.Block; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/NotGroupDto.java b/base/src/main/java/com/tinyengine/it/model/dto/NotGroupDto.java index 09bcca6b..451dd26e 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/NotGroupDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/NotGroupDto.java @@ -15,8 +15,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.util.List; - /** *

* 条件查询不在区块分组参数 diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java index eb887956..97fc1434 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java @@ -14,6 +14,8 @@ import com.tinyengine.it.common.base.Result; import com.tinyengine.it.common.enums.Enums; +import com.tinyengine.it.common.exception.ExceptionEnum; +import com.tinyengine.it.common.exception.ServiceException; import com.tinyengine.it.common.log.SystemServiceLog; import com.tinyengine.it.gateway.ai.AiChatClient; import com.tinyengine.it.model.dto.AiMessages; @@ -89,15 +91,19 @@ public Result> getAnswerFromAi(AiParam aiParam) { } List> choices = (List>) data.get("choices"); Map message = (Map) choices.get(0).get("message"); - boolean isFinish = false; + String answerContent = ""; - isFinish = choices.get(0).get("finish_reason") != null || isFinish; + String isFinish = ""; + Object finishReason = choices.get(0).get("finish_reason"); + if (finishReason instanceof String) { + isFinish = (String) finishReason; + } if (!"length".equals(isFinish)) { answerContent = message.get("content"); } // 若内容被截断,继续请求AI - while (isFinish) { + while ("length".equals(isFinish)) { String prefix = message.get("content"); answerContent = answerContent + prefix; @@ -115,12 +121,15 @@ public Result> getAnswerFromAi(AiParam aiParam) { try { data = requestAnswerFromAi(aiParam.getMessages(), model).getData(); } catch (Exception e) { - e.printStackTrace(); + new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultMsg()); } choices = (List>) data.get("choices"); message = (Map) choices.get(0).get("message"); answerContent += message.get("content"); - isFinish = (boolean) choices.get(0).get("finish_reason"); + finishReason = choices.get(0).get("finish_reason"); + if (finishReason instanceof String) { + isFinish = (String) finishReason; + } } diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java index e75bec94..05345f0b 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java @@ -32,7 +32,6 @@ import com.tinyengine.it.model.dto.I18nEntryDto; import com.tinyengine.it.model.dto.MaterialHistoryMsg; import com.tinyengine.it.model.dto.MetaDto; -import com.tinyengine.it.model.dto.SchemaDataSource; import com.tinyengine.it.model.dto.SchemaDto; import com.tinyengine.it.model.dto.SchemaI18n; import com.tinyengine.it.model.dto.SchemaMeta; 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 24aef050..e06537d4 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 @@ -187,17 +187,17 @@ public List getBlockGroupByIdsOrAppId(List ids, Integer app } // 对查询的结果的区块赋值current_version for (BlockGroup blockGroupTemp : blockGroupsListResult) { - for (Block block: blockGroupTemp.getBlocks()){ + for (Block block : blockGroupTemp.getBlocks()) { BlockCarriersRelation queryParam = new BlockCarriersRelation(); queryParam.setBlockId(block.getId()); queryParam.setHostId(blockGroup.getId()); queryParam.setHostType(Enums.BlockGroup.BLOCK_GROUP.getValue()); - List blockCarriersRelations = blockCarriersRelationMapper.queryBlockCarriersRelationByCondition(queryParam); - if (blockCarriersRelations.isEmpty()){ - continue; - } - String version = blockCarriersRelations.get(0).getVersion(); - block.setCurrentVersion(version); + List blockCarriersRelations = blockCarriersRelationMapper.queryBlockCarriersRelationByCondition(queryParam); + if (blockCarriersRelations.isEmpty()) { + continue; + } + String version = blockCarriersRelations.get(0).getVersion(); + block.setCurrentVersion(version); } } 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 2e824198..464f1676 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 @@ -153,7 +153,7 @@ public Integer deleteBlockById(@Param("id") Integer id) { @Override public Result updateBlockById(BlockDto blockDto, Integer appId) { Block blockResult = blockMapper.queryBlockById(blockDto.getId()); - if (blockResult.getAppId() != appId) { + if (!Objects.equals(blockResult.getAppId(), appId)) { return Result.failed(ExceptionEnum.CM007); } // 把前端传参赋值给实体 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 9e92239d..99305c57 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 @@ -28,7 +28,6 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.Arrays; 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 ee5d586d..7cabdb16 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,7 +23,6 @@ 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.enums.Enums; import com.tinyengine.it.mapper.AppMapper; import com.tinyengine.it.mapper.BlockGroupMapper; import com.tinyengine.it.mapper.BlockMapper; @@ -136,7 +135,7 @@ void testUpdateBlockById() { block.setAppId(1); when(blockMapper.queryBlockById(blockDto.getId())).thenReturn(block); - Result result = blockServiceImpl.updateBlockById(blockDto,1); + Result result = blockServiceImpl.updateBlockById(blockDto, 1); Assertions.assertEquals(null, result.getData()); } @@ -243,11 +242,11 @@ void testAllTags() { void testGetNotInGroupBlocks() { BlockDto blockDto = new BlockDto(); List mockData = Arrays.asList(blockDto); - NotGroupDto notGroupDto =new NotGroupDto(); + NotGroupDto notGroupDto = new NotGroupDto(); List blockGroups = new ArrayList<>(); when(blockMapper.findBlocksReturn(notGroupDto)).thenReturn(mockData); when(userMapper.queryUserById(anyInt())).thenReturn(new User()); - when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(),blockDto.getCreatedBy())).thenReturn(blockGroups); + when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), blockDto.getCreatedBy())).thenReturn(blockGroups); List result = blockServiceImpl.getNotInGroupBlocks(notGroupDto); Assertions.assertEquals(new ArrayList<>(), result); From cabb3093640b7c72d6e1638ec884e72e2c4f5750 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 23 Jan 2025 02:36:13 -0800 Subject: [PATCH 10/25] fix: Modify code format --- .../src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java | 1 - 1 file changed, 1 deletion(-) diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java index f632d886..9b92094b 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java @@ -146,7 +146,6 @@ public interface BlockGroupMapper extends BaseMapper { @Select("select * from t_block_group bg " + "left join r_block_group_block bgb on bgb.block_group_id = bg.id " + "where bgb.block_id = #{blockId} and created_by = #{createdBy}") - List findBlockGroupByBlockId(Integer blockId,String createdBy); } \ No newline at end of file From 83cb48a37581bf787c52c02315328f24f71af80c Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Thu, 23 Jan 2025 18:37:12 -0800 Subject: [PATCH 11/25] fix: Modify code format --- .../java/com/tinyengine/it/controller/BlockController.java | 2 +- .../main/java/com/tinyengine/it/mapper/BlockGroupMapper.java | 2 +- .../tinyengine/it/service/app/impl/AiChatServiceImpl.java | 5 +++-- .../it/service/app/impl/AiChatServiceImplTest.java | 2 +- .../it/service/material/impl/BlockServiceImplTest.java | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/base/src/main/java/com/tinyengine/it/controller/BlockController.java b/base/src/main/java/com/tinyengine/it/controller/BlockController.java index 1f1fdd18..54c15b1f 100644 --- a/base/src/main/java/com/tinyengine/it/controller/BlockController.java +++ b/base/src/main/java/com/tinyengine/it/controller/BlockController.java @@ -399,7 +399,7 @@ public Result> getBlockGroups( public Result updateBlocks(@Valid @RequestBody BlockDto blockDto, @PathVariable Integer id, @RequestParam(value = "appId", required = false) Integer appId) { blockDto.setId(id); - return blockService.updateBlockById(blockDto,appId); + return blockService.updateBlockById(blockDto, appId); } /** diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java index 9b92094b..25790ccf 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java @@ -146,6 +146,6 @@ public interface BlockGroupMapper extends BaseMapper { @Select("select * from t_block_group bg " + "left join r_block_group_block bgb on bgb.block_group_id = bg.id " + "where bgb.block_id = #{blockId} and created_by = #{createdBy}") - List findBlockGroupByBlockId(Integer blockId,String createdBy); + List findBlockGroupByBlockId(Integer blockId, String createdBy); } \ No newline at end of file diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java index 97fc1434..08191e17 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java @@ -121,11 +121,12 @@ public Result> getAnswerFromAi(AiParam aiParam) { try { data = requestAnswerFromAi(aiParam.getMessages(), model).getData(); } catch (Exception e) { - new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultMsg()); + throw new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultMsg()); } choices = (List>) data.get("choices"); message = (Map) choices.get(0).get("message"); - answerContent += message.get("content"); + StringBuilder sb = new StringBuilder(); + answerContent = String.valueOf(sb.append(message.get("content"))); finishReason = choices.get(0).get("finish_reason"); if (finishReason instanceof String) { isFinish = (String) finishReason; diff --git a/base/src/test/java/com/tinyengine/it/service/app/impl/AiChatServiceImplTest.java b/base/src/test/java/com/tinyengine/it/service/app/impl/AiChatServiceImplTest.java index 92a01b1a..76ad7a7b 100644 --- a/base/src/test/java/com/tinyengine/it/service/app/impl/AiChatServiceImplTest.java +++ b/base/src/test/java/com/tinyengine/it/service/app/impl/AiChatServiceImplTest.java @@ -87,7 +87,7 @@ void testGetAnswerFromAi() { Map response = new HashMap<>(); response.put("data", dataMap); - response.put("result",(String) ""); + response.put("result", (String) ""); when(aiChatClient.executeChatRequest(any(OpenAiBodyDto.class))).thenReturn(response); Result> result = aiChatServiceImpl.getAnswerFromAi(aiParam); Map resultData = result.getData(); 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 c72031dc..7cabdb16 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 @@ -135,7 +135,7 @@ void testUpdateBlockById() { block.setAppId(1); when(blockMapper.queryBlockById(blockDto.getId())).thenReturn(block); - Result result = blockServiceImpl.updateBlockById(blockDto,1); + Result result = blockServiceImpl.updateBlockById(blockDto, 1); Assertions.assertEquals(null, result.getData()); } @@ -246,7 +246,7 @@ void testGetNotInGroupBlocks() { List blockGroups = new ArrayList<>(); when(blockMapper.findBlocksReturn(notGroupDto)).thenReturn(mockData); when(userMapper.queryUserById(anyInt())).thenReturn(new User()); - when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(),blockDto.getCreatedBy())).thenReturn(blockGroups); + when(blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), blockDto.getCreatedBy())).thenReturn(blockGroups); List result = blockServiceImpl.getNotInGroupBlocks(notGroupDto); Assertions.assertEquals(new ArrayList<>(), result); From 48645e1f0f86b4ec8df6ebe1cf6537508d3883a8 Mon Sep 17 00:00:00 2001 From: lu17301156525 Date: Sun, 26 Jan 2025 00:14:37 -0800 Subject: [PATCH 12/25] fix: modify block group api --- .github/workflows/checkstyle.yml | 45 ++++ app/src/main/resources/checkstyle.xml | 226 ++++++++++++++++++ .../it/common/base/PageQueryVo.java | 2 +- .../it/controller/PageController.java | 4 +- .../it/mapper/BlockGroupMapper.java | 28 +-- .../it/mapper/BlockHistoryMapper.java | 4 +- .../com/tinyengine/it/mapper/BlockMapper.java | 19 +- .../com/tinyengine/it/model/dto/BlockDto.java | 4 - .../com/tinyengine/it/model/entity/Block.java | 4 - .../service/app/impl/v1/AppV1ServiceImpl.java | 2 +- .../material/impl/BlockGroupServiceImpl.java | 12 +- .../material/impl/BlockServiceImpl.java | 15 +- .../resources/mappers/BlockGroupMapper.xml | 29 ++- .../main/resources/mappers/BlockMapper.xml | 38 +-- .../impl/BlockGroupServiceImplTest.java | 6 +- .../material/impl/BlockServiceImplTest.java | 2 +- pom.xml | 31 ++- 17 files changed, 382 insertions(+), 89 deletions(-) create mode 100644 .github/workflows/checkstyle.yml create mode 100644 app/src/main/resources/checkstyle.xml diff --git a/.github/workflows/checkstyle.yml b/.github/workflows/checkstyle.yml new file mode 100644 index 00000000..e1e7ad25 --- /dev/null +++ b/.github/workflows/checkstyle.yml @@ -0,0 +1,45 @@ +name: Checkstyle Code Quality + +on: + push: + branches: + - develop # 或者你想要检查的分支 + pull_request: + branches: + - develop # 你可以在 PR 时检查代码 + +jobs: + check: + runs-on: ubuntu-24.04 + + steps: + # 检出代码 + - name: Checkout code + uses: actions/checkout@v4 + + # 设置 JDK(如果是 Java 项目) + - name: Set up JDK 8.* + uses: actions/setup-java@v4 + with: + java-version: '8.*' + + # 安装 Checkstyle(如果你是用 Maven 或 Gradle) + - name: Install dependencies + run: | + ./mvnw install # 如果是 Maven 项目 + # 或者 + # ./gradlew build # 如果是 Gradle 项目 + + # 运行 Checkstyle + - name: Run Checkstyle + run: | + ./mvnw checkstyle:check # 如果是 Maven 项目 + # 或者 + # ./gradlew check # 如果是 Gradle 项目 + + # 查看 Checkstyle 检查报告 + - name: Upload Checkstyle report + uses: actions/upload-artifact@v4 + with: + name: checkstyle-report + path: target/checkstyle-result.xml # 如果是 Maven 项目 \ No newline at end of file diff --git a/app/src/main/resources/checkstyle.xml b/app/src/main/resources/checkstyle.xml new file mode 100644 index 00000000..c0d6cc9e --- /dev/null +++ b/app/src/main/resources/checkstyle.xml @@ -0,0 +1,226 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file 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..9eb6df88 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 @@ -96,7 +96,7 @@ public void setData(T data) { /** * 分页查询对象 - * + * @param 泛型类型参数 E,代表分页数据的类型 * @return page */ public Page getPage() { 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 d840cef0..8fefcb94 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PageController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PageController.java @@ -71,8 +71,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 = "请求失败")}) diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java index 25790ccf..2ddca53d 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockGroupMapper.java @@ -33,11 +33,11 @@ public interface BlockGroupMapper extends BaseMapper { /** * 查询表t_block_group所有信息及关联的区块信息 - * - * @param createdBy createdBy + * @param blockCreatedBy the blockCreatedBy + * @param groupCreatedBy the groupCreatedBy * @return the list */ - List queryAllBlockGroupAndBlock(String createdBy); + List queryAllBlockGroupAndBlock(String blockCreatedBy, String groupCreatedBy); /** * 查询表t_block_group所有信息 @@ -51,10 +51,11 @@ public interface BlockGroupMapper extends BaseMapper { * 根据主键id查询表t_block_group数据 * * @param id the id - * @param createdBy createdBy + * @param blockCreatedBy the lockCreatedBy + * @param groupCreatedBy the groupCreatedBy * @return the block group */ - BlockGroup queryBlockGroupAndBlockById(@Param("id") Integer id, String createdBy); + BlockGroup queryBlockGroupAndBlockById(@Param("id") Integer id, String blockCreatedBy, String groupCreatedBy); /** * 通过ID查询分组信息 @@ -101,10 +102,11 @@ public interface BlockGroupMapper extends BaseMapper { * 通过appId和createdBy查区块分组关联的区块信息 * * @param appId the app id - * @param createdBy createdBy + * @param blockCreatedBy the blockCreatedBy + * @param groupCreatedBy the groupCreatedBy * @return the list */ - List queryBlockGroupByAppId(Integer appId, String createdBy); + List queryBlockGroupByAppId(Integer appId, String blockCreatedBy, String groupCreatedBy); /** * 通过appId获取分组信息 @@ -125,15 +127,13 @@ public interface BlockGroupMapper extends BaseMapper { @Result(column = "app", property = "appId"), @Result(column = "app", property = "app", one = @One(select = "com.tinyengine.it.mapper.AppMapper.queryAppById")), - @Result(column = "block_group_id", javaType = List.class, property = "blocks", - many = @Many(select = "com.tinyengine.it.mapper.BlockMapper.findBlocksByBlockGroupId")) + @Result(column = "id", javaType = List.class, property = "blocks", + many = @Many(select = "com.tinyengine.it.mapper.BlockMapper.findBlockByBlockGroupId")) }) - @Select("SELECT bg.*, bs.block_group_id as block_group_id, a.id as app " + @Select("SELECT bg.*, a.id as app " + "FROM t_block_group bg " + "left join t_app a on bg.app_id = a.id " - + "left join t_block bs on bg.id = bs.block_group_id " - + "WHERE bg.id = #{blockGroupId} " - + "GROUP BY bg.id") + + "WHERE bg.id = #{blockGroupId} ") List getBlockGroupsById(int blockGroupId); @@ -145,7 +145,7 @@ public interface BlockGroupMapper extends BaseMapper { */ @Select("select * from t_block_group bg " + "left join r_block_group_block bgb on bgb.block_group_id = bg.id " - + "where bgb.block_id = #{blockId} and created_by = #{createdBy}") + + "where bgb.block_id = #{blockId} and bg.created_by = #{createdBy}") List findBlockGroupByBlockId(Integer blockId, String createdBy); } \ No newline at end of file diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockHistoryMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockHistoryMapper.java index 89f61550..1b6dcdfc 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockHistoryMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockHistoryMapper.java @@ -104,8 +104,10 @@ public interface BlockHistoryMapper extends BaseMapper { */ @Select({""}) List queryBlockAndVersion(@Param("ids") List ids, @Param("materialHistoryId") Integer materialHistoryId); diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java index 6a449823..debca3cd 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java @@ -79,16 +79,6 @@ public interface BlockMapper extends BaseMapper { */ Integer createBlock(Block block); - /** - * 通过区块分组id获取区块信息 - * - * @param blockGroupId the block group id - * @return the list - */ - @Select("select b.* from t_block b " - + "where b.block_group_id = #{blockGroupId} ") - List findBlocksByBlockGroupId(int blockGroupId); - /** * 根据name或者description查询表t_block信息 * @@ -118,10 +108,7 @@ public interface BlockMapper extends BaseMapper { }) @Select("select b.*, b.id as block_id " + "from t_block b " - + "left join t_block_group bg on b.block_group_id = bg.id " - + "left join t_block_history bh on b.latest_history_id = bh.id " - + "where b.id = #{blockId} " - + "group by b.id") + + "where b.id = #{blockId} ") BlockDto findBlockAndGroupAndHistoByBlockId(Integer blockId); @@ -156,7 +143,7 @@ public interface BlockMapper extends BaseMapper { List findBlocksByBlockGroupIdAppId(int appId); /** - * 根据分组id返回对应的区块信息及关联分组信息 + * 根据条件返回对应的区块信息及关联分组信息 * * @return the list */ @@ -191,7 +178,5 @@ public interface BlockMapper extends BaseMapper { * @param createdBy createdBy * @return the list */ - @Select("select b.* from t_block b " - + "where b.block_group_id = #{blockGroupId} and b.created_by = #{createdBy}") List findBlockByBlockGroupId(int blockGroupId, String createdBy); } \ No newline at end of file diff --git a/base/src/main/java/com/tinyengine/it/model/dto/BlockDto.java b/base/src/main/java/com/tinyengine/it/model/dto/BlockDto.java index de9940e3..b0c0fc6e 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/BlockDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/BlockDto.java @@ -123,10 +123,6 @@ public class BlockDto extends BaseEntity { @JsonProperty("platform_id") private Integer platformId; - @Schema(name = "blockGroupId", description = "区块分组id,关联t_block_group表id") - @JsonProperty("block_group_id") - private Integer blockGroupId; - @JsonProperty("occupier") @Schema(name = "occupierBy", description = "当前锁定人") private User occupier; diff --git a/base/src/main/java/com/tinyengine/it/model/entity/Block.java b/base/src/main/java/com/tinyengine/it/model/entity/Block.java index 37ceb6ed..dd063cd1 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/Block.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/Block.java @@ -127,10 +127,6 @@ public class Block extends BaseEntity { @JsonProperty("content_blocks") private String contentBlocks; - @Schema(name = "blockGroupId", description = "区块分组id,关联t_block_group表id") - @JsonProperty("block_group_id") - private Integer blockGroupId; - @TableField(exist = false) @JsonProperty("public_scope_tenants") private List publicScopeTenants = new ArrayList<>(); diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java index 05345f0b..58270f05 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java @@ -362,7 +362,7 @@ public List getBlockHistoryIdBySemver(List blocksVersi historyMap.put(version, item.getHistoryId()); itemMap.put("historyMap", historyMap); itemMap.put("versions", versionList); - blocksVersionMap.put("blockId", itemMap); + blocksVersionMap.put(String.valueOf(item.getBlockId()), itemMap); } // 遍历区块历史记录 综合信息映射关系 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 e06537d4..70e0eac0 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 @@ -164,22 +164,23 @@ public Result> createBlockGroup(BlockGroup blockGroup) { */ @Override public List getBlockGroupByIdsOrAppId(List ids, Integer appId, String from) { - String createdBy = "1"; // 获取登录用户信息 // 此接收到的两个参数不一定同时存在 List blockGroupsListResult = new ArrayList<>(); - createdBy = (Enums.BlockGroup.BLOCK.getValue()).equals(from) ? createdBy : null; // from值为block在区块管理处增加createdBy条件 + String groupCreatedBy = "1"; // 获取登录用户id + String blockCreatedBy = "1"; + blockCreatedBy = (Enums.BlockGroup.BLOCK.getValue()).equals(from) ? blockCreatedBy : null; // from值为block在区块管理处增加createdBy条件 BlockGroup blockGroup = new BlockGroup(); if (ids != null) { for (int blockgroupId : ids) { - blockGroup = blockGroupMapper.queryBlockGroupAndBlockById(blockgroupId, createdBy); + blockGroup = blockGroupMapper.queryBlockGroupAndBlockById(blockgroupId, blockCreatedBy, groupCreatedBy); blockGroupsListResult.add(blockGroup); } } if (appId != null) { - blockGroupsListResult = blockGroupMapper.queryBlockGroupByAppId(appId, createdBy); + blockGroupsListResult = blockGroupMapper.queryBlockGroupByAppId(appId, blockCreatedBy, groupCreatedBy); } if (ids == null && appId == null) { - blockGroupsListResult = blockGroupMapper.queryAllBlockGroupAndBlock(createdBy); + blockGroupsListResult = blockGroupMapper.queryAllBlockGroupAndBlock( blockCreatedBy, groupCreatedBy); } if (blockGroupsListResult.isEmpty()) { @@ -216,7 +217,6 @@ private Integer getBlockGroupIds(List groupBlockIds, List para int result = 0; if (groupBlockIds.size() > paramIds.size()) { Block block = new Block(); - block.setBlockGroupId(null); for (Integer blockId : groupBlockIds) { if (!paramIds.contains(blockId)) { result = blockId; 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 11569c48..d2eb05b8 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 @@ -226,20 +226,21 @@ public Result createBlock(BlockDto blockDto) { blocks.setIsDefault(false); blocks.setIsOfficial(false); blocks.setPlatformId(1); // 新建区块给默认值 + + int result = blockMapper.createBlock(blocks); + if (result < 1) { + return Result.failed(ExceptionEnum.CM001); + } + int id = blocks.getId(); + BlockDto blocksResult = queryBlockById(id); List groups = blockDto.getGroups(); if (!groups.isEmpty() && groups.get(0) instanceof Integer) { Integer groupId = (Integer) groups.get(0); // 强制类型转换 BlockGroupBlock blockGroupBlock = new BlockGroupBlock(); blockGroupBlock.setBlockGroupId(groupId); - blockGroupBlock.setBlockId(blockDto.getId()); + blockGroupBlock.setBlockId(id); blockGroupBlockMapper.createBlockGroupBlock(blockGroupBlock); } - int result = blockMapper.createBlock(blocks); - if (result < 1) { - return Result.failed(ExceptionEnum.CM001); - } - int id = blocks.getId(); - BlockDto blocksResult = queryBlockById(id); return Result.success(blocksResult); } diff --git a/base/src/main/resources/mappers/BlockGroupMapper.xml b/base/src/main/resources/mappers/BlockGroupMapper.xml index b7f2daaa..51eaad35 100644 --- a/base/src/main/resources/mappers/BlockGroupMapper.xml +++ b/base/src/main/resources/mappers/BlockGroupMapper.xml @@ -185,12 +185,17 @@ r_block_group_block rbg ON rbg.block_group_id = bg.id LEFT JOIN t_block b ON b.id = rbg.block_id - - AND b.created_by = #{createdBy} + + AND b.created_by = #{blockCreatedBy} - + AND b.last_build_info is not null and b.content is not null and b.assets is not null + + + AND bg.created_by = #{groupCreatedBy} + + @@ -244,16 +249,19 @@ r_block_group_block rbg ON rbg.block_group_id = bg.id LEFT JOIN t_block b ON b.id = rbg.block_id - - AND b.created_by = #{createdBy} + + AND b.created_by = #{blockCreatedBy} - + AND b.last_build_info is not null and b.content is not null and b.assets is not null AND bg.app_id = #{appId} + + AND bg.created_by = #{groupCreatedBy} + @@ -307,16 +315,19 @@ r_block_group_block rbg ON rbg.block_group_id = bg.id LEFT JOIN t_block b ON b.id = rbg.block_id - - AND b.created_by = #{createdBy} + + AND b.created_by = #{blockCreatedBy} - + AND b.last_build_info is not null and b.content is not null and b.assets is not null AND bg.id = #{id} + + AND bg.created_by = #{groupCreatedBy} + diff --git a/base/src/main/resources/mappers/BlockMapper.xml b/base/src/main/resources/mappers/BlockMapper.xml index 7d08fbf5..c6a8a47b 100644 --- a/base/src/main/resources/mappers/BlockMapper.xml +++ b/base/src/main/resources/mappers/BlockMapper.xml @@ -9,7 +9,7 @@ id , label, name, framework, content, assets, last_build_info, description, tags, latest_version, latest_history_id, screenshot, path, occupier_by, is_official, `public`, is_default, tiny_reserved, npm_name, - i18n, platform_id, app_id, content_blocks, block_group_id, created_by, last_updated_by, created_time, + i18n, platform_id, app_id, content_blocks, created_by, last_updated_by, created_time, last_updated_time, tenant_id, renter_id, site_id @@ -81,9 +81,6 @@ AND content_blocks = #{contentBlocks} - - AND block_group_id = #{blockGroupId} - AND created_by = #{createdBy} @@ -175,9 +172,6 @@ content_blocks = #{contentBlocks}, - - block_group_id = #{blockGroupId}, - created_by = #{createdBy}, @@ -227,7 +221,6 @@ - @@ -267,14 +260,27 @@ + - +