From 22babfb24fadc604aea058a3b3c5e588c8db6ae9 Mon Sep 17 00:00:00 2001 From: lizhengwei Date: Fri, 14 Nov 2025 09:34:19 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=93=E6=9E=84=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-site/ruoyi-h5/doc/http/h5-groups.http | 41 ++++++++++ ruoyi-site/ruoyi-h5/doc/http/h5-projects.http | 75 +++++++++++++++++++ .../api/controller/H5ProjectController.java | 7 +- .../api/mongo/entity/H5ProjectContent.java | 5 +- .../luban/api/service/H5ProjectService.java | 10 ++- .../service/impl/H5ProjectServiceImpl.java | 23 +++--- .../com/luban/api/vo/H5ProjectDetailVO.java | 2 +- 7 files changed, 139 insertions(+), 24 deletions(-) create mode 100644 ruoyi-site/ruoyi-h5/doc/http/h5-groups.http create mode 100644 ruoyi-site/ruoyi-h5/doc/http/h5-projects.http diff --git a/ruoyi-site/ruoyi-h5/doc/http/h5-groups.http b/ruoyi-site/ruoyi-h5/doc/http/h5-groups.http new file mode 100644 index 000000000..05b217f46 --- /dev/null +++ b/ruoyi-site/ruoyi-h5/doc/http/h5-groups.http @@ -0,0 +1,41 @@ +### 查询所有H5分组 +GET http://localhost:19200/h5/h5-groups +Accept: application/json + +### 分页查询H5分组 +GET http://localhost:19200/h5/h5-groups/page?pageNum=1&pageSize=10 +Accept: application/json + +### 根据ID查询H5分组 +GET http://localhost:19200/h5/h5-groups/1 +Accept: application/json + +### 根据父级ID查询子分组 +GET http://localhost:19200/h5/h5-groups/children/1 +Accept: application/json + +### 创建H5分组 +POST http://localhost:19200/h5/h5-groups +Content-Type: application/json + +{ + "name": "测试分组", + "parentId": 0, + "sort": 1, + "status": 1 +} + +### 更新H5分组 +PUT http://localhost:19200/h5/h5-groups/1 +Content-Type: application/json + +{ + "name": "更新后的测试分组", + "parentId": 0, + "sort": 2, + "status": 1 +} + +### 删除H5分组 +DELETE http://localhost:19200/h5/h5-groups/1 +Accept: application/json \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http b/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http new file mode 100644 index 000000000..fa1debea5 --- /dev/null +++ b/ruoyi-site/ruoyi-h5/doc/http/h5-projects.http @@ -0,0 +1,75 @@ +### 查询所有H5项目 +GET http://localhost:19200/h5/h5-projects +Accept: application/json + +### 分页查询H5项目 +GET http://localhost:19200/h5/h5-projects/page?pageNum=1&pageSize=10 +Accept: application/json + +### 根据ID查询H5项目 +GET http://localhost:19200/h5/h5-projects/1 +Accept: application/json + +### 创建H5项目 +POST http://localhost:19200/h5/h5-projects +Content-Type: application/json + +{ + "type": "type1", + "title": "测试项目", + "content": { + "version": "6.0.0", + "type": "poster", + "global": { + "zoom": 0.582425068119891, + "dpi": 72, + "unit": "px" + }, + "layouts": [] + }, + "contentUpdatedAt": 1620000000, + "description": "这是一个测试项目", + "previewUrl": "http://example.com/preview.jpg", + "previewUrlWatermark": "http://example.com/preview-watermark.jpg", + "previewWidth": 375, + "previewHeight": 667, + "status": 1, + "groupIds": [1, 2] +} + +### 更新H5项目 +PUT http://localhost:19200/h5/h5-projects/1 +Content-Type: application/json + +{ + "type": "type1", + "title": "更新后的测试项目", + "content": { + "version": "6.0.0", + "type": "poster", + "global": { + "zoom": 0.582425068119891, + "dpi": 72, + "unit": "px" + }, + "layouts": [ + { + "title": "画板 1", + "width": 750, + "height": 1468 + } + ] + }, + "contentUpdatedAt": 1620000001, + "description": "这是更新后的测试项目", + "previewUrl": "http://example.com/preview2.jpg", + "previewUrlWatermark": "http://example.com/preview2-watermark.jpg", + "previewWidth": 375, + "previewHeight": 667, + "status": 1, + "groupIds": [1, 3] +} + +### 删除H5项目 +DELETE http://localhost:19200/h5/h5-projects/1 +Accept: application/json \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java index 11749f118..764adcfe1 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/controller/H5ProjectController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.luban.api.entity.H5Project; import com.luban.api.service.H5ProjectService; +import com.luban.api.vo.H5ProjectContentVO; import com.luban.api.vo.H5ProjectDetailVO; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -73,7 +74,7 @@ public class H5ProjectController { // 获取项目内容 if (h5Project != null) { - String content = h5ProjectService.getProjectContent(h5Project.getId()); + H5ProjectContentVO content = h5ProjectService.getProjectContent(h5Project.getId()); detailVO.setContent(content); } @@ -160,7 +161,7 @@ public class H5ProjectController { public static class CreateH5ProjectRequest { private String type; private String title; - private String content; + private H5ProjectContentVO content; private Long contentUpdatedAt; private String description; private String previewUrl; @@ -170,4 +171,4 @@ public class H5ProjectController { private Integer status; private List groupIds; } -} +} \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/mongo/entity/H5ProjectContent.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/mongo/entity/H5ProjectContent.java index 4dec7cb23..ff200b1c6 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/mongo/entity/H5ProjectContent.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/mongo/entity/H5ProjectContent.java @@ -1,5 +1,6 @@ package com.luban.api.mongo.entity; +import com.luban.api.vo.H5ProjectContentVO; import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @@ -22,7 +23,7 @@ public class H5ProjectContent { /** * 内容 */ - private String content; + private H5ProjectContentVO content; /** * 创建时间戳 @@ -34,4 +35,4 @@ public class H5ProjectContent { */ private Long updateTime; -} +} \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java index 5db227066..c7690f71d 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/H5ProjectService.java @@ -1,7 +1,9 @@ package com.luban.api.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.luban.api.dto.H5ProjectContentDTO; import com.luban.api.entity.H5Project; +import com.luban.api.vo.H5ProjectContentVO; import java.util.List; @@ -22,7 +24,7 @@ public interface H5ProjectService extends IService { * @param groupIds 分组ID列表 * @return 是否保存成功 */ - boolean saveH5ProjectWithContent(H5Project h5Project, String content, List groupIds); + boolean saveH5ProjectWithContent(H5Project h5Project, H5ProjectContentVO content, List groupIds); /** * 更新H5项目及其内容 @@ -32,7 +34,7 @@ public interface H5ProjectService extends IService { * @param groupIds 分组ID列表 * @return 是否更新成功 */ - boolean updateH5ProjectWithContent(H5Project h5Project, String content, List groupIds); + boolean updateH5ProjectWithContent(H5Project h5Project, H5ProjectContentVO content, List groupIds); /** * 根据ID获取H5项目及其内容 @@ -64,5 +66,5 @@ public interface H5ProjectService extends IService { * @param contentId 内容ID * @return 项目内容 */ - String getProjectContent(Long contentId); -} + H5ProjectContentVO getProjectContent(Long contentId); +} \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java index 07ebfb552..c808a6a15 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/service/impl/H5ProjectServiceImpl.java @@ -8,10 +8,10 @@ import com.luban.api.entity.H5ProjectGroup; import com.luban.api.mongo.dao.H5ProjectContentRepository; import com.luban.api.mongo.entity.H5ProjectContent; import com.luban.api.service.H5ProjectService; +import com.luban.api.vo.H5ProjectContentVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; import java.util.List; import java.util.stream.Collectors; @@ -34,7 +34,7 @@ public class H5ProjectServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) - public boolean saveH5ProjectWithContent(H5Project h5Project, String content, List groupIds) { + public boolean saveH5ProjectWithContent(H5Project h5Project, H5ProjectContentVO content, List groupIds) { // 设置创建和更新时间戳 long currentTime = System.currentTimeMillis(); h5Project.setCreateTime(currentTime); @@ -43,7 +43,7 @@ public class H5ProjectServiceImpl extends ServiceImpl i // 先保存H5Project基本信息到MySQL boolean saved = this.save(h5Project); - if (saved && StringUtils.hasText(content)) { + if (saved && content != null) { // 保存H5ProjectContent到MongoDB H5ProjectContent h5ProjectContent = new H5ProjectContent(); h5ProjectContent.setId(h5Project.getId()); @@ -64,7 +64,7 @@ public class H5ProjectServiceImpl extends ServiceImpl i @Override @Transactional(rollbackFor = Exception.class) - public boolean updateH5ProjectWithContent(H5Project h5Project, String content, List groupIds) { + public boolean updateH5ProjectWithContent(H5Project h5Project, H5ProjectContentVO content, List groupIds) { // 设置更新时间戳 long currentTime = System.currentTimeMillis(); h5Project.setUpdateTime(currentTime); @@ -72,7 +72,7 @@ public class H5ProjectServiceImpl extends ServiceImpl i // 更新H5Project基本信息到MySQL boolean updated = this.updateById(h5Project); - if (updated && StringUtils.hasText(content)) { + if (updated && content != null) { // 更新或创建H5ProjectContent到MongoDB H5ProjectContent h5ProjectContent = h5ProjectContentRepository.findById(h5Project.getId()).orElse(new H5ProjectContent()); h5ProjectContent.setId(h5Project.getId()); @@ -110,15 +110,10 @@ public class H5ProjectServiceImpl extends ServiceImpl i } @Override - public String getProjectContent(Long contentId) { + public H5ProjectContentVO getProjectContent(Long contentId) { if (contentId != null) { - try { - Long id = Long.valueOf(contentId); - H5ProjectContent content = h5ProjectContentRepository.findById(id).orElse(null); - return content != null ? content.getContent() : null; - } catch (NumberFormatException e) { - return null; - } + H5ProjectContent content = h5ProjectContentRepository.findById(contentId).orElse(null); + return content != null ? content.getContent() : null; } return null; } @@ -166,4 +161,4 @@ public class H5ProjectServiceImpl extends ServiceImpl i .map(H5ProjectGroup::getGroupId) .collect(Collectors.toList()); } -} +} \ No newline at end of file diff --git a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/vo/H5ProjectDetailVO.java b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/vo/H5ProjectDetailVO.java index 9f0c29fb5..72c3753f2 100644 --- a/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/vo/H5ProjectDetailVO.java +++ b/ruoyi-site/ruoyi-h5/src/main/java/com/luban/api/vo/H5ProjectDetailVO.java @@ -27,7 +27,7 @@ public class H5ProjectDetailVO { * 项目内容 */ @Schema(title = "项目内容") - private String content; + private H5ProjectContentVO content; /** * 项目关联的分组ID列表