ソースを参照

系统配置功能, 代码按模板优化

wanggaokun 1 年間 前
コミット
ada2c0ef1c
18 ファイル変更453 行追加16 行削除
  1. 3 2
      eco-common/common-core/src/main/java/org/eco/common/core/exception/BusinessException.java
  2. 6 6
      eco-modules/generator/src/main/java/org/eco/generator/service/GenTableServiceImpl.java
  3. 2 0
      eco-modules/generator/src/main/resources/vm/java/bo.java.vm
  4. 3 3
      eco-modules/generator/src/main/resources/vm/java/controller.java.vm
  5. 3 2
      eco-modules/generator/src/main/resources/vm/java/domain.java.vm
  6. 0 1
      eco-modules/generator/src/main/resources/vm/java/serviceImpl.java.vm
  7. 2 0
      eco-modules/generator/src/main/resources/vm/java/sub-domain.java.vm
  8. 1 2
      eco-modules/generator/src/main/resources/vm/java/vo-import.java.vm
  9. 2 0
      eco-modules/generator/src/main/resources/vm/java/vo.java.vm
  10. 84 0
      eco-modules/system/src/main/java/org/eco/system/controller/system/ImportExportController.java
  11. 46 0
      eco-modules/system/src/main/java/org/eco/system/domain/ImportExport.java
  12. 45 0
      eco-modules/system/src/main/java/org/eco/system/domain/bo/ImportExportBo.java
  13. 44 0
      eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportImportVo.java
  14. 45 0
      eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportVo.java
  15. 16 0
      eco-modules/system/src/main/java/org/eco/system/mapper/ImportExportMapper.java
  16. 50 0
      eco-modules/system/src/main/java/org/eco/system/service/IImportExportService.java
  17. 94 0
      eco-modules/system/src/main/java/org/eco/system/service/impl/ImportExportServiceImpl.java
  18. 7 0
      eco-modules/system/src/main/resources/mapper/system/ImportExportMapper.xml

+ 3 - 2
eco-common/common-core/src/main/java/org/eco/common/core/exception/BusinessException.java

