From 074924e8bd434cbaa0ae6538ba67a56d7f6f27ea Mon Sep 17 00:00:00 2001 From: "liszter@qq.com" Date: Tue, 18 Oct 2022 22:17:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=20=E5=AE=89=E8=A3=85=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ruoyi-ui/README.md b/ruoyi-ui/README.md index ad24b682..f28d783a 100644 --- a/ruoyi-ui/README.md +++ b/ruoyi-ui/README.md @@ -27,4 +27,6 @@ npm run build:stage # 构建生产环境 npm run build:prod -``` \ No newline at end of file +``` + +测试git上传 \ No newline at end of file From 4899bcdb813af21726fae396bb2085face8fe19d Mon Sep 17 00:00:00 2001 From: guofy12 Date: Mon, 24 Oct 2022 23:38:44 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=9A=201=E3=80=81=E6=96=B0=E5=BB=BAserver-xm=E5=BE=AE?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=202=E3=80=81=E5=88=86=E9=A1=B5=E3=80=81?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-modules/pom.xml | 1 + ruoyi-modules/server-xm/pom.xml | 104 +++++++++++ .../com/server/xm/ServerXmApplication.java | 21 +++ .../xm/controller/XmNodeController.java | 35 ++++ .../xm/controller/XmNodeStyleController.java | 35 ++++ .../server/xm/controller/XmTopController.java | 46 +++++ .../java/com/server/xm/entity/XmNode.java | 100 ++++++++++ .../com/server/xm/entity/XmNodeStyle.java | 108 +++++++++++ .../main/java/com/server/xm/entity/XmTop.java | 76 ++++++++ .../java/com/server/xm/entity/vo/XmTopVo.java | 122 ++++++++++++ .../com/server/xm/mapper/XmNodeMapper.java | 84 +++++++++ .../server/xm/mapper/XmNodeStyleMapper.java | 89 +++++++++ .../com/server/xm/mapper/XmTopMapper.java | 91 +++++++++ .../com/server/xm/service/XmNodeService.java | 55 ++++++ .../server/xm/service/XmNodeStyleService.java | 56 ++++++ .../com/server/xm/service/XmTopService.java | 63 +++++++ .../xm/service/impl/XmNodeServiceImpl.java | 79 ++++++++ .../service/impl/XmNodeStyleServiceImpl.java | 79 ++++++++ .../xm/service/impl/XmTopServiceImpl.java | 105 +++++++++++ .../src/main/resources/bootstrap.yml | 25 +++ .../server-xm/src/main/resources/logback.xml | 74 ++++++++ .../main/resources/mapper/XmNodeMapper.xml | 174 ++++++++++++++++++ .../resources/mapper/XmNodeStyleMapper.xml | 157 ++++++++++++++++ .../src/main/resources/mapper/XmTopMapper.xml | 169 +++++++++++++++++ 24 files changed, 1948 insertions(+) create mode 100644 ruoyi-modules/server-xm/pom.xml create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/ServerXmApplication.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeController.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeStyleController.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeMapper.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeStyleMapper.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmTopMapper.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeService.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeStyleService.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeServiceImpl.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeStyleServiceImpl.java create mode 100644 ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java create mode 100644 ruoyi-modules/server-xm/src/main/resources/bootstrap.yml create mode 100644 ruoyi-modules/server-xm/src/main/resources/logback.xml create mode 100644 ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml create mode 100644 ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeStyleMapper.xml create mode 100644 ruoyi-modules/server-xm/src/main/resources/mapper/XmTopMapper.xml diff --git a/ruoyi-modules/pom.xml b/ruoyi-modules/pom.xml index b8b532f8..265bb005 100644 --- a/ruoyi-modules/pom.xml +++ b/ruoyi-modules/pom.xml @@ -13,6 +13,7 @@ ruoyi-gen ruoyi-job ruoyi-file + server-xm ruoyi-modules diff --git a/ruoyi-modules/server-xm/pom.xml b/ruoyi-modules/server-xm/pom.xml new file mode 100644 index 00000000..b7c89513 --- /dev/null +++ b/ruoyi-modules/server-xm/pom.xml @@ -0,0 +1,104 @@ + + + + ruoyi-modules + com.ruoyi + 3.6.1 + + 4.0.0 + + server-moules-xm + + server-modules-xm脑图模块 + + + + 8 + 8 + + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + mysql + mysql-connector-java + + + + + com.ruoyi + ruoyi-common-datasource + + + + + com.ruoyi + ruoyi-common-datascope + + + + + com.ruoyi + ruoyi-common-log + + + + + com.ruoyi + ruoyi-common-swagger + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + + + \ No newline at end of file diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/ServerXmApplication.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/ServerXmApplication.java new file mode 100644 index 00000000..f7450138 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/ServerXmApplication.java @@ -0,0 +1,21 @@ +package com.server.xm; + +import com.ruoyi.common.security.annotation.EnableCustomConfig; +import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + + +@EnableCustomConfig +@EnableCustomSwagger2 +@EnableRyFeignClients +@SpringBootApplication +@MapperScan("com.server.xm.mapper") +public class ServerXmApplication { + public static void main(String[] args) { + SpringApplication.run(ServerXmApplication.class, args); + System.out.println("Server-XM模块启动成功"); + } +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeController.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeController.java new file mode 100644 index 00000000..474cae9e --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeController.java @@ -0,0 +1,35 @@ +package com.server.xm.controller; + +import com.server.xm.entity.XmNode; +import com.server.xm.service.XmNodeService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * Xmind列表(XmNode)表控制层 + * + * @author makejava + * @since 2022-10-24 22:16:42 + */ +@RestController +@RequestMapping("xmNode") +public class XmNodeController { + /** + * 服务对象 + */ + @Resource + private XmNodeService xmNodeService; + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public XmNode selectOne(String id) { + return this.xmNodeService.queryById(id); + } + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeStyleController.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeStyleController.java new file mode 100644 index 00000000..90952c92 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmNodeStyleController.java @@ -0,0 +1,35 @@ +package com.server.xm.controller; + +import com.server.xm.entity.XmNodeStyle; +import com.server.xm.service.XmNodeStyleService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +/** + * 样式表(XmNodeStyle)表控制层 + * + * @author makejava + * @since 2022-10-24 22:33:28 + */ +@RestController +@RequestMapping("xmNodeStyle") +public class XmNodeStyleController { + /** + * 服务对象 + */ + @Resource + private XmNodeStyleService xmNodeStyleService; + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("selectOne") + public XmNodeStyle selectOne(String id) { + return this.xmNodeStyleService.queryById(id); + } + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java new file mode 100644 index 00000000..258098d6 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java @@ -0,0 +1,46 @@ +package com.server.xm.controller; + +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.server.xm.entity.XmTop; +import com.server.xm.entity.vo.XmTopVo; +import com.server.xm.service.XmTopService; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Xmind列表(XmTop)表控制层 + * + * @author makejava + * @since 2022-10-23 12:50:31 + */ +@RestController +@RequestMapping("/xmTop") +public class XmTopController extends BaseController { + /** + * 服务对象 + */ + @Resource + private XmTopService xmTopService; + + /** + * 通过主键查询单条数据 + * + * @param id 主键 + * @return 单条数据 + */ + @GetMapping("/findOne/{id}") + public XmTopVo selectOne(@PathVariable("id") String id) { + return this.xmTopService.queryById(id); + } + + @GetMapping("/page") + public TableDataInfo page(XmTop xmTop){ + startPage(); + List list = this.xmTopService.queryAll(xmTop); + return getDataTable(list); + } + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java new file mode 100644 index 00000000..1280ad15 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java @@ -0,0 +1,100 @@ +package com.server.xm.entity; + +import com.ruoyi.common.core.web.domain.BaseEntity; + +import java.util.Date; +import java.io.Serializable; + +/** + * Xmind列表(XmNode)实体类 + * + * @author makejava + * @since 2022-10-24 22:16:40 + */ +public class XmNode extends BaseEntity { + private static final long serialVersionUID = 814901162125497459L; + + private String id; + /** + * 节点名称 + */ + private String name; + /** + * 所属分类 + */ + private String typeId; + /** + * 节点等级 + */ + private String nodeLevel; + /** + * 父节点ID + */ + private String parentId; + /** + * 一级节点ID + */ + private String topId; + /** + * 是否删除,1已删除,0未删除 + */ + private String delFlag; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + + public String getNodeLevel() { + return nodeLevel; + } + + public void setNodeLevel(String nodeLevel) { + this.nodeLevel = nodeLevel; + } + + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } + + public String getTopId() { + return topId; + } + + public void setTopId(String topId) { + this.topId = topId; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java new file mode 100644 index 00000000..96b33f0f --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java @@ -0,0 +1,108 @@ +package com.server.xm.entity; + +import com.ruoyi.common.core.web.domain.BaseEntity; + + +/** + * 样式表(XmNodeStyle)实体类 + * + * @author makejava + * @since 2022-10-24 22:33:26 + */ +public class XmNodeStyle extends BaseEntity { + private static final long serialVersionUID = -43953448497497403L; + + private String id; + /** + * 内容 + */ + private String direction; + /** + * 所属节点ID + */ + private String hyperLink; + /** + * 图标 + */ + private String icons; + + private String memo; + /** + * 样式 + */ + private String style; + /** + * 标签 + */ + private String tags; + /** + * 节点ID + */ + private String nodeId; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getDirection() { + return direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public String getHyperLink() { + return hyperLink; + } + + public void setHyperLink(String hyperLink) { + this.hyperLink = hyperLink; + } + + public String getIcons() { + return icons; + } + + public void setIcons(String icons) { + this.icons = icons; + } + + public String getMemo() { + return memo; + } + + public void setMemo(String memo) { + this.memo = memo; + } + + public String getStyle() { + return style; + } + + public void setStyle(String style) { + this.style = style; + } + + public String getTags() { + return tags; + } + + public void setTags(String tags) { + this.tags = tags; + } + + public String getNodeId() { + return nodeId; + } + + public void setNodeId(String nodeId) { + this.nodeId = nodeId; + } + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java new file mode 100644 index 00000000..49c74d8b --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java @@ -0,0 +1,76 @@ +package com.server.xm.entity; + +import com.ruoyi.common.core.web.domain.BaseEntity; + +import java.util.Date; +import java.io.Serializable; + +/** + * Xmind列表(XmTop)实体类 + * + * @author makejava + * @since 2022-10-23 11:52:10 + */ +public class XmTop extends BaseEntity { + private static final long serialVersionUID = 780186867205672228L; + + private String id; + /** + * 节点名称 + */ + private String name; + /** + * 所属分类 + */ + private String typeId; + /** + * 节点等级 + */ + private String nodeLevel; + /** + * 是否删除,1已删除,0未删除 + */ + private String delFlag; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + + public String getNodeLevel() { + return nodeLevel; + } + + public void setNodeLevel(String nodeLevel) { + this.nodeLevel = nodeLevel; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java new file mode 100644 index 00000000..fe9ad0b9 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java @@ -0,0 +1,122 @@ +package com.server.xm.entity.vo; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.nacos.shaded.com.google.gson.JsonArray; +import com.alibaba.nacos.shaded.com.google.gson.JsonObject; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.server.xm.entity.XmNodeStyle; +import com.server.xm.entity.XmTop; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class XmTopVo implements Serializable { + private static final long serialVersionUID = 814901162125497459L; + private String id; + private String topic; + private Integer direction; + private String hyperLink; + private String memo; + private String nodeLevel; + private List icons; + private Map style; + private List tags; + private List children; + + public XmTopVo() {} + public XmTopVo(XmTop top, XmNodeStyle style){ + //基本信息同步 + BeanUtils.copyProperties(top,this); + this.setTopic(top.getName()); + this.setIcons(JSON.parseObject(style.getIcons(), ArrayList.class)); + this.setStyle(JSON.parseObject(style.getStyle(),Map.class)); + this.setTags(JSON.parseObject(style.getTags(),ArrayList.class)); + } + + + public static long getSerialVersionUID() { + return serialVersionUID; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTopic() { + return topic; + } + + public void setTopic(String topic) { + this.topic = topic; + } + + public Integer getDirection() { + return direction; + } + + public void setDirection(Integer direction) { + this.direction = direction; + } + + public String getHyperLink() { + return hyperLink; + } + + public void setHyperLink(String hyperLink) { + this.hyperLink = hyperLink; + } + + public List getIcons() { + return icons; + } + + public void setIcons(List icons) { + this.icons = icons; + } + + public String getMemo() { + return memo; + } + + public void setMemo(String memo) { + this.memo = memo; + } + + public Map getStyle() { + return style; + } + + public void setStyle(Map style) { + this.style = style; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public String getNodeLevel() { + return nodeLevel; + } + + public void setNodeLevel(String nodeLevel) { + this.nodeLevel = nodeLevel; + } +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeMapper.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeMapper.java new file mode 100644 index 00000000..88943d2f --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeMapper.java @@ -0,0 +1,84 @@ +package com.server.xm.mapper; + + +import com.server.xm.entity.XmNode; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Xmind列表(XmNode)表数据库访问层 + * + * @author makejava + * @since 2022-10-24 22:16:40 + */ +public interface XmNodeMapper { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + XmNode queryById(String id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param xmNode 实例对象 + * @return 对象列表 + */ + List queryAll(XmNode xmNode); + + /** + * 新增数据 + * + * @param xmNode 实例对象 + * @return 影响行数 + */ + int insert(XmNode xmNode); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param xmNode 实例对象 + * @return 影响行数 + */ + int update(XmNode xmNode); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(String id); + +} + diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeStyleMapper.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeStyleMapper.java new file mode 100644 index 00000000..7b1d3b39 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmNodeStyleMapper.java @@ -0,0 +1,89 @@ +package com.server.xm.mapper; + +import com.server.xm.entity.XmNodeStyle; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 样式表(XmNodeStyle)表数据库访问层 + * + * @author makejava + * @since 2022-10-24 22:33:26 + */ +public interface XmNodeStyleMapper { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + XmNodeStyle queryById(String id); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + /** + * 根据NodeId查询样式 + * @param nids + * @return + */ + List queryByNid(@Param("nids") List nids); + + /** + * 通过实体作为筛选条件查询 + * + * @param xmNodeStyle 实例对象 + * @return 对象列表 + */ + List queryAll(XmNodeStyle xmNodeStyle); + + /** + * 新增数据 + * + * @param xmNodeStyle 实例对象 + * @return 影响行数 + */ + int insert(XmNodeStyle xmNodeStyle); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param xmNodeStyle 实例对象 + * @return 影响行数 + */ + int update(XmNodeStyle xmNodeStyle); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(String id); + +} + diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmTopMapper.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmTopMapper.java new file mode 100644 index 00000000..6cb11f70 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/mapper/XmTopMapper.java @@ -0,0 +1,91 @@ +package com.server.xm.mapper; + + +import com.server.xm.entity.XmTop; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Xmind列表(XmTop)表数据库访问层 + * + * @author makejava + * @since 2022-10-23 12:50:09 + */ +public interface XmTopMapper { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + XmTop queryById(String id); + + /** + * 根据父节点查询二级节点 + * @param pid 一级节点ID + * @return + */ + List queryByPid(String pid); + + /** + * 查询指定行数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit); + + + /** + * 通过实体作为筛选条件查询 + * + * @param xmTop 实例对象 + * @return 对象列表 + */ + List queryAll(XmTop xmTop); + + /** + * 新增数据 + * + * @param xmTop 实例对象 + * @return 影响行数 + */ + int insert(XmTop xmTop); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param xmTop 实例对象 + * @return 影响行数 + */ + int update(XmTop xmTop); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(String id); + +} + diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeService.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeService.java new file mode 100644 index 00000000..3eb2340f --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeService.java @@ -0,0 +1,55 @@ +package com.server.xm.service; + +import com.server.xm.entity.XmNode; +import java.util.List; + +/** + * Xmind列表(XmNode)表服务接口 + * + * @author makejava + * @since 2022-10-24 22:16:42 + */ +public interface XmNodeService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + XmNode queryById(String id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param xmNode 实例对象 + * @return 实例对象 + */ + XmNode insert(XmNode xmNode); + + /** + * 修改数据 + * + * @param xmNode 实例对象 + * @return 实例对象 + */ + XmNode update(XmNode xmNode); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(String id); + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeStyleService.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeStyleService.java new file mode 100644 index 00000000..780cc030 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmNodeStyleService.java @@ -0,0 +1,56 @@ +package com.server.xm.service; + +import com.server.xm.entity.XmNodeStyle; + +import java.util.List; + +/** + * 样式表(XmNodeStyle)表服务接口 + * + * @author makejava + * @since 2022-10-24 22:33:28 + */ +public interface XmNodeStyleService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + XmNodeStyle queryById(String id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 新增数据 + * + * @param xmNodeStyle 实例对象 + * @return 实例对象 + */ + XmNodeStyle insert(XmNodeStyle xmNodeStyle); + + /** + * 修改数据 + * + * @param xmNodeStyle 实例对象 + * @return 实例对象 + */ + XmNodeStyle update(XmNodeStyle xmNodeStyle); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(String id); + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java new file mode 100644 index 00000000..accde510 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java @@ -0,0 +1,63 @@ +package com.server.xm.service; +import com.server.xm.entity.XmTop; +import com.server.xm.entity.vo.XmTopVo; + +import java.util.List; + +/** + * Xmind列表(XmTop)表服务接口 + * + * @author makejava + * @since 2022-10-23 12:50:29 + */ +public interface XmTopService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + XmTopVo queryById(String id); + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + List queryAllByLimit(int offset, int limit); + + /** + * 查询所有,不分页 + * @param xmTop + * @return + */ + List queryAll(XmTop xmTop); + + /** + * 新增数据 + * + * @param xmTop 实例对象 + * @return 实例对象 + */ + XmTop insert(XmTop xmTop); + + /** + * 修改数据 + * + * @param xmTop 实例对象 + * @return 实例对象 + */ + XmTop update(XmTop xmTop); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(String id); + +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeServiceImpl.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeServiceImpl.java new file mode 100644 index 00000000..37fb2f99 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeServiceImpl.java @@ -0,0 +1,79 @@ +package com.server.xm.service.impl; + +import com.server.xm.entity.XmNode; +import com.server.xm.mapper.XmNodeMapper; +import com.server.xm.service.XmNodeService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Xmind列表(XmNode)表服务实现类 + * + * @author makejava + * @since 2022-10-24 22:16:42 + */ +@Service("xmNodeService") +public class XmNodeServiceImpl implements XmNodeService { + @Resource + private XmNodeMapper xmNodeMapper; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public XmNode queryById(String id) { + return this.xmNodeMapper.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.xmNodeMapper.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param xmNode 实例对象 + * @return 实例对象 + */ + @Override + public XmNode insert(XmNode xmNode) { + this.xmNodeMapper.insert(xmNode); + return xmNode; + } + + /** + * 修改数据 + * + * @param xmNode 实例对象 + * @return 实例对象 + */ + @Override + public XmNode update(XmNode xmNode) { + this.xmNodeMapper.update(xmNode); + return this.queryById(xmNode.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(String id) { + return this.xmNodeMapper.deleteById(id) > 0; + } +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeStyleServiceImpl.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeStyleServiceImpl.java new file mode 100644 index 00000000..527d810b --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmNodeStyleServiceImpl.java @@ -0,0 +1,79 @@ +package com.server.xm.service.impl; + +import com.server.xm.entity.XmNodeStyle; +import com.server.xm.mapper.XmNodeStyleMapper; +import com.server.xm.service.XmNodeStyleService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 样式表(XmNodeStyle)表服务实现类 + * + * @author makejava + * @since 2022-10-24 22:33:28 + */ +@Service("xmNodeStyleService") +public class XmNodeStyleServiceImpl implements XmNodeStyleService { + @Resource + private XmNodeStyleMapper xmNodeStyleMapper; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public XmNodeStyle queryById(String id) { + return this.xmNodeStyleMapper.queryById(id); + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.xmNodeStyleMapper.queryAllByLimit(offset, limit); + } + + /** + * 新增数据 + * + * @param xmNodeStyle 实例对象 + * @return 实例对象 + */ + @Override + public XmNodeStyle insert(XmNodeStyle xmNodeStyle) { + this.xmNodeStyleMapper.insert(xmNodeStyle); + return xmNodeStyle; + } + + /** + * 修改数据 + * + * @param xmNodeStyle 实例对象 + * @return 实例对象 + */ + @Override + public XmNodeStyle update(XmNodeStyle xmNodeStyle) { + this.xmNodeStyleMapper.update(xmNodeStyle); + return this.queryById(xmNodeStyle.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(String id) { + return this.xmNodeStyleMapper.deleteById(id) > 0; + } +} diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java new file mode 100644 index 00000000..9afaf8f6 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java @@ -0,0 +1,105 @@ +package com.server.xm.service.impl; + + +import com.server.xm.entity.XmNodeStyle; +import com.server.xm.entity.XmTop; +import com.server.xm.entity.vo.XmTopVo; +import com.server.xm.mapper.XmNodeStyleMapper; +import com.server.xm.mapper.XmTopMapper; +import com.server.xm.service.XmTopService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * Xmind列表(XmTop)表服务实现类 + * + * @author makejava + * @since 2022-10-23 12:50:29 + */ +@Service("xmTopService") +public class XmTopServiceImpl implements XmTopService { + @Resource + private XmTopMapper xmTopMapper; + @Resource + private XmNodeStyleMapper styleMapper; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public XmTopVo queryById(String id) { + //查询出节点与父节点数据 + XmTop top = this.xmTopMapper.queryById(id); + //查询出二级ID + List secList = this.xmTopMapper.queryByPid(id); + List nids = secList.stream().map(e -> e.getId()).collect(Collectors.toList()); + nids.add(top.getId()); + List styleList = styleMapper.queryByNid(nids); + Map> styleMap = styleList.stream().collect(Collectors.groupingBy(e -> e.getNodeId())); + //组装父节点 + XmTopVo data = new XmTopVo(top,styleMap.get(top.getId()).get(0)); + //子节点 + List children = secList.stream().map(e -> new XmTopVo(e,styleMap.get(e.getId()).get(0))).collect(Collectors.toList()); + data.setChildren(children); + return data; + } + + /** + * 查询多条数据 + * + * @param offset 查询起始位置 + * @param limit 查询条数 + * @return 对象列表 + */ + @Override + public List queryAllByLimit(int offset, int limit) { + return this.xmTopMapper.queryAllByLimit(offset, limit); + } + + @Override + public List queryAll(XmTop xmTop) { + return this.xmTopMapper.queryAll(xmTop); + } + + /** + * 新增数据 + * + * @param xmTop 实例对象 + * @return 实例对象 + */ + @Override + public XmTop insert(XmTop xmTop) { + this.xmTopMapper.insert(xmTop); + return xmTop; + } + + /** + * 修改数据 + * + * @param xmTop 实例对象 + * @return 实例对象 + */ + @Override + public XmTop update(XmTop xmTop) { + this.xmTopMapper.update(xmTop); + return null; + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(String id) { + return this.xmTopMapper.deleteById(id) > 0; + } +} diff --git a/ruoyi-modules/server-xm/src/main/resources/bootstrap.yml b/ruoyi-modules/server-xm/src/main/resources/bootstrap.yml new file mode 100644 index 00000000..e8a69a4f --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/resources/bootstrap.yml @@ -0,0 +1,25 @@ +# Tomcat +server: + port: 9204 + +# Spring +spring: + application: + # 应用名称 + name: server-xm + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 127.0.0.1:8848 + config: + # 配置中心地址 + server-addr: 127.0.0.1:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-configs: + - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} diff --git a/ruoyi-modules/server-xm/src/main/resources/logback.xml b/ruoyi-modules/server-xm/src/main/resources/logback.xml new file mode 100644 index 00000000..565ce1c3 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml b/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml new file mode 100644 index 00000000..334a47aa --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into sev-xmind.xm_node(NAME, TYPE_ID, NODE_LEVEL, PARENT_ID, TOP_ID, CREATE_TIME, UPDATE_TIME, CREATE_BY, + UPDATE_BY, DEL_FLAG) + values (#{name}, #{typeId}, #{nodeLevel}, #{parentId}, #{topId}, #{createTime}, #{updateTime}, #{createBy}, #{updateBy}, #{delFlag}) + + + + insert into sev-xmind.xm_node(NAME, TYPE_ID, NODE_LEVEL, PARENT_ID, TOP_ID, CREATE_TIME, UPDATE_TIME, CREATE_BY, + UPDATE_BY, DEL_FLAG) + values + + (#{entity.name}, #{entity.typeId}, #{entity.nodeLevel}, #{entity.parentId}, #{entity.topId}, + #{entity.createTime}, #{entity.updateTime}, #{entity.createBy}, #{entity.updateBy}, #{entity.delFlag}) + + + + + insert into sev-xmind.xm_node(NAME, TYPE_ID, NODE_LEVEL, PARENT_ID, TOP_ID, CREATE_TIME, UPDATE_TIME, CREATE_BY, + UPDATE_BY, DEL_FLAG) + values + + (#{entity.name}, #{entity.typeId}, #{entity.nodeLevel}, #{entity.parentId}, #{entity.topId}, + #{entity.createTime}, #{entity.updateTime}, #{entity.createBy}, #{entity.updateBy}, #{entity.delFlag}) + + on duplicate key update + NAME = values(NAME) , TYPE_ID = values(TYPE_ID) , NODE_LEVEL = values(NODE_LEVEL) , PARENT_ID = + values(PARENT_ID) , TOP_ID = values(TOP_ID) , CREATE_TIME = values(CREATE_TIME) , UPDATE_TIME = + values(UPDATE_TIME) , CREATE_BY = values(CREATE_BY) , UPDATE_BY = values(UPDATE_BY) , DEL_FLAG = + values(DEL_FLAG) + + + + + update sev-xmind.xm_node + + + NAME = #{name}, + + + TYPE_ID = #{typeId}, + + + NODE_LEVEL = #{nodeLevel}, + + + PARENT_ID = #{parentId}, + + + TOP_ID = #{topId}, + + + CREATE_TIME = #{createTime}, + + + UPDATE_TIME = #{updateTime}, + + + CREATE_BY = #{createBy}, + + + UPDATE_BY = #{updateBy}, + + + DEL_FLAG = #{delFlag}, + + + where ID = #{id} + + + + + delete + from sev-xmind.xm_node + where ID = #{id} + + + + diff --git a/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeStyleMapper.xml b/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeStyleMapper.xml new file mode 100644 index 00000000..f624c774 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeStyleMapper.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into xm_node_style(DIRECTION, HYPER_LINK, ICONS, MEMO, STYLE, TAGS, NODE_ID) + values (#{direction}, #{hyperLink}, #{icons}, #{memo}, #{style}, #{tags}, #{nodeId}) + + + + insert into xm_node_style(DIRECTION, HYPER_LINK, ICONS, MEMO, STYLE, TAGS, NODE_ID) + values + + (#{entity.direction}, #{entity.hyperLink}, #{entity.icons}, #{entity.memo}, #{entity.style}, #{entity.tags}, + #{entity.nodeId}) + + + + + insert into xm_node_style(DIRECTION, HYPER_LINK, ICONS, MEMO, STYLE, TAGS, NODE_ID) + values + + (#{entity.direction}, #{entity.hyperLink}, #{entity.icons}, #{entity.memo}, #{entity.style}, #{entity.tags}, + #{entity.nodeId}) + + on duplicate key update + DIRECTION = values(DIRECTION) , HYPER_LINK = values(HYPER_LINK) , ICONS = values(ICONS) , MEMO = values(MEMO) , + STYLE = values(STYLE) , TAGS = values(TAGS) , NODE_ID = values(NODE_ID) + + + + + update xm_node_style + + + DIRECTION = #{direction}, + + + HYPER_LINK = #{hyperLink}, + + + ICONS = #{icons}, + + + MEMO = #{memo}, + + + STYLE = #{style}, + + + TAGS = #{tags}, + + + NODE_ID = #{nodeId}, + + + where ID = #{id} + + + + + delete + from xm_node_style + where ID = #{id} + + + + diff --git a/ruoyi-modules/server-xm/src/main/resources/mapper/XmTopMapper.xml b/ruoyi-modules/server-xm/src/main/resources/mapper/XmTopMapper.xml new file mode 100644 index 00000000..c5388c89 --- /dev/null +++ b/ruoyi-modules/server-xm/src/main/resources/mapper/XmTopMapper.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into xm_top(NAME, TYPE_ID, NODE_LEVEL, CREATE_TIME, UPDATE_TIME, CREATE_BY, UPDATE_BY, + DEL_FLAG) + values (#{name}, #{typeId}, #{nodeLevel}, #{createTime}, #{updateTime}, #{createBy}, #{updateBy}, #{delFlag}) + + + + insert into xm_top(NAME, TYPE_ID, NODE_LEVEL, CREATE_TIME, UPDATE_TIME, CREATE_BY, UPDATE_BY, + DEL_FLAG) + values + + (#{entity.name}, #{entity.typeId}, #{entity.nodeLevel}, #{entity.createTime}, #{entity.updateTime}, + #{entity.createBy}, #{entity.updateBy}, #{entity.delFlag}) + + + + + insert into xm_top(NAME, TYPE_ID, NODE_LEVEL, CREATE_TIME, UPDATE_TIME, CREATE_BY, UPDATE_BY, + DEL_FLAG) + values + + (#{entity.name}, #{entity.typeId}, #{entity.nodeLevel}, #{entity.createTime}, #{entity.updateTime}, + #{entity.createBy}, #{entity.updateBy}, #{entity.delFlag}) + + on duplicate key update + NAME = values(NAME) , TYPE_ID = values(TYPE_ID) , NODE_LEVEL = values(NODE_LEVEL) , CREATE_TIME = + values(CREATE_TIME) , UPDATE_TIME = values(UPDATE_TIME) , CREATE_BY = values(CREATE_BY) , UPDATE_BY = + values(UPDATE_BY) , DEL_FLAG = values(DEL_FLAG) + + + + + update xm_top + + + NAME = #{name}, + + + TYPE_ID = #{typeId}, + + + NODE_LEVEL = #{nodeLevel}, + + + CREATE_TIME = #{createTime}, + + + UPDATE_TIME = #{updateTime}, + + + CREATE_BY = #{createBy}, + + + UPDATE_BY = #{updateBy}, + + + DEL_FLAG = #{delFlag}, + + + where ID = #{id} + + + + + delete + from xm_top + where ID = #{id} + + + + From 50a8190dc0ab70a41cf6ecb17b31d7fdbf373eab Mon Sep 17 00:00:00 2001 From: guofy12 Date: Wed, 26 Oct 2022 23:25:16 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=EF=BC=9A=20=E5=88=9B=E5=BB=BA=E8=84=91=E5=9B=BE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/xm/controller/XmTopController.java | 6 ++ .../java/com/server/xm/entity/XmNode.java | 20 +++++- .../com/server/xm/entity/XmNodeStyle.java | 18 +++++- .../main/java/com/server/xm/entity/XmTop.java | 31 +++++++-- .../java/com/server/xm/entity/vo/XmTopVo.java | 16 +++-- .../com/server/xm/service/XmTopService.java | 2 +- .../xm/service/impl/XmTopServiceImpl.java | 63 ++++++++++++++++--- .../main/resources/mapper/XmNodeMapper.xml | 20 +++--- .../resources/mapper/XmNodeStyleMapper.xml | 8 +-- .../src/main/resources/mapper/XmTopMapper.xml | 12 ++-- 10 files changed, 154 insertions(+), 42 deletions(-) diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java index 258098d6..70b0a02f 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/controller/XmTopController.java @@ -1,6 +1,7 @@ package com.server.xm.controller; import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.server.xm.entity.XmTop; import com.server.xm.entity.vo.XmTopVo; @@ -42,5 +43,10 @@ public class XmTopController extends BaseController { List list = this.xmTopService.queryAll(xmTop); return getDataTable(list); } + @PostMapping("/create") + public AjaxResult create(@RequestBody XmTopVo xmTopVo){ + this.xmTopService.insert(xmTopVo); + return AjaxResult.success(); + } } diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java index 1280ad15..9c1e40b0 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNode.java @@ -1,6 +1,10 @@ package com.server.xm.entity; +import com.ruoyi.common.core.utils.bean.BeanUtils; +import com.ruoyi.common.core.utils.uuid.UUID; import com.ruoyi.common.core.web.domain.BaseEntity; +import com.server.xm.entity.vo.XmTopVo; +import org.springframework.context.annotation.Bean; import java.util.Date; import java.io.Serializable; @@ -39,10 +43,20 @@ public class XmNode extends BaseEntity { * 是否删除,1已删除,0未删除 */ private String delFlag; - + public XmNode(){} + public XmNode(XmTopVo xmTopVo,String level,String parentId,String topId){ + BeanUtils.copyProperties(xmTopVo,this); +// if(null == xmTopVo.getId()){ +// this.setId(UUID.randomUUID().toString()); +// } + this.setName(xmTopVo.getTopic()); + this.setNodeLevel(level); + this.setParentId(parentId); + this.setTopId(topId); + } public String getId() { - return id; + return this.id; } public void setId(String id) { @@ -90,7 +104,7 @@ public class XmNode extends BaseEntity { } public String getDelFlag() { - return delFlag; + return null != this.delFlag?this.delFlag : "0"; } public void setDelFlag(String delFlag) { diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java index 96b33f0f..abbc2c7f 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmNodeStyle.java @@ -1,6 +1,9 @@ package com.server.xm.entity; +import com.alibaba.fastjson2.JSON; +import com.ruoyi.common.core.utils.uuid.UUID; import com.ruoyi.common.core.web.domain.BaseEntity; +import com.server.xm.entity.vo.XmTopVo; /** @@ -40,9 +43,22 @@ public class XmNodeStyle extends BaseEntity { */ private String nodeId; + public XmNodeStyle(){} + public XmNodeStyle(XmTopVo xmTopVo){ + this.setId(UUID.randomUUID().toString()); + this.setDirection(xmTopVo.getDirection().toString()); + this.setIcons(JSON.toJSONString(xmTopVo.getIcons())); + this.setTags(JSON.toJSONString(xmTopVo.getTags())); + this.setMemo(xmTopVo.getMemo()); + this.setHyperLink(xmTopVo.getHyperLink()); + this.setStyle(JSON.toJSONString(xmTopVo.getStyle())); + this.setNodeId(xmTopVo.getId()); + } + + public String getId() { - return id; + return this.id; } public void setId(String id) { diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java index 49c74d8b..09f746f3 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/XmTop.java @@ -1,9 +1,12 @@ package com.server.xm.entity; +import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.domain.BaseEntity; +import com.server.xm.entity.vo.XmTopVo; import java.util.Date; import java.io.Serializable; +import java.util.UUID; /** * Xmind列表(XmTop)实体类 @@ -22,19 +25,30 @@ public class XmTop extends BaseEntity { /** * 所属分类 */ - private String typeId; + private String type; /** * 节点等级 */ private String nodeLevel; + private String parentId; /** * 是否删除,1已删除,0未删除 */ private String delFlag; + public XmTop(){} + public XmTop(XmTopVo xmTopVo,String level,String parentId){ + BeanUtils.copyProperties(xmTopVo,this); +// if(null == xmTopVo.getId()){ +// this.setId(UUID.randomUUID().toString()); +// } + this.setName(xmTopVo.getTopic()); + this.setNodeLevel(level); + this.setParentId(parentId); + } public String getId() { - return id; + return this.id; } public void setId(String id) { @@ -50,11 +64,11 @@ public class XmTop extends BaseEntity { } public String getTypeId() { - return typeId; + return type; } public void setTypeId(String typeId) { - this.typeId = typeId; + this.type = typeId; } public String getNodeLevel() { @@ -66,11 +80,18 @@ public class XmTop extends BaseEntity { } public String getDelFlag() { - return delFlag; + return null != this.delFlag ? this.delFlag : "0"; } public void setDelFlag(String delFlag) { this.delFlag = delFlag; } + public String getParentId() { + return parentId; + } + + public void setParentId(String parentId) { + this.parentId = parentId; + } } diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java index fe9ad0b9..a49618e9 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/entity/vo/XmTopVo.java @@ -11,6 +11,7 @@ import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.UUID; public class XmTopVo implements Serializable { private static final long serialVersionUID = 814901162125497459L; @@ -25,7 +26,11 @@ public class XmTopVo implements Serializable { private List tags; private List children; - public XmTopVo() {} + public XmTopVo() { + if(null == this.id){ + this.setId(UUID.randomUUID().toString()); + } + } public XmTopVo(XmTop top, XmNodeStyle style){ //基本信息同步 BeanUtils.copyProperties(top,this); @@ -33,15 +38,16 @@ public class XmTopVo implements Serializable { this.setIcons(JSON.parseObject(style.getIcons(), ArrayList.class)); this.setStyle(JSON.parseObject(style.getStyle(),Map.class)); this.setTags(JSON.parseObject(style.getTags(),ArrayList.class)); + this.setDirection(Integer.parseInt(style.getDirection())); + this.setHyperLink(style.getHyperLink()); + this.setMemo(style.getMemo()); } - public static long getSerialVersionUID() { - return serialVersionUID; - } + public String getId() { - return id; + return this.id; } public void setId(String id) { diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java index accde510..5ae1048b 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/XmTopService.java @@ -42,7 +42,7 @@ public interface XmTopService { * @param xmTop 实例对象 * @return 实例对象 */ - XmTop insert(XmTop xmTop); + void insert(XmTopVo xmTopVo); /** * 修改数据 diff --git a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java index 9afaf8f6..b15370bd 100644 --- a/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java +++ b/ruoyi-modules/server-xm/src/main/java/com/server/xm/service/impl/XmTopServiceImpl.java @@ -1,17 +1,21 @@ package com.server.xm.service.impl; +import com.ruoyi.common.core.web.domain.AjaxResult; +import com.server.xm.entity.XmNode; import com.server.xm.entity.XmNodeStyle; import com.server.xm.entity.XmTop; import com.server.xm.entity.vo.XmTopVo; +import com.server.xm.mapper.XmNodeMapper; import com.server.xm.mapper.XmNodeStyleMapper; import com.server.xm.mapper.XmTopMapper; import com.server.xm.service.XmTopService; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -26,6 +30,8 @@ public class XmTopServiceImpl implements XmTopService { private XmTopMapper xmTopMapper; @Resource private XmNodeStyleMapper styleMapper; + @Resource + private XmNodeMapper nodeMapper; /** * 通过ID查询单条数据 @@ -71,15 +77,58 @@ public class XmTopServiceImpl implements XmTopService { /** * 新增数据 * - * @param xmTop 实例对象 + * @param xmTopVo 实例对象 * @return 实例对象 */ @Override - public XmTop insert(XmTop xmTop) { - this.xmTopMapper.insert(xmTop); - return xmTop; - } + @Transactional + public void insert(XmTopVo xmTopVo) { + //查询头两个节点,存入top + List topList = new ArrayList<>(); + XmTop topEntity = new XmTop(xmTopVo,"1","-1"); + topList.add(topEntity); + List secList = xmTopVo.getChildren(); + //保存前两节点style + List styleList = new ArrayList<>(); + styleList.add(new XmNodeStyle(xmTopVo)); + if(!CollectionUtils.isEmpty(secList)){ + List secTopList = secList.stream().map(e -> new XmTop(e,"2",topEntity.getId())).collect(Collectors.toList()); + topList.addAll(secTopList); + //保存节点 + xmTopMapper.insertBatch(topList); + List secStyleList = secList.stream().map(e -> new XmNodeStyle(e)).collect(Collectors.toList()); + styleList.addAll(secStyleList); + //保存syle + styleMapper.insertBatch(styleList); + //递归下属节点 + List nodes = new ArrayList<>(); + List styles = new ArrayList<>(); + secList.stream().forEach(e -> { + if(!CollectionUtils.isEmpty(e.getChildren())){ + dealInsertNode(e.getChildren(),nodes,styles,3,e.getId(),topEntity.getId()); + } + }); + //保存 + nodeMapper.insertBatch(nodes); + styleMapper.insertBatch(styles); + } + + } + private void dealInsertNode(List xmTopVoList, List nodeList,List styleList,Integer level,String parentId,String topId){ + final Integer oldLevel = level; + List nodes = xmTopVoList.stream().map(e -> new XmNode(e,oldLevel.toString(),parentId,topId)).collect(Collectors.toList()); + nodeList.addAll(nodes); + List styles = xmTopVoList.stream().map(e -> new XmNodeStyle(e)).collect(Collectors.toList()); + styleList.addAll(styles); + Map> map = xmTopVoList.stream().filter(e -> null != e.getChildren()).collect(Collectors.toMap(e ->e.getId(),e->e.getChildren(),(k1,k2) ->k1)); + final Integer newLevel = ++level; + map.forEach((k,v) -> { + if(!CollectionUtils.isEmpty(v)){ + dealInsertNode(v,nodeList,styleList,newLevel,k,topId); + } + }); + } /** * 修改数据 * diff --git a/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml b/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml index 334a47aa..faa61d03 100644 --- a/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml +++ b/ruoyi-modules/server-xm/src/main/resources/mapper/XmNodeMapper.xml @@ -29,7 +29,7 @@ CREATE_BY, UPDATE_BY, DEL_FLAG - from sev-xmind.xm_node + from xm_node where ID = #{id} @@ -46,7 +46,7 @@ CREATE_BY, UPDATE_BY, DEL_FLAG - from sev-xmind.xm_node + from xm_node limit #{offset} , #{limit} @@ -55,7 +55,7 @@