Bläddra i källkod

优化消息相关

hubin 9 månader sedan
förälder
incheckning
60e2aeede1

+ 2 - 0
build.gradle

@@ -31,6 +31,7 @@ buildscript {
     ext {
         springBootVersion = "3.1.1"
         springdocVersion = "2.5.0"
+        mybatisPlusVersion = "3.5.8"
         flowlongVersion = "1.0.3"
         aizudaVersion = "1.0.2"
     }
@@ -76,6 +77,7 @@ configurations {
 dependencyManagement {
     imports {
         mavenBom "org.springframework.boot:spring-boot-dependencies:${springBootVersion}"
+        mavenBom "com.baomidou:mybatis-plus-bom:${mybatisPlusVersion}"
         mavenBom "com.aizuda:aizuda-bom:1.0.3"
     }
 }

+ 7 - 0
pom.xml

@@ -79,6 +79,13 @@
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>
+			<dependency>
+				<groupId>com.baomidou</groupId>
+				<artifactId>mybatis-plus-bom</artifactId>
+				<version>3.5.8</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
 		</dependencies>
 	</dependencyManagement>
 

+ 51 - 2
src/main/java/com/aizuda/boot/modules/gen/service/impl/GenTableServiceImpl.java

@@ -3,15 +3,20 @@ package com.aizuda.boot.modules.gen.service.impl;
 import com.aizuda.boot.modules.gen.service.IGenTableService;
 import com.aizuda.core.bean.BaseEntity;
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.generator.config.*;
 import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
 import com.baomidou.mybatisplus.generator.config.rules.DateType;
+import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
 import com.baomidou.mybatisplus.generator.fill.Column;
 import lombok.AllArgsConstructor;
 import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 代码生成业务表 服务实现类
@@ -36,7 +41,7 @@ public class GenTableServiceImpl implements IGenTableService {
         PackageConfig.Builder packageInfo = new PackageConfig.Builder().parent("com.aizuda.boot.modules.gen");
         // 策略配置
         StrategyConfig.Builder strategy = new StrategyConfig.Builder();
-        strategy.addInclude(List.of("gen_table"))
+        strategy.addInclude(List.of("sys_user", "sys_role"))
                 .controllerBuilder().enableRestStyle().enableHyphenStyle()
                 .serviceBuilder().superServiceClass("com.aizuda.service.service.IBaseService")
                 .mapperBuilder().superClass("com.aizuda.service.mapper.CrudMapper")
@@ -57,7 +62,51 @@ public class GenTableServiceImpl implements IGenTableService {
         // 模板渲染引擎 new CodeTemplateEngine()
         ConfigBuilder config = new ConfigBuilder(packageInfo.build(), dataSource.build(), strategy.build(), template.build(),
                 globalConfig.build(), injection.build());
-        config.getTableInfoList();
+        List<TableInfo> tableInfos = config.getTableInfoList();
+        VelocityTemplateEngine templateEngine = new VelocityTemplateEngine();
+        templateEngine.init(config);
+        tableInfos.forEach((tableInfo) -> {
+            Map<String, Object> objectMap = this.getObjectMap(config, tableInfo);
+            try {
+                String tmp = templateEngine.writer(objectMap, tableInfo.getEntityName(), "hi ${author}");
+                System.err.println("----dsa----" + tmp);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+        });
         return true;
     }
+
+    public Map<String, Object> getObjectMap(ConfigBuilder config, TableInfo tableInfo) {
+        StrategyConfig strategyConfig = config.getStrategyConfig();
+        Map<String, Object> controllerData = strategyConfig.controller().renderData(tableInfo);
+        Map<String, Object> objectMap = new HashMap(controllerData);
+        Map<String, Object> mapperData = strategyConfig.mapper().renderData(tableInfo);
+        objectMap.putAll(mapperData);
+        Map<String, Object> serviceData = strategyConfig.service().renderData(tableInfo);
+        objectMap.putAll(serviceData);
+        Map<String, Object> entityData = strategyConfig.entity().renderData(tableInfo);
+        objectMap.putAll(entityData);
+        objectMap.put("config", config);
+        objectMap.put("package", config.getPackageConfig().getPackageInfo());
+        GlobalConfig globalConfig = config.getGlobalConfig();
+        objectMap.put("author", globalConfig.getAuthor());
+        objectMap.put("kotlin", globalConfig.isKotlin());
+        objectMap.put("swagger", globalConfig.isSwagger());
+        objectMap.put("springdoc", globalConfig.isSpringdoc());
+        objectMap.put("date", globalConfig.getCommentDate());
+        String schemaName = "";
+        if (strategyConfig.isEnableSchema()) {
+            schemaName = config.getDataSourceConfig().getSchemaName();
+            if (StringUtils.isNotBlank(schemaName)) {
+                schemaName = schemaName + ".";
+                tableInfo.setConvert(true);
+            }
+        }
+
+        objectMap.put("schemaName", schemaName);
+        objectMap.put("table", tableInfo);
+        objectMap.put("entity", tableInfo.getEntityName());
+        return objectMap;
+    }
 }

+ 8 - 0
src/main/java/com/aizuda/boot/modules/system/entity/vo/MyMessageVO.java

@@ -4,6 +4,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 @Getter
 @Setter
 public class MyMessageVO {
@@ -14,4 +16,10 @@ public class MyMessageVO {
     @Schema(description = "内容")
     private String content;
 
+    @Schema(description = "发布人")
+    private String createBy;
+
+    @Schema(description = "发布时间")
+    private Date createTime;
+
 }

+ 1 - 1
src/main/resources/mapper/SysMessageMapper.xml

@@ -17,7 +17,7 @@
     </select>
 
     <select id="selectPageMyNotViewed" resultType="com.aizuda.boot.modules.system.entity.vo.MyMessageVO">
-        SELECT s.title,s.content FROM sys_message s JOIN sys_message_receiver r ON r.message_id = s.id
+        SELECT s.title,s.content,s.create_by,s.create_time FROM sys_message s JOIN sys_message_receiver r ON r.message_id = s.id
         WHERE r.user_id = #{userId} AND s.category = #{category} AND r.viewed = 0
         ORDER BY s.create_time DESC
     </select>