feat: 打包经过

This commit is contained in:
bunny 2025-05-01 16:17:16 +08:00
parent 8f3ea1e87f
commit 9356d39347
35 changed files with 172 additions and 175 deletions

View File

@ -1,9 +1,9 @@
package cn.bunny.controller; package cn.bunny.controller;
import cn.bunny.core.SqlParserCore; import cn.bunny.core.SqlParserCore;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.result.Result; import cn.bunny.domain.result.Result;
import cn.bunny.dao.vo.TableInfoVo; import cn.bunny.domain.vo.TableInfoVo;
import cn.bunny.service.SqlParserService; import cn.bunny.service.SqlParserService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

View File

@ -1,9 +1,9 @@
package cn.bunny.controller; package cn.bunny.controller;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.DatabaseInfoMetaData; import cn.bunny.domain.entity.DatabaseInfoMetaData;
import cn.bunny.dao.result.Result; import cn.bunny.domain.result.Result;
import cn.bunny.dao.vo.TableInfoVo; import cn.bunny.domain.vo.TableInfoVo;
import cn.bunny.service.TableService; import cn.bunny.service.TableService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

View File

@ -1,9 +1,9 @@
package cn.bunny.controller; package cn.bunny.controller;
import cn.bunny.dao.dto.VmsArgumentDto; import cn.bunny.domain.dto.VmsArgumentDto;
import cn.bunny.dao.result.Result; import cn.bunny.domain.result.Result;
import cn.bunny.dao.vo.GeneratorVo; import cn.bunny.domain.vo.GeneratorVo;
import cn.bunny.dao.vo.VmsPathVo; import cn.bunny.domain.vo.VmsPathVo;
import cn.bunny.service.VmsService; import cn.bunny.service.VmsService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;

View File

@ -1,8 +1,8 @@
package cn.bunny.core; package cn.bunny.core;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.DatabaseInfoMetaData; import cn.bunny.domain.entity.DatabaseInfoMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;

View File

@ -1,7 +1,7 @@
package cn.bunny.core; package cn.bunny.core;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserUtil; import net.sf.jsqlparser.parser.CCJSqlParserUtil;

View File

@ -1,7 +1,7 @@
package cn.bunny.core.vms; package cn.bunny.core.vms;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import org.apache.velocity.VelocityContext; import org.apache.velocity.VelocityContext;
import java.io.StringWriter; import java.io.StringWriter;

View File

@ -1,7 +1,7 @@
package cn.bunny.core.vms; package cn.bunny.core.vms;
import cn.bunny.core.TypeConvertCore; import cn.bunny.core.TypeConvertCore;
import cn.bunny.dao.dto.VmsArgumentDto; import cn.bunny.domain.dto.VmsArgumentDto;
import org.apache.velocity.Template; import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext; import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity; import org.apache.velocity.app.Velocity;

View File

