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