mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-18 17:38:48 +08:00
初始化表结构
This commit is contained in:
parent
00f898ab7e
commit
0cc70434fc
3835
ruoyi-site/ruoyi-h5/doc/370802_content.json
Normal file
3835
ruoyi-site/ruoyi-h5/doc/370802_content.json
Normal file
File diff suppressed because it is too large
Load Diff
@ -26,7 +26,6 @@ CREATE TABLE `h5_project`
|
||||
`id` bigint PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`type` varchar(10) NOT NULL COMMENT '类型',
|
||||
`title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题',
|
||||
`content_id` varchar(255) NOT NULL COMMENT '内容在MongoDB中的ID',
|
||||
`content_updated_at` bigint NULL DEFAULT NULL COMMENT '内容更新时间戳',
|
||||
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
|
||||
`preview_url` varchar(500) NULL DEFAULT NULL COMMENT '预览图URL',
|
||||
@ -72,8 +72,8 @@ public class H5ProjectController {
|
||||
detailVO.setProject(h5Project);
|
||||
|
||||
// 获取项目内容
|
||||
if (h5Project != null && h5Project.getContentId() != null) {
|
||||
String content = h5ProjectService.getProjectContent(h5Project.getContentId());
|
||||
if (h5Project != null) {
|
||||
String content = h5ProjectService.getProjectContent(h5Project.getId());
|
||||
detailVO.setContent(content);
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package com.luban.api.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@ -38,10 +40,6 @@ public class H5Project implements Serializable {
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 内容在MongoDB中的ID
|
||||
*/
|
||||
private String contentId;
|
||||
|
||||
/**
|
||||
* 内容更新时间戳
|
||||
|
||||
@ -8,5 +8,5 @@ import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
*
|
||||
* @author your-name
|
||||
*/
|
||||
public interface H5ProjectContentRepository extends MongoRepository<H5ProjectContent, String> {
|
||||
public interface H5ProjectContentRepository extends MongoRepository<H5ProjectContent, Long> {
|
||||
}
|
||||
@ -14,10 +14,10 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
public class H5ProjectContent {
|
||||
|
||||
/**
|
||||
* 主键ID,与MySQL中H5Project的contentId对应
|
||||
* 主键ID,与MySQL中H5Project的ID对应
|
||||
*/
|
||||
@Id
|
||||
private String id;
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
|
||||
@ -16,24 +16,27 @@ public interface H5ProjectService extends IService<H5Project> {
|
||||
|
||||
/**
|
||||
* 保存H5项目及其内容
|
||||
*
|
||||
* @param h5Project H5项目信息
|
||||
* @param content 项目内容
|
||||
* @param groupIds 分组ID列表
|
||||
* @param content 项目内容
|
||||
* @param groupIds 分组ID列表
|
||||
* @return 是否保存成功
|
||||
*/
|
||||
boolean saveH5ProjectWithContent(H5Project h5Project, String content, List<Long> groupIds);
|
||||
|
||||
/**
|
||||
* 更新H5项目及其内容
|
||||
*
|
||||
* @param h5Project H5项目信息
|
||||
* @param content 项目内容
|
||||
* @param groupIds 分组ID列表
|
||||
* @param content 项目内容
|
||||
* @param groupIds 分组ID列表
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
boolean updateH5ProjectWithContent(H5Project h5Project, String content, List<Long> groupIds);
|
||||
|
||||
/**
|
||||
* 根据ID获取H5项目及其内容
|
||||
*
|
||||
* @param id H5项目ID
|
||||
* @return H5项目信息及内容
|
||||
*/
|
||||
@ -41,6 +44,7 @@ public interface H5ProjectService extends IService<H5Project> {
|
||||
|
||||
/**
|
||||
* 删除H5项目及其内容
|
||||
*
|
||||
* @param id H5项目ID
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@ -48,6 +52,7 @@ public interface H5ProjectService extends IService<H5Project> {
|
||||
|
||||
/**
|
||||
* 获取项目关联的分组ID列表
|
||||
*
|
||||
* @param projectId 项目ID
|
||||
* @return 分组ID列表
|
||||
*/
|
||||
@ -55,8 +60,9 @@ public interface H5ProjectService extends IService<H5Project> {
|
||||
|
||||
/**
|
||||
* 获取项目内容
|
||||
*
|
||||
* @param contentId 内容ID
|
||||
* @return 项目内容
|
||||
*/
|
||||
String getProjectContent(String contentId);
|
||||
String getProjectContent(Long contentId);
|
||||
}
|
||||
@ -3,9 +3,9 @@ package com.luban.api.service.impl;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.luban.api.dao.H5ProjectDao;
|
||||
import com.luban.api.dao.H5ProjectGroupDao;
|
||||
import com.luban.api.mongo.dao.H5ProjectContentRepository;
|
||||
import com.luban.api.entity.H5Project;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -14,7 +14,6 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@ -37,7 +36,7 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean saveH5ProjectWithContent(H5Project h5Project, String content, List<Long> groupIds) {
|
||||
// 设置创建和更新时间戳
|
||||
long currentTime = System.currentTimeMillis() / 1000;
|
||||
long currentTime = System.currentTimeMillis();
|
||||
h5Project.setCreateTime(currentTime);
|
||||
h5Project.setUpdateTime(currentTime);
|
||||
|
||||
@ -45,15 +44,9 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
boolean saved = this.save(h5Project);
|
||||
|
||||
if (saved && StringUtils.hasText(content)) {
|
||||
// 生成contentId
|
||||
String contentId = UUID.randomUUID().toString();
|
||||
h5Project.setContentId(contentId);
|
||||
h5Project.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||
this.updateById(h5Project);
|
||||
|
||||
// 创建H5ProjectContent并保存到MongoDB
|
||||
// 保存H5ProjectContent到MongoDB
|
||||
H5ProjectContent h5ProjectContent = new H5ProjectContent();
|
||||
h5ProjectContent.setId(contentId);
|
||||
h5ProjectContent.setId(h5Project.getId());
|
||||
h5ProjectContent.setContent(content);
|
||||
h5ProjectContent.setCreateTime(currentTime);
|
||||
h5ProjectContent.setUpdateTime(currentTime);
|
||||
@ -73,7 +66,7 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean updateH5ProjectWithContent(H5Project h5Project, String content, List<Long> groupIds) {
|
||||
// 设置更新时间戳
|
||||
long currentTime = System.currentTimeMillis() / 1000;
|
||||
long currentTime = System.currentTimeMillis();
|
||||
h5Project.setUpdateTime(currentTime);
|
||||
|
||||
// 更新H5Project基本信息到MySQL
|
||||
@ -81,16 +74,8 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
|
||||
if (updated && StringUtils.hasText(content)) {
|
||||
// 更新或创建H5ProjectContent到MongoDB
|
||||
String contentId = h5Project.getContentId();
|
||||
if (contentId == null) {
|
||||
contentId = UUID.randomUUID().toString();
|
||||
h5Project.setContentId(contentId);
|
||||
h5Project.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||
this.updateById(h5Project);
|
||||
}
|
||||
|
||||
H5ProjectContent h5ProjectContent = h5ProjectContentRepository.findById(contentId).orElse(new H5ProjectContent());
|
||||
h5ProjectContent.setId(contentId);
|
||||
H5ProjectContent h5ProjectContent = h5ProjectContentRepository.findById(h5Project.getId()).orElse(new H5ProjectContent());
|
||||
h5ProjectContent.setId(h5Project.getId());
|
||||
h5ProjectContent.setContent(content);
|
||||
h5ProjectContent.setUpdateTime(currentTime);
|
||||
|
||||
@ -115,9 +100,9 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
// 获取MySQL中的H5Project基本信息
|
||||
H5Project h5Project = this.getById(id);
|
||||
|
||||
if (h5Project != null && h5Project.getContentId() != null) {
|
||||
if (h5Project != null) {
|
||||
// 获取MongoDB中的内容
|
||||
H5ProjectContent h5ProjectContent = h5ProjectContentRepository.findById(h5Project.getContentId()).orElse(null);
|
||||
H5ProjectContent h5ProjectContent = h5ProjectContentRepository.findById(id).orElse(null);
|
||||
// 可以在这里将content设置到h5Project的某个属性中,如果需要的话
|
||||
}
|
||||
|
||||
@ -125,10 +110,15 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getProjectContent(String contentId) {
|
||||
public String getProjectContent(Long contentId) {
|
||||
if (contentId != null) {
|
||||
H5ProjectContent content = h5ProjectContentRepository.findById(contentId).orElse(null);
|
||||
return content != null ? content.getContent() : 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;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -139,9 +129,7 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
H5Project h5Project = this.getById(id);
|
||||
if (h5Project != null) {
|
||||
// 先删除MongoDB中的内容
|
||||
if (h5Project.getContentId() != null) {
|
||||
h5ProjectContentRepository.deleteById(h5Project.getContentId());
|
||||
}
|
||||
h5ProjectContentRepository.deleteById(id);
|
||||
|
||||
// 删除项目与分组的关联关系
|
||||
h5ProjectGroupDao.delete(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<H5ProjectGroup>()
|
||||
@ -155,8 +143,9 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
|
||||
/**
|
||||
* 保存项目与分组的关联关系
|
||||
* @param projectId 项目ID
|
||||
* @param groupIds 分组ID列表
|
||||
*
|
||||
* @param projectId 项目ID
|
||||
* @param groupIds 分组ID列表
|
||||
* @param currentTime 当前时间戳
|
||||
*/
|
||||
private void saveProjectGroups(Long projectId, List<Long> groupIds, long currentTime) {
|
||||
@ -172,7 +161,7 @@ public class H5ProjectServiceImpl extends ServiceImpl<H5ProjectDao, H5Project> i
|
||||
@Override
|
||||
public List<Long> getProjectGroupIds(Long projectId) {
|
||||
return h5ProjectGroupDao.selectList(new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<H5ProjectGroup>()
|
||||
.eq(H5ProjectGroup::getProjectId, projectId))
|
||||
.eq(H5ProjectGroup::getProjectId, projectId))
|
||||
.stream()
|
||||
.map(H5ProjectGroup::getGroupId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Loading…
Reference in New Issue
Block a user