@ -1,90 +0,0 @@
package cn.bunny.dao.result;
import lombok.Getter;
/**
* 统一返回结果状态信息类
*/
@Getter
public enum ResultCodeEnum {
// 成功操作 200
SUCCESS(200, "操作成功" ),
ADD_SUCCESS(200, "添加成功" ),
UPDATE_SUCCESS(200, "修改成功" ),
DELETE_SUCCESS(200, "删除成功" ),
SORT_SUCCESS(200, "排序成功" ),
SUCCESS_UPLOAD(200, "上传成功" ),
SUCCESS_LOGOUT(200, "退出成功" ),
LOGOUT_SUCCESS(200, "退出成功" ),
EMAIL_CODE_REFRESH(200, "邮箱验证码已刷新" ),
EMAIL_CODE_SEND_SUCCESS(200, "邮箱验证码已发送" ),
// 验证错误 201
USERNAME_OR_PASSWORD_NOT_EMPTY(201, "用户名或密码不能为空" ),
EMAIL_CODE_NOT_EMPTY(201, "邮箱验证码不能为空" ),
SEND_EMAIL_CODE_NOT_EMPTY(201, "请先发送邮箱验证码" ),
EMAIL_CODE_NOT_MATCHING(201, "邮箱验证码不匹配" ),
LOGIN_ERROR(500, "账号或密码错误" ),
LOGIN_ERROR_USERNAME_PASSWORD_NOT_EMPTY(201, "登录信息不能为空" ),
GET_BUCKET_EXCEPTION(201, "获取文件信息失败" ),
SEND_MAIL_CODE_ERROR(201, "邮件发送失败" ),
EMAIL_CODE_EMPTY(201, "邮箱验证码过期或不存在" ),
EMAIL_EXIST(201, "邮箱已存在" ),
REQUEST_IS_EMPTY(201, "请求数据为空" ),
DATA_TOO_LARGE(201, "请求数据为空" ),
UPDATE_NEW_PASSWORD_SAME_AS_OLD_PASSWORD(201, "新密码与密码相同" ),
// 数据相关 206
ILLEGAL_REQUEST(206, "非法请求" ),
REPEAT_SUBMIT(206, "重复提交" ),
DATA_ERROR(206, "数据异常" ),
EMAIL_USER_TEMPLATE_IS_EMPTY(206, "邮件模板为空" ),
EMAIL_TEMPLATE_IS_EMPTY(206, "邮件模板为空" ),
EMAIL_USER_IS_EMPTY(206, "关联邮件用户配置为空" ),
DATA_EXIST(206, "数据已存在" ),
DATA_NOT_EXIST(206, "数据不存在" ),
ALREADY_USER_EXCEPTION(206, "用户已存在" ),
USER_IS_EMPTY(206, "用户不存在" ),
FILE_NOT_EXIST(206, "文件不存在" ),
NEW_PASSWORD_SAME_OLD_PASSWORD(206, "新密码不能和旧密码相同" ),
MISSING_TEMPLATE_FILES(206, "缺少模板文件" ),
// 身份过期 208
LOGIN_AUTH(208, "请先登陆" ),
AUTHENTICATION_EXPIRED(208, "身份验证过期" ),
SESSION_EXPIRATION(208, "会话过期" ),
// 209
THE_SAME_USER_HAS_LOGGED_IN(209, "相同用户已登录" ),
// 提示错误
UPDATE_ERROR(216, "修改失败" ),
URL_ENCODE_ERROR(216, "URL编码失败" ),
ILLEGAL_CALLBACK_REQUEST_ERROR(217, "非法回调请求" ),
FETCH_USERINFO_ERROR(219, "获取用户信息失败" ),
ILLEGAL_DATA_REQUEST(219, "非法数据请求" ),
CLASS_NOT_FOUND(219, "类名不存在" ),
ADMIN_ROLE_CAN_NOT_DELETED(219, "无法删除admin角色" ),
ROUTER_RANK_NEED_LARGER_THAN_THE_PARENT(219, "设置路由等级需要大于或等于父级的路由等级" ),
// 无权访问 403
FAIL_NO_ACCESS_DENIED(403, "无权访问" ),
FAIL_NO_ACCESS_DENIED_USER_OFFLINE(403, "用户强制下线" ),
TOKEN_PARSING_FAILED(403, "token解析失败" ),
FAIL_NO_ACCESS_DENIED_USER_LOCKED(403, "该账户已封禁" ),
// 系统错误 500
UNKNOWN_EXCEPTION(500, "服务异常" ),
SERVICE_ERROR(500, "服务异常" ),
UPLOAD_ERROR(500, "上传失败" ),
FAIL(500, "失败" ),
;
private final Integer code;
private final String message;
ResultCodeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}

View File