@@ -40,6 +40,7 @@ public final class BusinessException extends RuntimeException {
     public BusinessException(String message) {
         this.message = message;
     }
+
     public BusinessException(String message, Integer code) {
         this.message = message;
         this.code = code;
@@ -58,8 +59,8 @@ public final class BusinessException extends RuntimeException {
 
     @Override
     public String getMessage() {
-        if(StrUtil.isNotBlank(message)){
-            if(msgParams!=null && msgParams.length>0){
+        if (StrUtil.isNotBlank(message)) {
+            if (msgParams != null && msgParams.length > 0) {
                 return MessageFormat.format(message, msgParams);
             }
         }

+ 6 - 6
eco-modules/generator/src/main/java/org/eco/generator/service/GenTableServiceImpl.java

@@ -154,10 +154,10 @@ public class GenTableServiceImpl extends BaseServiceImpl<GenTableMapper, GenTabl
     public PageResult<GenTable> selectDbTableList(GenTable genTable) {
         QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
         Page<GenTable> page = PageQuery.build();
-        Map<String,Object> otherParams = new HashMap<>();
-        otherParams.put("tableName", genTable.getTableName());
-        otherParams.put("tableComment", genTable.getTableComment());
-        page = genTableMapper.xmlPaginate("selectDbTableList", Page.of(page.getPageNumber(), page.getPageSize()), queryWrapper, otherParams);
+        Map<String, Object> otherParams = new HashMap<>();
+        otherParams.put("tableName" , genTable.getTableName());
+        otherParams.put("tableComment" , genTable.getTableComment());
+        page = genTableMapper.xmlPaginate("selectDbTableList" , Page.of(page.getPageNumber(), page.getPageSize()), queryWrapper, otherParams);
         return PageResult.build(page);
     }
 
@@ -324,7 +324,7 @@ public class GenTableServiceImpl extends BaseServiceImpl<GenTableMapper, GenTabl
         // 查询表信息
         Result result = getResult(tableId);
         for (String template : result.templates()) {
-            if (!StringUtils.containsAny(template,"sql.vm", "api.ts.types.vm", "index.vue.vm", "index-tree.vue.vm")) {
+            if (!StringUtils.containsAny(template, "sql.vm" , "api.ts.types.vm" , "index.vue.vm" , "index-tree.vue.vm")) {
                 // 渲染模板
                 StringWriter sw = new StringWriter();
                 Template tpl = Velocity.getTemplate(template, Constants.UTF8);
@@ -346,7 +346,7 @@ public class GenTableServiceImpl extends BaseServiceImpl<GenTableMapper, GenTabl
             throw new BusinessException("表定义不存在");
         }
         List<GenTableColumn> list = genTableColumnService.selectGenTableColumnListByTableId(table.getTableId());
-        if(CollUtil.isEmpty(list)) {
+        if (CollUtil.isEmpty(list)) {
             throw new BusinessException("字段义不存在");
         }
         table.setColumns(list);

+ 2 - 0
eco-modules/generator/src/main/resources/vm/java/bo.java.vm

@@ -12,7 +12,9 @@ import jakarta.validation.constraints.*;
 import ${import};
 #end
 #if($table.crud || $table.sub)
+import org.eco.common.orm.core.domain.BaseEntity;
 #elseif($table.tree)
+import org.eco.common.orm.core.domain.TreeEntity;
 #end
 
 /**

+ 3 - 3
eco-modules/generator/src/main/resources/vm/java/controller.java.vm

@@ -9,8 +9,8 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.eco.common.core.core.domain.CommonResult;
 import org.eco.common.excel.utils.ExcelUtil;
-import annotation.org.eco.common.log.Log;
-import enums.org.eco.common.log.BusinessType;
+import org.eco.common.log.annotation.Log;
+import org.eco.common.log.enums.BusinessType;
 import org.eco.common.web.annotation.RepeatSubmit;
 import org.eco.common.web.core.BaseController;
 import jakarta.annotation.Resource;
@@ -96,7 +96,7 @@ public class ${ClassName}Controller extends BaseController {
     @RepeatSubmit()
     @PutMapping
     public CommonResult<Void> edit(@Validated @RequestBody ${ClassName}Bo ${className}Bo) {
-        Boolean updated = ${className}Service.update(${className}Bo);
+        boolean updated = ${className}Service.update(${className}Bo);
         if (!updated) {
             return CommonResult.fail("修改${functionName}记录失败!");
         }

+ 3 - 2
eco-modules/generator/src/main/resources/vm/java/domain.java.vm

@@ -27,7 +27,9 @@ import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
 #if($table.crud || $table.sub)
+import org.eco.common.orm.core.domain.BaseEntity;
 #elseif($table.tree)
+import org.eco.common.orm.core.domain.TreeEntity;
 #end
 
 /**
@@ -44,8 +46,7 @@ import java.io.Serial;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @Table(value = "${tableName}")
-public class ${ClassName} extends ${Entity}
-    {
+public class ${ClassName} extends ${Entity} {
 @Serial
 private static final long serialVersionUID = 1L;
 

+ 0 - 1
eco-modules/generator/src/main/resources/vm/java/serviceImpl.java.vm

@@ -21,7 +21,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 #if($table.sub)
 import java.util.ArrayList;
-
 import ${packageName}.domain.${subClassName};
 import ${packageName}.mapper.${subClassName}Mapper;
 import static ${packageName}.domain.table.${subClassName}TableDef.${CapitalUnderScoreSubClassName};

+ 2 - 0
eco-modules/generator/src/main/resources/vm/java/sub-domain.java.vm

@@ -10,7 +10,9 @@ import lombok.EqualsAndHashCode;
 
 import java.io.Serial;
 #if($table.crud || $table.sub)
+import org.eco.common.orm.core.domain.BaseEntity;
 #elseif($table.tree)
+import org.eco.common.orm.core.domain.TreeEntity;
 #end
 
 /**

+ 1 - 2
eco-modules/generator/src/main/resources/vm/java/vo-import.java.vm

@@ -20,8 +20,7 @@ import lombok.NoArgsConstructor;
 
 @Data
 @NoArgsConstructor
-public class ${ClassName}ImportVo implements Serializable
-{
+public class ${ClassName}ImportVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 2 - 0
eco-modules/generator/src/main/resources/vm/java/vo.java.vm

@@ -18,7 +18,9 @@ import ${packageName}.domain.${subClassName};
 import java.io.Serial;
 import java.io.Serializable;
 #if($table.crud || $table.sub)
+import org.eco.common.orm.core.domain.BaseEntity;
 #elseif($table.tree)
+import org.eco.common.orm.core.domain.TreeEntity;
 #end
 
 /**

+ 84 - 0
eco-modules/system/src/main/java/org/eco/system/controller/system/ImportExportController.java

@@ -0,0 +1,84 @@
+package org.eco.system.controller.system;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
+import lombok.RequiredArgsConstructor;
+import org.eco.common.core.core.domain.CommonResult;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.excel.utils.ExcelUtil;
+import org.eco.common.log.annotation.Log;
+import org.eco.common.log.enums.BusinessType;
+import org.eco.common.web.annotation.RepeatSubmit;
+import org.eco.common.web.core.BaseController;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.system.domain.vo.ImportExportVo;
+import org.eco.system.service.IImportExportService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 导入导出日志Controller
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/importExport")
+public class ImportExportController extends BaseController {
+    @Resource
+    private IImportExportService importExportService;
+
+    /**
+     * 查询导入导出日志列表
+     */
+    @SaCheckPermission("system:importExport:list")
+    @GetMapping("/list")
+    public CommonResult<PageResult<ImportExportVo>> list(ImportExportBo importExportBo) {
+        return CommonResult.success(importExportService.selectPage(importExportBo));
+    }
+
+    /**
+     * 导出导入导出日志列表
+     */
+    @SaCheckPermission("system:importExport:export")
+    @Log(title = "导入导出日志" , businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ImportExportBo importExportBo) {
+        List<ImportExportVo> list = importExportService.selectList(importExportBo);
+        ExcelUtil.exportExcel(list, "导入导出日志" , ImportExportVo.class, response);
+    }
+
+    /**
+     * 获取导入导出日志详细信息
+     */
+    @SaCheckPermission("system:importExport:query")
+    @GetMapping(value = "/{id}")
+    public CommonResult<ImportExportVo> getInfo(@PathVariable Long id) {
+        return CommonResult.success(importExportService.selectById(id));
+    }
+
+    /**
+     * 新增导入导出日志
+     */
+    @SaCheckPermission("system:importExport:add")
+    @Log(title = "导入导出日志" , businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping
+    public CommonResult<Void> add(@Validated @RequestBody ImportExportBo importExportBo) {
+        boolean inserted = importExportService.insert(importExportBo);
+        if (!inserted) {
+            return CommonResult.fail("新增导入导出日志记录失败!");
+        }
+        return CommonResult.success();
+    }
+}

+ 46 - 0
eco-modules/system/src/main/java/org/eco/system/domain/ImportExport.java

@@ -0,0 +1,46 @@
+package org.eco.system.domain;
+
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.Table;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.eco.common.orm.core.domain.BaseEntity;
+
+import java.io.Serial;
+
+/**
+ * 导入导出日志对象 sys_import_export_t
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Table(value = "sys_import_export_t")
+public class ImportExport extends BaseEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 唯一编码
+     */
+    @Id
+    private Long id;
+
+    /**
+     * 文件名称
+     */
+    private String name;
+
+    /**
+     * 日志信息
+     */
+    private String logInfo;
+
+    /**
+     * 状态
+     */
+    private Integer status;
+
+
+}

+ 45 - 0
eco-modules/system/src/main/java/org/eco/system/domain/bo/ImportExportBo.java

@@ -0,0 +1,45 @@
+package org.eco.system.domain.bo;
+
+import org.eco.common.orm.core.domain.BaseEntity;
+import org.eco.system.domain.ImportExport;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 导入导出日志业务对象 sys_import_export_t
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ImportExport.class, reverseConvertGenerate = false)
+public class ImportExportBo extends BaseEntity {
+    /**
+     * 唯一编码
+     */
+    @NotNull(message = "唯一编码不能为空")
+    private Long id;
+
+    /**
+     * 文件名称
+     */
+    @NotBlank(message = "文件名称不能为空")
+    private String name;
+
+    /**
+     * 日志信息
+     */
+    @NotBlank(message = "日志信息不能为空")
+    private String logInfo;
+
+    /**
+     * 状态
+     */
+    @NotNull(message = "状态不能为空")
+    private Integer status;
+
+
+}

+ 44 - 0
eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportImportVo.java

@@ -0,0 +1,44 @@
+package org.eco.system.domain.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import lombok.Data;
+import java.io.Serial;
+import java.io.Serializable;
+import lombok.NoArgsConstructor;
+
+/**
+ * 导入导出日志导入视图对象 sys_import_export_t
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+
+@Data
+@NoArgsConstructor
+public class ImportExportImportVo implements Serializable
+{
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+     /** 唯一编码 */
+    @ExcelProperty(value = "唯一编码")
+    private Long id;
+
+     /** 文件名称 */
+    @ExcelProperty(value = "文件名称")
+    private String name;
+
+     /** 日志信息 */
+    @ExcelProperty(value = "日志信息")
+    private String logInfo;
+
+     /** 状态 */
+    @ExcelProperty(value = "状态")
+    private Integer status;
+
+
+}

+ 45 - 0
eco-modules/system/src/main/java/org/eco/system/domain/vo/ImportExportVo.java

@@ -0,0 +1,45 @@
+package org.eco.system.domain.vo;
+
+import org.eco.common.orm.core.domain.BaseEntity;
+import org.eco.system.domain.ImportExport;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import org.eco.common.excel.annotation.ExcelDictFormat;
+import org.eco.common.excel.convert.ExcelDictConvert;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * 导入导出日志视图对象 sys_import_export_t
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+@Data
+@ExcelIgnoreUnannotated
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ImportExport.class)
+public class ImportExportVo extends BaseEntity implements Serializable {
+
+@Serial
+private static final long serialVersionUID = 1L;
+
+    /** 唯一编码 */
+    @ExcelProperty(value = "唯一编码")
+    private Long id;
+
+    /** 文件名称 */
+    @ExcelProperty(value = "文件名称")
+    private String name;
+
+    /** 日志信息 */
+    @ExcelProperty(value = "日志信息")
+    private String logInfo;
+
+    /** 状态 */
+    @ExcelProperty(value = "状态")
+    private Integer status;
+}

+ 16 - 0
eco-modules/system/src/main/java/org/eco/system/mapper/ImportExportMapper.java

@@ -0,0 +1,16 @@
+package org.eco.system.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.eco.system.domain.ImportExport;
+
+/**
+ * 导入导出日志Mapper接口
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+@Mapper
+public interface ImportExportMapper extends BaseMapper<ImportExport> {
+
+}

+ 50 - 0
eco-modules/system/src/main/java/org/eco/system/service/IImportExportService.java

@@ -0,0 +1,50 @@
+package org.eco.system.service;
+
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.orm.core.service.IBaseService;
+import org.eco.system.domain.ImportExport;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.system.domain.vo.ImportExportVo;
+
+import java.util.List;
+
+/**
+ * 导入导出日志Service接口
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+public interface IImportExportService extends IBaseService<ImportExport> {
+    /**
+     * 查询导入导出日志
+     *
+     * @param id 导入导出日志主键
+     * @return 导入导出日志
+     */
+    ImportExportVo selectById(Long id);
+
+    /**
+     * 查询导入导出日志列表
+     *
+     * @param importExportBo 导入导出日志Bo
+     * @return 导入导出日志集合
+     */
+    List<ImportExportVo> selectList(ImportExportBo importExportBo);
+
+    /**
+     * 分页查询导入导出日志列表
+     *
+     * @param importExportBo 导入导出日志Bo
+     * @return 分页导入导出日志集合
+     */
+    PageResult<ImportExportVo> selectPage(ImportExportBo importExportBo);
+
+    /**
+     * 新增导入导出日志
+     *
+     * @param importExportBo 导入导出日志Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    boolean insert(ImportExportBo importExportBo);
+
+}

+ 94 - 0
eco-modules/system/src/main/java/org/eco/system/service/impl/ImportExportServiceImpl.java

@@ -0,0 +1,94 @@
+package org.eco.system.service.impl;
+
+import com.mybatisflex.core.paginate.Page;
+import com.mybatisflex.core.query.QueryWrapper;
+import org.eco.common.core.core.page.PageResult;
+import org.eco.common.core.utils.MapstructUtils;
+import org.eco.common.orm.core.page.PageQuery;
+import org.eco.common.orm.core.service.impl.BaseServiceImpl;
+import org.eco.system.domain.ImportExport;
+import org.eco.system.domain.bo.ImportExportBo;
+import org.eco.system.domain.vo.ImportExportVo;
+import org.eco.system.mapper.ImportExportMapper;
+import org.eco.system.service.IImportExportService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+import static org.eco.system.domain.table.ImportExportTableDef.IMPORT_EXPORT;
+
+/**
+ * 导入导出日志Service业务层处理
+ *
+ * @author wgk
+ * @date 2024-06-24
+ */
+@Service
+public class ImportExportServiceImpl extends BaseServiceImpl<ImportExportMapper, ImportExport> implements IImportExportService {
+
+    @Override
+    public QueryWrapper query() {
+        return super.query().from(IMPORT_EXPORT);
+    }
+
+    private QueryWrapper buildQueryWrapper(ImportExportBo importExportBo) {
+        QueryWrapper queryWrapper = super.buildBaseQueryWrapper();
+        queryWrapper.and(IMPORT_EXPORT.NAME.like
+            (importExportBo.getName()));
+        queryWrapper.and(IMPORT_EXPORT.LOG_INFO.eq
+            (importExportBo.getLogInfo()));
+        queryWrapper.and(IMPORT_EXPORT.STATUS.eq
+            (importExportBo.getStatus()));
+        return queryWrapper;
+    }
+
+    /**
+     * 查询导入导出日志
+     *
+     * @param id 导入导出日志主键
+     * @return 导入导出日志
+     */
+    @Override
+    public ImportExportVo selectById(Long id) {
+        return this.getOneAs(query().where(IMPORT_EXPORT.ID.eq(id)), ImportExportVo.class);
+
+    }
+
+    /**
+     * 查询导入导出日志列表
+     *
+     * @param importExportBo 导入导出日志Bo
+     * @return 导入导出日志集合
+     */
+    @Override
+    public List<ImportExportVo> selectList(ImportExportBo importExportBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(importExportBo);
+        return this.listAs(queryWrapper, ImportExportVo.class);
+    }
+
+    /**
+     * 分页查询导入导出日志列表
+     *
+     * @param importExportBo 导入导出日志Bo
+     * @return 分页导入导出日志集合
+     */
+    @Override
+    public PageResult<ImportExportVo> selectPage(ImportExportBo importExportBo) {
+        QueryWrapper queryWrapper = buildQueryWrapper(importExportBo);
+        Page<ImportExportVo> page = this.pageAs(PageQuery.build(), queryWrapper, ImportExportVo.class);
+        return PageResult.build(page);
+    }
+
+    /**
+     * 新增导入导出日志
+     *
+     * @param importExportBo 导入导出日志Bo
+     * @return 结果:true 操作成功,false 操作失败
+     */
+    @Override
+    public boolean insert(ImportExportBo importExportBo) {
+        ImportExport importExport = MapstructUtils.convert(importExportBo, ImportExport.class);
+        return this.save(importExport);//使用全局配置的雪花算法主键生成器生成ID值
+    }
+
+}

+ 7 - 0
eco-modules/system/src/main/resources/mapper/system/ImportExportMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.eco.system.mapper.ImportExportMapper">
+
+</mapper>