Commit de1f0f89 authored by alex yao's avatar alex yao

feat:Ai软著

parent 02424b79
package cn.com.poc.ai_software_copyright.dto;
/**
* @author alex.yao
* @date 2025/12/31
*/
public class SoftwareCopyRightFilesDto {
private String type;
private String fileUrl;
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
...@@ -2,16 +2,19 @@ package cn.com.poc.ai_software_copyright.rest; ...@@ -2,16 +2,19 @@ package cn.com.poc.ai_software_copyright.rest;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map;
import cn.com.gsst.dify_client.exception.DifyApiException; import cn.com.gsst.dify_client.exception.DifyApiException;
import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightAssistantDto; import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightAssistantDto;
import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightDto; import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightDto;
import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightFilesDto;
import cn.com.yict.framemax.core.rest.BaseRest; import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.data.model.PagingInfo; import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.yict.framemax.web.permission.Access; import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission; import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
@Permission(Access.Anonymous) @Permission(Access.Anonymous)
public interface BizSoftwareCopyrightRest extends BaseRest { public interface BizSoftwareCopyrightRest extends BaseRest {
...@@ -32,4 +35,24 @@ public interface BizSoftwareCopyrightRest extends BaseRest { ...@@ -32,4 +35,24 @@ public interface BizSoftwareCopyrightRest extends BaseRest {
* AI软著-生成技术内容 * AI软著-生成技术内容
*/ */
SoftwareCopyRightDto createTechnicalContent(@RequestBody SoftwareCopyRightDto dto) throws IOException; SoftwareCopyRightDto createTechnicalContent(@RequestBody SoftwareCopyRightDto dto) throws IOException;
/**
* 文件上传
*
* @param file 文件
* @return
*/
String upload(@RequestParam MultipartFile file) throws IOException;
/**
* AI软著-文件列表
*/
List<SoftwareCopyRightFilesDto> listFile(@RequestParam Long id);
/**
* 获取下载地址
*/
String getDownloadUrl(@RequestParam Long id);
} }
\ No newline at end of file
...@@ -2,6 +2,8 @@ package cn.com.poc.ai_software_copyright.rest.impl; ...@@ -2,6 +2,8 @@ package cn.com.poc.ai_software_copyright.rest.impl;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -13,18 +15,31 @@ import cn.com.poc.ai_software_copyright.convert.BizSoftwareCopyrightConvert; ...@@ -13,18 +15,31 @@ import cn.com.poc.ai_software_copyright.convert.BizSoftwareCopyrightConvert;
import cn.com.poc.ai_software_copyright.domian.TechnicalContent; import cn.com.poc.ai_software_copyright.domian.TechnicalContent;
import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightAssistantDto; import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightAssistantDto;
import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightDto; import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightDto;
import cn.com.poc.ai_software_copyright.dto.SoftwareCopyRightFilesDto;
import cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightEntity; import cn.com.poc.ai_software_copyright.entity.BizSoftwareCopyrightEntity;
import cn.com.poc.ai_software_copyright.query.SoftwareCopyrightQueryCondition; import cn.com.poc.ai_software_copyright.query.SoftwareCopyrightQueryCondition;
import cn.com.poc.ai_software_copyright.query.SoftwareCopyrightQueryItem; import cn.com.poc.ai_software_copyright.query.SoftwareCopyrightQueryItem;
import cn.com.poc.ai_software_copyright.rest.BizSoftwareCopyrightRest; import cn.com.poc.ai_software_copyright.rest.BizSoftwareCopyrightRest;
import cn.com.poc.ai_software_copyright.service.BizSoftwareCopyrightService; import cn.com.poc.ai_software_copyright.service.BizSoftwareCopyrightService;
import cn.com.poc.common.model.BizFileUploadRecordModel;
import cn.com.poc.common.service.BizFileUploadRecordService;
import cn.com.poc.common.service.BosConfigService;
import cn.com.yict.framemax.data.model.PagingInfo; import cn.com.yict.framemax.data.model.PagingInfo;
import cn.hutool.crypto.digest.MD5;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.web.multipart.MultipartFile;
@Component @Component
public class BizSoftwareCopyrightRestImpl implements BizSoftwareCopyrightRest { public class BizSoftwareCopyrightRestImpl implements BizSoftwareCopyrightRest {
@Resource
private BosConfigService bosConfigService;
@Resource
private BizFileUploadRecordService bizFileUploadRecordService;
@Resource @Resource
private SoftwareCopyRightService softwareCopyRightService; private SoftwareCopyRightService softwareCopyRightService;
...@@ -82,4 +97,45 @@ public class BizSoftwareCopyrightRestImpl implements BizSoftwareCopyrightRest { ...@@ -82,4 +97,45 @@ public class BizSoftwareCopyrightRestImpl implements BizSoftwareCopyrightRest {
result.setTechnicalContent(technicalContent); result.setTechnicalContent(technicalContent);
return result; return result;
} }
@Override
public String upload(MultipartFile file) throws IOException {
cn.com.poc.common.utils.Assert.notNull(file);
String contentType = file.getContentType();
String originalFilename = file.getOriginalFilename();
String prefix = originalFilename.substring(originalFilename.lastIndexOf(".")).replaceAll("\\.", "");
String upload = bosConfigService.upload(file.getInputStream(), prefix, contentType);
//计算文件MD5值
InputStream inputStream = file.getInputStream();
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
String md5 = MD5.create().digestHex(bytes);
BizFileUploadRecordModel bizFileUploadRecordModel = new BizFileUploadRecordModel();
bizFileUploadRecordModel.setFileName(file.getOriginalFilename());
bizFileUploadRecordModel.setFileUrl(upload);
bizFileUploadRecordModel.setMd5(md5);
bizFileUploadRecordModel.setCoverSheetUrl("");
bizFileUploadRecordService.save(bizFileUploadRecordModel);
return upload;
}
@Override
public List<SoftwareCopyRightFilesDto> listFile(Long id) {
List<SoftwareCopyRightFilesDto> dtos = new ArrayList<>();
for (AiSoftWareCopyRightEnum.DOC_TYPE value : AiSoftWareCopyRightEnum.DOC_TYPE.values()) {
SoftwareCopyRightFilesDto dto = new SoftwareCopyRightFilesDto();
dto.setType(value.name());
dto.setFileUrl("https://gsst-poe-sit.gz.bcebos.com/v1/1755516924342.docx");
dtos.add(dto);
}
return dtos;
}
@Override
public String getDownloadUrl(Long id) {
return "https://gsst-poe-sit.gz.bcebos.com/v1/1755516924342.docx";
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment