diff --git a/core/core-backend/src/main/java/io/dataease/font/manage/FontManage.java b/core/core-backend/src/main/java/io/dataease/font/manage/FontManage.java index aee86a7744..f60caae906 100644 --- a/core/core-backend/src/main/java/io/dataease/font/manage/FontManage.java +++ b/core/core-backend/src/main/java/io/dataease/font/manage/FontManage.java @@ -6,8 +6,10 @@ import io.dataease.exception.DEException; import io.dataease.font.dao.auto.entity.CoreFont; import io.dataease.font.dao.auto.mapper.CoreFontMapper; import io.dataease.utils.BeanUtils; +import io.dataease.utils.FileUtils; import io.dataease.utils.IDUtils; import jakarta.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -41,22 +43,30 @@ public class FontManage { fontDto.setId(IDUtils.snowID()); CoreFont coreFont = new CoreFont(); BeanUtils.copyBean(coreFont, fontDto); + coreFont.setUpdateTime(System.currentTimeMillis()); coreFontMapper.insert(coreFont); return fontDto; } public FontDto edit(FontDto fontDto) { - fontDto.setId(IDUtils.snowID()); + if (ObjectUtils.isEmpty(fontDto.getId())) { + return create(fontDto); + } CoreFont coreFont = new CoreFont(); BeanUtils.copyBean(coreFont, fontDto); + coreFont.setUpdateTime(System.currentTimeMillis()); coreFontMapper.updateById(coreFont); return fontDto; } public void delete(Long id) { - coreFontMapper.deleteById(id); - //TODO delete file + CoreFont coreFont = coreFontMapper.selectById(id); + if (coreFont != null) { + coreFontMapper.deleteById(id); + FileUtils.deleteFile(path + coreFont.getFileTransName()); + } + } public void changeDefault(FontDto fontDto) { @@ -67,16 +77,9 @@ public class FontManage { coreFontMapper.update(record, queryWrapper); } - public void upload(MultipartFile file, long fontID) { - String filename = file.getOriginalFilename(); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("id", fontID); - CoreFont record = new CoreFont(); - record.setFileName(filename); - record.setFileTransName(filename); - coreFontMapper.update(record, queryWrapper); + public String upload(MultipartFile file) { String fileUuid = UUID.randomUUID().toString(); - saveFile(file, fileUuid); + return saveFile(file, fileUuid); } private static String saveFile(MultipartFile file, String fileNameUUID) throws DEException { diff --git a/core/core-backend/src/main/java/io/dataease/font/server/FontServer.java b/core/core-backend/src/main/java/io/dataease/font/server/FontServer.java index defa053694..b43b23b09a 100644 --- a/core/core-backend/src/main/java/io/dataease/font/server/FontServer.java +++ b/core/core-backend/src/main/java/io/dataease/font/server/FontServer.java @@ -44,7 +44,7 @@ public class FontServer implements FontApi { } @Override - public void upload(MultipartFile file, long fontID) throws DEException { - fontManage.upload(file, fontID); + public String upload(MultipartFile file) throws DEException { + return fontManage.upload(file); } } diff --git a/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql b/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql index 5f1d1d8455..54087fabc7 100644 --- a/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql +++ b/core/core-backend/src/main/resources/db/migration/V2.10__ddl.sql @@ -77,9 +77,10 @@ CREATE TABLE `core_font` ( `id` bigint NOT NULL COMMENT 'ID', `name` varchar(255) NOT NULL COMMENT '字体名称', - `file_name` varchar(255) NOT NULL COMMENT '文件名称', - `file_trans_name` varchar(255) NOT NULL COMMENT '文件转换名称', - `is_default` tinyint(1) NOT NULL COMMENT '是否默认', - `is_BuiltIn` tinyint(1) NOT NULL COMMENT '是否内置', + `file_name` varchar(255) default NULL COMMENT '文件名称', + `file_trans_name` varchar(255) default NULL COMMENT '文件转换名称', + `is_default` tinyint(1) default 0 COMMENT '是否默认', + `update_time` bigint NOT NULL COMMENT '更新时间', + `is_BuiltIn` tinyint(1) default 0 COMMENT '是否内置', PRIMARY KEY (`id`) ); diff --git a/core/core-frontend/src/api/font.ts b/core/core-frontend/src/api/font.ts index b47c556342..7b220ffe67 100644 --- a/core/core-frontend/src/api/font.ts +++ b/core/core-frontend/src/api/font.ts @@ -26,14 +26,21 @@ export const edit = (data = {}) => { }) } -export const changeDefault = (data = {}) => { - return request.post({ url: '/typeface/changeDefault', data }).then(res => { - return res?.data - }) -} - export const deleteById = id => { return request.post({ url: '/typeface/delete/' + id, data: {} }).then(res => { return res?.data }) } + +export const uploadFontFile = async (data): Promise => { + return request + .post({ + url: '/typeface/uploadFile', + data, + loading: true, + headersType: 'multipart/form-data;' + }) + .then(res => { + return res + }) +} diff --git a/core/core-frontend/src/views/system/font/UploadDetail.vue b/core/core-frontend/src/views/system/font/UploadDetail.vue index 4a51071b24..76e556aef3 100644 --- a/core/core-frontend/src/views/system/font/UploadDetail.vue +++ b/core/core-frontend/src/views/system/font/UploadDetail.vue @@ -1,19 +1,24 @@