@ -1,17 +1,15 @@
package cn.bunny.dao.dto; package cn.bunny.domain.dto;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern; import jakarta.validation.constraints.Pattern;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.util.List; import java.util.List;
@Data @Data
@Builder
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class VmsArgumentDto { public class VmsArgumentDto {

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.entity; package cn.bunny.domain.entity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.entity; package cn.bunny.domain.entity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.entity; package cn.bunny.domain.entity;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.result; package cn.bunny.domain.result;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.result; package cn.bunny.domain.result;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -0,0 +1,90 @@
package cn.bunny.domain.result;
import lombok.Getter;
/**
* 统一返回结果状态信息类
*/
@Getter
public enum ResultCodeEnum {
// 成功操作 200
SUCCESS(200, "操作成功"),
ADD_SUCCESS(200, "添加成功"),
UPDATE_SUCCESS(200, "修改成功"),
DELETE_SUCCESS(200, "删除成功"),
SORT_SUCCESS(200, "排序成功"),
SUCCESS_UPLOAD(200, "上传成功"),
SUCCESS_LOGOUT(200, "退出成功"),
LOGOUT_SUCCESS(200, "退出成功"),
EMAIL_CODE_REFRESH(200, "邮箱验证码已刷新"),
EMAIL_CODE_SEND_SUCCESS(200, "邮箱验证码已发送"),
// 验证错误 201
USERNAME_OR_PASSWORD_NOT_EMPTY(201, "用户名或密码不能为空"),
EMAIL_CODE_NOT_EMPTY(201, "邮箱验证码不能为空"),
SEND_EMAIL_CODE_NOT_EMPTY(201, "请先发送邮箱验证码"),
EMAIL_CODE_NOT_MATCHING(201, "邮箱验证码不匹配"),
LOGIN_ERROR(500, "账号或密码错误"),
LOGIN_ERROR_USERNAME_PASSWORD_NOT_EMPTY(201, "登录信息不能为空"),
GET_BUCKET_EXCEPTION(201, "获取文件信息失败"),
SEND_MAIL_CODE_ERROR(201, "邮件发送失败"),
EMAIL_CODE_EMPTY(201, "邮箱验证码过期或不存在"),
EMAIL_EXIST(201, "邮箱已存在"),
REQUEST_IS_EMPTY(201, "请求数据为空"),
DATA_TOO_LARGE(201, "请求数据为空"),
UPDATE_NEW_PASSWORD_SAME_AS_OLD_PASSWORD(201, "新密码与密码相同"),
// 数据相关 206
ILLEGAL_REQUEST(206, "非法请求"),
REPEAT_SUBMIT(206, "重复提交"),
DATA_ERROR(206, "数据异常"),
EMAIL_USER_TEMPLATE_IS_EMPTY(206, "邮件模板为空"),
EMAIL_TEMPLATE_IS_EMPTY(206, "邮件模板为空"),
EMAIL_USER_IS_EMPTY(206, "关联邮件用户配置为空"),
DATA_EXIST(206, "数据已存在"),
DATA_NOT_EXIST(206, "数据不存在"),
ALREADY_USER_EXCEPTION(206, "用户已存在"),
USER_IS_EMPTY(206, "用户不存在"),
FILE_NOT_EXIST(206, "文件不存在"),
NEW_PASSWORD_SAME_OLD_PASSWORD(206, "新密码不能和旧密码相同"),
MISSING_TEMPLATE_FILES(206, "缺少模板文件"),
// 身份过期 208
LOGIN_AUTH(208, "请先登陆"),
AUTHENTICATION_EXPIRED(208, "身份验证过期"),
SESSION_EXPIRATION(208, "会话过期"),
// 209
THE_SAME_USER_HAS_LOGGED_IN(209, "相同用户已登录"),
// 提示错误
UPDATE_ERROR(216, "修改失败"),
URL_ENCODE_ERROR(216, "URL编码失败"),
ILLEGAL_CALLBACK_REQUEST_ERROR(217, "非法回调请求"),
FETCH_USERINFO_ERROR(219, "获取用户信息失败"),
ILLEGAL_DATA_REQUEST(219, "非法数据请求"),
CLASS_NOT_FOUND(219, "类名不存在"),
ADMIN_ROLE_CAN_NOT_DELETED(219, "无法删除admin角色"),
ROUTER_RANK_NEED_LARGER_THAN_THE_PARENT(219, "设置路由等级需要大于或等于父级的路由等级"),
// 无权访问 403
FAIL_NO_ACCESS_DENIED(403, "无权访问"),
FAIL_NO_ACCESS_DENIED_USER_OFFLINE(403, "用户强制下线"),
TOKEN_PARSING_FAILED(403, "token解析失败"),
FAIL_NO_ACCESS_DENIED_USER_LOCKED(403, "该账户已封禁"),
// 系统错误 500
UNKNOWN_EXCEPTION(500, "服务异常"),
SERVICE_ERROR(500, "服务异常"),
UPLOAD_ERROR(500, "上传失败"),
FAIL(500, "失败"),
;
private final Integer code;
private final String message;
ResultCodeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.vo; package cn.bunny.domain.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.vo; package cn.bunny.domain.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,4 +1,4 @@
package cn.bunny.dao.vo; package cn.bunny.domain.vo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;

View File

@ -1,6 +1,6 @@
package cn.bunny.exception; package cn.bunny.exception;
import cn.bunny.dao.result.ResultCodeEnum; import cn.bunny.domain.result.ResultCodeEnum;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;

View File

@ -1,8 +1,8 @@
package cn.bunny.exception; package cn.bunny.exception;
import cn.bunny.dao.result.Result; import cn.bunny.domain.result.Result;
import cn.bunny.dao.result.ResultCodeEnum; import cn.bunny.domain.result.ResultCodeEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.support.DefaultMessageSourceResolvable; import org.springframework.context.support.DefaultMessageSourceResolvable;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;

View File

@ -1,6 +1,6 @@
package cn.bunny.service; package cn.bunny.service;
import cn.bunny.dao.vo.TableInfoVo; import cn.bunny.domain.vo.TableInfoVo;
public interface SqlParserService { public interface SqlParserService {
/** /**

View File

@ -1,8 +1,8 @@
package cn.bunny.service; package cn.bunny.service;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.DatabaseInfoMetaData; import cn.bunny.domain.entity.DatabaseInfoMetaData;
import cn.bunny.dao.vo.TableInfoVo; import cn.bunny.domain.vo.TableInfoVo;
import java.util.List; import java.util.List;

View File

@ -1,8 +1,8 @@
package cn.bunny.service; package cn.bunny.service;
import cn.bunny.dao.dto.VmsArgumentDto; import cn.bunny.domain.dto.VmsArgumentDto;
import cn.bunny.dao.vo.GeneratorVo; import cn.bunny.domain.vo.GeneratorVo;
import cn.bunny.dao.vo.VmsPathVo; import cn.bunny.domain.vo.VmsPathVo;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;

View File

@ -1,8 +1,8 @@
package cn.bunny.service.impl; package cn.bunny.service.impl;
import cn.bunny.core.SqlParserCore; import cn.bunny.core.SqlParserCore;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import cn.bunny.dao.vo.TableInfoVo; import cn.bunny.domain.vo.TableInfoVo;
import cn.bunny.service.SqlParserService; import cn.bunny.service.SqlParserService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@ -1,10 +1,10 @@
package cn.bunny.service.impl; package cn.bunny.service.impl;
import cn.bunny.core.DatabaseInfoCore; import cn.bunny.core.DatabaseInfoCore;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.DatabaseInfoMetaData; import cn.bunny.domain.entity.DatabaseInfoMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import cn.bunny.dao.vo.TableInfoVo; import cn.bunny.domain.vo.TableInfoVo;
import cn.bunny.service.TableService; import cn.bunny.service.TableService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.SneakyThrows; import lombok.SneakyThrows;

View File

@ -4,11 +4,11 @@ import cn.bunny.core.DatabaseInfoCore;
import cn.bunny.core.ResourceFileCore; import cn.bunny.core.ResourceFileCore;
import cn.bunny.core.SqlParserCore; import cn.bunny.core.SqlParserCore;
import cn.bunny.core.vms.VmsArgumentDtoBaseVmsGenerator; import cn.bunny.core.vms.VmsArgumentDtoBaseVmsGenerator;
import cn.bunny.dao.dto.VmsArgumentDto; import cn.bunny.domain.dto.VmsArgumentDto;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import cn.bunny.dao.vo.GeneratorVo; import cn.bunny.domain.vo.GeneratorVo;
import cn.bunny.dao.vo.VmsPathVo; import cn.bunny.domain.vo.VmsPathVo;
import cn.bunny.service.VmsService; import cn.bunny.service.VmsService;
import cn.bunny.utils.VmsUtil; import cn.bunny.utils.VmsUtil;
import cn.hutool.crypto.digest.MD5; import cn.hutool.crypto.digest.MD5;

View File

@ -3,6 +3,6 @@ bunny:
# host: 192.168.3.137 # host: 192.168.3.137
host: localhost host: localhost
port: 3306 port: 3306
database: auth_admin database: bunny_admin
username: root username: root
password: "123456" password: "123456"

View File

@ -1,14 +1,14 @@
package ${package}.controller; package ${package}.controller;
import cn.bunny.dao.pojo.result.Result; import cn.bunny.domain.pojo.result.Result;
import cn.bunny.dao.pojo.result.ResultCodeEnum; import cn.bunny.domain.pojo.result.ResultCodeEnum;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import cn.bunny.dao.pojo.result.PageResult; import cn.bunny.domain.pojo.result.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package ${package}.service.impl; package ${package}.service.impl;
import cn.bunny.dao.pojo.result.PageResult; import cn.bunny.domain.pojo.result.PageResult;
import ${package}.mapper.${classUppercaseName}Mapper; import ${package}.mapper.${classUppercaseName}Mapper;
import ${package}.service.${classUppercaseName}Service; import ${package}.service.${classUppercaseName}Service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@ -1,12 +1,11 @@
package ${package}.service; package ${package}.service;
import cn.bunny.dao.entity.system.MenuIcon; import cn.bunny.domain.entity.system.MenuIcon;
import cn.bunny.dao.pojo.result.PageResult; import cn.bunny.domain.pojo.result.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import java.util.HashMap;
import java.util.List; import java.util.List;
/** /**

View File

@ -2,8 +2,8 @@ package cn.bunny;
import cn.bunny.core.TypeConvertCore; import cn.bunny.core.TypeConvertCore;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;

View File

@ -1,8 +1,8 @@
package cn.bunny; package cn.bunny;
import cn.bunny.core.TypeConvertCore; import cn.bunny.core.TypeConvertCore;
import cn.bunny.dao.entity.ColumnMetaData; import cn.bunny.domain.entity.ColumnMetaData;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import net.sf.jsqlparser.JSQLParserException; import net.sf.jsqlparser.JSQLParserException;
import net.sf.jsqlparser.parser.CCJSqlParserUtil; import net.sf.jsqlparser.parser.CCJSqlParserUtil;
import net.sf.jsqlparser.statement.Statement; import net.sf.jsqlparser.statement.Statement;

View File

@ -1,7 +1,7 @@
package cn.bunny.service.impl; package cn.bunny.service.impl;
import cn.bunny.core.ResourceFileCore; import cn.bunny.core.ResourceFileCore;
import cn.bunny.dao.vo.VmsPathVo; import cn.bunny.domain.vo.VmsPathVo;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;

View File

@ -1,6 +1,6 @@
package cn.bunny.utils; package cn.bunny.utils;
import cn.bunny.dao.entity.TableMetaData; import cn.bunny.domain.entity.TableMetaData;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -25,7 +25,7 @@ export const downloadBlob = (response: any) => {
const contentDisposition = response.headers['content-disposition']; const contentDisposition = response.headers['content-disposition'];
let fileName = 'download.zip'; let fileName = 'download.zip';
if (contentDisposition) { if (contentDisposition) {
const fileNameMatch = contentDisposition.match(/filename="?(.+)"?/); const fileNameMatch = contentDisposition.match(/filename="?(.+)"/);
if (fileNameMatch && fileNameMatch[1]) { if (fileNameMatch && fileNameMatch[1]) {
fileName = fileNameMatch[1]; fileName = fileNameMatch[1];
} }