Commit 12bd1e7b authored by R10's avatar R10

Merge branch 'release_gdghg' of ssh://gitlab.gsstcloud.com:10022/poc/poc-api into release_gdghg

parents 765ee98a 7cd572af
...@@ -128,7 +128,7 @@ public class AiLawServiceImpl implements AiLawService { ...@@ -128,7 +128,7 @@ public class AiLawServiceImpl implements AiLawService {
List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N"); List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N");
CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null); CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null);
FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult(); FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult();
if (functionCallResult != null) { if (functionCallResult != null && functionCallResult.isNeed()) {
FunctionCall functionCall = functionCallResult.getFunctionCall(); FunctionCall functionCall = functionCallResult.getFunctionCall();
if ("web_search".equals(functionCall.getName())) { if ("web_search".equals(functionCall.getName())) {
AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null); AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null);
......
...@@ -613,7 +613,7 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService { ...@@ -613,7 +613,7 @@ public class LongTextDialoguesServiceImpl implements LongTextDialoguesService {
List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N"); List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N");
CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null); CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null);
FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult(); FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult();
if (functionCallResult != null) { if (functionCallResult != null && functionCallResult.isNeed()) {
FunctionCall functionCall = functionCallResult.getFunctionCall(); FunctionCall functionCall = functionCallResult.getFunctionCall();
if (functionCallResult.isNeed() && functionCall != null && "web_search".equals(functionCall.getName())) { if (functionCallResult.isNeed() && functionCall != null && "web_search".equals(functionCall.getName())) {
AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null); AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null);
......
...@@ -143,7 +143,7 @@ public class PortalServiceImpl implements PortalService { ...@@ -143,7 +143,7 @@ public class PortalServiceImpl implements PortalService {
List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", callEntity.getDialoguesId(), callEntity.getDialoguesId(), unitIds, "N"); List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", callEntity.getDialoguesId(), callEntity.getDialoguesId(), unitIds, "N");
CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null); CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null);
FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult(); FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult();
if (functionCallResult != null) { if (functionCallResult != null && functionCallResult.isNeed()) {
FunctionCall functionCall = functionCallResult.getFunctionCall(); FunctionCall functionCall = functionCallResult.getFunctionCall();
if ("web_search".equals(functionCall.getName())) { if ("web_search".equals(functionCall.getName())) {
AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), callEntity.getDialoguesId(), null, null); AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), callEntity.getDialoguesId(), null, null);
......
...@@ -47,8 +47,19 @@ public interface ExaminationService { ...@@ -47,8 +47,19 @@ public interface ExaminationService {
/** /**
* 批量删除 * 批量删除
*
* @param examinationIds 试卷ID * @param examinationIds 试卷ID
* @param userId 用户ID * @param userId 用户ID
*/ */
boolean batchDelete(List<String> examinationIds, Long userId); boolean batchDelete(List<String> examinationIds, Long userId);
/**
* 试卷文件下载
*
* @param examinationId 试卷id
* @param userId 用户id
* @return 下载地址
*/
String downloadExamination(String examinationId, Long userId);
} }
...@@ -236,7 +236,7 @@ public class AiWritingServiceImpl implements AiWritingService { ...@@ -236,7 +236,7 @@ public class AiWritingServiceImpl implements AiWritingService {
List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N"); List<Tool> tools = AgentApplicationTools.buildFunctionConfig(null, "N", dialoguesId, dialoguesId, unitIds, "N");
CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null); CheckPluginUseEntity checkPluginUseEntity = AgentApplicationTools.checkPluginUse(messages, tools, null);
FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult(); FunctionCallResult functionCallResult = checkPluginUseEntity.getFunctionCallResult();
if (functionCallResult != null) { if (functionCallResult != null && functionCallResult.isNeed()) {
FunctionCall functionCall = functionCallResult.getFunctionCall(); FunctionCall functionCall = functionCallResult.getFunctionCall();
if (functionCallResult.isNeed() && functionCall != null && "web_search".equals(functionCall.getName())) { if (functionCallResult.isNeed() && functionCall != null && "web_search".equals(functionCall.getName())) {
AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null); AbstractFunctionResult<List<WebSearchFunctionResult>> functionResult = webSearchFunction.doFunction(functionCall.getArguments(), dialoguesId, null, null);
......
...@@ -3,7 +3,11 @@ package cn.com.poc.writing.aggregate.impl; ...@@ -3,7 +3,11 @@ package cn.com.poc.writing.aggregate.impl;
import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity; import cn.com.poc.agent_application.entity.BizAgentApplicationGcConfigEntity;
import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService; import cn.com.poc.agent_application.service.BizAgentApplicationGcConfigService;
import cn.com.poc.common.constant.CommonConstant; import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.*; import cn.com.poc.common.service.BosConfigService;
import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.JsonUtils;
import cn.com.poc.common.utils.SSEUtil;
import cn.com.poc.common.utils.UUIDTool;
import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum; import cn.com.poc.thirdparty.resource.demand.ai.constants.LLMRoleEnum;
import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message; import cn.com.poc.thirdparty.resource.demand.ai.entity.dialogue.Message;
import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult; import cn.com.poc.thirdparty.resource.demand.ai.entity.largemodel.LargeModelDemandResult;
...@@ -20,15 +24,16 @@ import cn.com.yict.framemax.frame.service.FmxParamConfigService; ...@@ -20,15 +24,16 @@ import cn.com.yict.framemax.frame.service.FmxParamConfigService;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xwpf.usermodel.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.BufferedReader; import java.io.*;
import java.io.File; import java.util.ArrayList;
import java.io.IOException; import java.util.Arrays;
import java.util.*; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -49,6 +54,9 @@ public class ExaminationServiceImpl implements ExaminationService { ...@@ -49,6 +54,9 @@ public class ExaminationServiceImpl implements ExaminationService {
@Resource @Resource
private LLMService llmService; private LLMService llmService;
@Resource
private BosConfigService bosConfigService;
@Resource @Resource
private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService; private BizAgentApplicationGcConfigService bizAgentApplicationGcConfigService;
...@@ -130,6 +138,8 @@ public class ExaminationServiceImpl implements ExaminationService { ...@@ -130,6 +138,8 @@ public class ExaminationServiceImpl implements ExaminationService {
saveExaminationEntity.setLevel(generateExaminationEntity.getLevel()); saveExaminationEntity.setLevel(generateExaminationEntity.getLevel());
saveExaminationEntity.setLanguage(generateExaminationEntity.getLanguage()); saveExaminationEntity.setLanguage(generateExaminationEntity.getLanguage());
saveExaminationEntity.setPositions(generateExaminationEntity.getPositions()); saveExaminationEntity.setPositions(generateExaminationEntity.getPositions());
saveExaminationEntity.setFileUrl(generateExaminationEntity.getFileUrl());
saveExaminationEntity.setContent(generateExaminationEntity.getContent());
saveExaminationEntity.setExaminationDetail(JsonUtils.serialize(examinationDetailEntities)); saveExaminationEntity.setExaminationDetail(JsonUtils.serialize(examinationDetailEntities));
bizExaminationService.save(saveExaminationEntity); bizExaminationService.save(saveExaminationEntity);
} else { } else {
...@@ -140,6 +150,8 @@ public class ExaminationServiceImpl implements ExaminationService { ...@@ -140,6 +150,8 @@ public class ExaminationServiceImpl implements ExaminationService {
updateExaminationEntity.setN(generateExaminationEntity.getN()); updateExaminationEntity.setN(generateExaminationEntity.getN());
updateExaminationEntity.setLevel(generateExaminationEntity.getLevel()); updateExaminationEntity.setLevel(generateExaminationEntity.getLevel());
updateExaminationEntity.setLanguage(generateExaminationEntity.getLanguage()); updateExaminationEntity.setLanguage(generateExaminationEntity.getLanguage());
updateExaminationEntity.setFileUrl(generateExaminationEntity.getFileUrl());
updateExaminationEntity.setContent(generateExaminationEntity.getContent());
updateExaminationEntity.setPositions(generateExaminationEntity.getPositions()); updateExaminationEntity.setPositions(generateExaminationEntity.getPositions());
updateExaminationEntity.setExaminationDetail(JsonUtils.serialize(examinationDetailEntities)); updateExaminationEntity.setExaminationDetail(JsonUtils.serialize(examinationDetailEntities));
bizExaminationService.update(updateExaminationEntity); bizExaminationService.update(updateExaminationEntity);
...@@ -177,9 +189,12 @@ public class ExaminationServiceImpl implements ExaminationService { ...@@ -177,9 +189,12 @@ public class ExaminationServiceImpl implements ExaminationService {
result.setTitle(examinationEntity.getTitle()); result.setTitle(examinationEntity.getTitle());
result.setN(examinationEntity.getN()); result.setN(examinationEntity.getN());
result.setLevel(examinationEntity.getLevel()); result.setLevel(examinationEntity.getLevel());
result.setQuestionType(Arrays.stream(examinationEntity.getQuestionType().split(",")).collect(Collectors.toList()));
result.setDate(examinationEntity.getModifiedTime()); result.setDate(examinationEntity.getModifiedTime());
result.setTotalScore(examinationEntity.getTotalScore()); result.setTotalScore(examinationEntity.getTotalScore());
result.setPositions(examinationEntity.getPositions()); result.setPositions(examinationEntity.getPositions());
result.setFileUrl(examinationEntity.getFileUrl());
result.setContent(examinationEntity.getContent());
return result; return result;
} }
...@@ -226,8 +241,102 @@ public class ExaminationServiceImpl implements ExaminationService { ...@@ -226,8 +241,102 @@ public class ExaminationServiceImpl implements ExaminationService {
return true; return true;
} }
@Override
public String downloadExamination(String examinationId, Long userId) {
BizExaminationEntity bizExaminationEntity = new BizExaminationEntity();
bizExaminationEntity.setExaminationId(examinationId);
bizExaminationEntity.setMemberId(userId);
bizExaminationEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizExaminationEntity> bizExaminationEntities = bizExaminationService.findByExample(bizExaminationEntity, null);
if (CollectionUtils.isEmpty(bizExaminationEntities) || StringUtils.isBlank(bizExaminationEntities.get(0).getExaminationDetail())) {
throw new BusinessException("无法获取试卷内容");
}
BizExaminationEntity examinationEntity = bizExaminationEntities.get(0);
File file = buildExaminationFile(examinationEntity);
try (FileInputStream fileInputStream = new FileInputStream(file)) {
return bosConfigService.upload(fileInputStream, "docx", "");
} catch (Exception e) {
logger.error("------------ 生成试卷文件失败 ---------------", e);
throw new BusinessException("生成文件失败");
} finally {
if (file.exists()) {
file.delete();
}
}
}
/**
* 生成试卷文件
*
* @param examinationEntity
* @return
*/
private File buildExaminationFile(BizExaminationEntity examinationEntity) {
// 遍历试卷题目,写入试卷
List<ExaminationDetail> examinationDetails = JsonUtils.deSerialize(examinationEntity.getExaminationDetail(), new TypeReference<List<ExaminationDetail>>() {
}.getType());
try (XWPFDocument document = new XWPFDocument()) {
// 写入标题
XWPFParagraph titleParagraph = document.createParagraph();
titleParagraph.setAlignment(ParagraphAlignment.CENTER);
titleParagraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun titleParagraphRun = titleParagraph.createRun();
titleParagraphRun.setText(examinationEntity.getTitle());
titleParagraphRun.setBold(true);
titleParagraphRun.setFontSize(22);
// 详情
XWPFParagraph detailParagraph = document.createParagraph();
detailParagraph.setAlignment(ParagraphAlignment.CENTER);
detailParagraph.setVerticalAlignment(TextAlignment.CENTER);
XWPFRun detailParagraphRun = detailParagraph.createRun();
detailParagraphRun.setText("总分: " + examinationEntity.getTotalScore() + "分 难度级别:" + examinationEntity.getLevel() + " 总题数: " + examinationDetails.size());
detailParagraphRun.addBreak();
//问题
for (int i = 0; i < examinationDetails.size(); i++) {
ExaminationDetail examinationDetail = examinationDetails.get(i);
//题目类型/分数
XWPFParagraph questionTypeParagraph = document.createParagraph();
questionTypeParagraph.setAlignment(ParagraphAlignment.LEFT);
questionTypeParagraph.setVerticalAlignment(TextAlignment.AUTO);
XWPFRun questionTypeParagraphRun = questionTypeParagraph.createRun();
questionTypeParagraphRun.setText(i + 1 + "." + examinationDetail.getQuestionType() + "(" + examinationDetail.getScore() + "分)");
// 问题
XWPFParagraph questionParagraph = document.createParagraph();
questionParagraph.setAlignment(ParagraphAlignment.LEFT);
questionParagraph.setVerticalAlignment(TextAlignment.AUTO);
XWPFRun questionParagraphRun = questionParagraph.createRun();
String question = examinationDetail.getQuestion();
questionParagraphRun.setText(question + "( )");
//选项
XWPFParagraph choiceParagraph = document.createParagraph();
choiceParagraph.setAlignment(ParagraphAlignment.LEFT);
choiceParagraph.setVerticalAlignment(TextAlignment.AUTO);
XWPFRun choiceParagraphRun = choiceParagraph.createRun();
List<String> choice = examinationDetail.getChoice();
for (int j = 0; j < choice.size(); j++) {
choiceParagraphRun.setText(choice.get(j), j);
choiceParagraphRun.addBreak();
}
}
File tempFile = File.createTempFile(UUIDTool.getUUID(), ".docx");
try (FileOutputStream out = new FileOutputStream(tempFile)) {
document.write(out);
}
return tempFile;
} catch (IOException e) {
throw new BusinessException(e);
}
}
private Message[] buildMessage(String prompt, GenerateExaminationEntity generateExaminationEntity) { private Message[] buildMessage(String prompt, GenerateExaminationEntity generateExaminationEntity) {
String fileContent = generateExaminationEntity.getPositions(); String fileContent = StringUtils.EMPTY;
if (StringUtils.isNoneBlank(generateExaminationEntity.getFileUrl())) { if (StringUtils.isNoneBlank(generateExaminationEntity.getFileUrl())) {
File file = DocumentLoad.downloadURLDocument(generateExaminationEntity.getFileUrl()); File file = DocumentLoad.downloadURLDocument(generateExaminationEntity.getFileUrl());
fileContent = DocumentLoad.documentToText(file); fileContent = DocumentLoad.documentToText(file);
...@@ -238,7 +347,7 @@ public class ExaminationServiceImpl implements ExaminationService { ...@@ -238,7 +347,7 @@ public class ExaminationServiceImpl implements ExaminationService {
.replace("${number}", generateExaminationEntity.getN().toString()) .replace("${number}", generateExaminationEntity.getN().toString())
.replace("${total_score}", generateExaminationEntity.getTotalScore().toString()) .replace("${total_score}", generateExaminationEntity.getTotalScore().toString())
.replace("${level}", generateExaminationEntity.getLevel()) .replace("${level}", generateExaminationEntity.getLevel())
.replace("${position}", generateExaminationEntity.getPositions()) .replace("${position}", StringUtils.isBlank(generateExaminationEntity.getPositions()) ? StringUtils.EMPTY : generateExaminationEntity.getPositions())
.replace("${question_type}", StringUtils.join(generateExaminationEntity.getQuestionType(), ",")); .replace("${question_type}", StringUtils.join(generateExaminationEntity.getQuestionType(), ","));
Message userMessage = new Message(); Message userMessage = new Message();
......
...@@ -20,6 +20,8 @@ public class BizExaminationConvert { ...@@ -20,6 +20,8 @@ public class BizExaminationConvert {
entity.setLanguage(model.getLanguage()); entity.setLanguage(model.getLanguage());
entity.setPositions(model.getPositions()); entity.setPositions(model.getPositions());
entity.setExaminationDetail(model.getExaminationDetail()); entity.setExaminationDetail(model.getExaminationDetail());
entity.setFileUrl(model.getFileUrl());
entity.setContent(model.getContent());
entity.setIsDeleted(model.getIsDeleted()); entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator()); entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime()); entity.setCreatedTime(model.getCreatedTime());
...@@ -42,6 +44,8 @@ public class BizExaminationConvert { ...@@ -42,6 +44,8 @@ public class BizExaminationConvert {
model.setLanguage(entity.getLanguage()); model.setLanguage(entity.getLanguage());
model.setPositions(entity.getPositions()); model.setPositions(entity.getPositions());
model.setExaminationDetail(entity.getExaminationDetail()); model.setExaminationDetail(entity.getExaminationDetail());
model.setFileUrl(entity.getFileUrl());
model.setContent(entity.getContent());
model.setIsDeleted(entity.getIsDeleted()); model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator()); model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime()); model.setCreatedTime(entity.getCreatedTime());
...@@ -64,6 +68,8 @@ public class BizExaminationConvert { ...@@ -64,6 +68,8 @@ public class BizExaminationConvert {
dto.setLanguage(entity.getLanguage()); dto.setLanguage(entity.getLanguage());
dto.setPositions(entity.getPositions()); dto.setPositions(entity.getPositions());
dto.setExaminationDetail(entity.getExaminationDetail()); dto.setExaminationDetail(entity.getExaminationDetail());
dto.setFileUrl(entity.getFileUrl());
dto.setContent(entity.getContent());
dto.setIsDeleted(entity.getIsDeleted()); dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator()); dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime()); dto.setCreatedTime(entity.getCreatedTime());
...@@ -86,6 +92,8 @@ public class BizExaminationConvert { ...@@ -86,6 +92,8 @@ public class BizExaminationConvert {
entity.setLanguage(dto.getLanguage()); entity.setLanguage(dto.getLanguage());
entity.setPositions(dto.getPositions()); entity.setPositions(dto.getPositions());
entity.setExaminationDetail(dto.getExaminationDetail()); entity.setExaminationDetail(dto.getExaminationDetail());
entity.setFileUrl(dto.getFileUrl());
entity.setContent(dto.getContent());
entity.setIsDeleted(dto.getIsDeleted()); entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator()); entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime()); entity.setCreatedTime(dto.getCreatedTime());
......
...@@ -135,6 +135,30 @@ public class BizExaminationDto { ...@@ -135,6 +135,30 @@ public class BizExaminationDto {
public void setExaminationDetail(java.lang.String examinationDetail){ public void setExaminationDetail(java.lang.String examinationDetail){
this.examinationDetail = examinationDetail; this.examinationDetail = examinationDetail;
}
/** file_url
*文件地址
*/
private java.lang.String fileUrl;
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
/** content
*输入文本
*/
private java.lang.String content;
public java.lang.String getContent(){
return this.content;
}
public void setContent(java.lang.String content){
this.content = content;
} }
/** is_deleted /** is_deleted
*是否删除 Y 是 N 否 *是否删除 Y 是 N 否
......
...@@ -29,6 +29,36 @@ public class ExaminationDto { ...@@ -29,6 +29,36 @@ public class ExaminationDto {
private String positions; private String positions;
private List<String> questionType;
private String content;
private String fileUrl;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public List<String> getQuestionType() {
return questionType;
}
public void setQuestionType(List<String> questionType) {
this.questionType = questionType;
}
public Integer getTotalScore() { public Integer getTotalScore() {
return totalScore; return totalScore;
} }
......
...@@ -135,6 +135,30 @@ public class BizExaminationEntity { ...@@ -135,6 +135,30 @@ public class BizExaminationEntity {
public void setExaminationDetail(java.lang.String examinationDetail){ public void setExaminationDetail(java.lang.String examinationDetail){
this.examinationDetail = examinationDetail; this.examinationDetail = examinationDetail;
}
/** file_url
*文件地址
*/
private java.lang.String fileUrl;
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
/** content
*输入文本
*/
private java.lang.String content;
public java.lang.String getContent(){
return this.content;
}
public void setContent(java.lang.String content){
this.content = content;
} }
/** is_deleted /** is_deleted
*是否删除 Y 是 N 否 *是否删除 Y 是 N 否
......
...@@ -23,8 +23,38 @@ public class ExaminationEntity { ...@@ -23,8 +23,38 @@ public class ExaminationEntity {
private String positions; private String positions;
private List<String> questionType;
private List<ExaminationDetail> examinationDetails; private List<ExaminationDetail> examinationDetails;
private String content;
private String fileUrl;
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFileUrl() {
return fileUrl;
}
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
public List<String> getQuestionType() {
return questionType;
}
public void setQuestionType(List<String> questionType) {
this.questionType = questionType;
}
public Integer getTotalScore() { public Integer getTotalScore() {
return totalScore; return totalScore;
} }
......
...@@ -202,6 +202,38 @@ public class BizExaminationModel extends BaseModelClass implements Serializable ...@@ -202,6 +202,38 @@ public class BizExaminationModel extends BaseModelClass implements Serializable
} }
/** file_url
*文件地址
*/
private java.lang.String fileUrl;
@Column(name = "file_url",length = 150)
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
super.addValidField("fileUrl");
}
/** content
*输入文本
*/
private java.lang.String content;
@Column(name = "content",length = 2147483647)
public java.lang.String getContent(){
return this.content;
}
public void setContent(java.lang.String content){
this.content = content;
super.addValidField("content");
}
/** is_deleted /** is_deleted
*是否删除 Y 是 N 否 *是否删除 Y 是 N 否
*/ */
......
...@@ -59,4 +59,11 @@ public interface ExaminationRest extends BaseRest { ...@@ -59,4 +59,11 @@ public interface ExaminationRest extends BaseRest {
*/ */
void batchDelete(@RequestBody ExaminationBatchDeleteDto dto); void batchDelete(@RequestBody ExaminationBatchDeleteDto dto);
/**
* 试卷文件下载
*
* @param examinationId 试卷ID
*/
String downloadExamination(@RequestParam(value = "examinationId") String examinationId);
} }
...@@ -48,9 +48,10 @@ public class ExaminationRestImpl implements ExaminationRest { ...@@ -48,9 +48,10 @@ public class ExaminationRestImpl implements ExaminationRest {
Assert.notBlank(generateExaminationDto.getLanguage()); Assert.notBlank(generateExaminationDto.getLanguage());
Assert.notBlank(generateExaminationDto.getTitle()); Assert.notBlank(generateExaminationDto.getTitle());
Assert.notBlank(generateExaminationDto.getLevel()); Assert.notBlank(generateExaminationDto.getLevel());
Assert.notBlank(generateExaminationDto.getPositions()); // Assert.notBlank(generateExaminationDto.getPositions());
Assert.notEmpty(generateExaminationDto.getQuestionType()); Assert.notEmpty(generateExaminationDto.getQuestionType());
Assert.notNull(generateExaminationDto.getN()); Assert.notNull(generateExaminationDto.getN());
Assert.isTrue(generateExaminationDto.getN() <= 20,"总题数不可大于20题");
UserBaseEntity currentUser = BlContext.getCurrentUser(); UserBaseEntity currentUser = BlContext.getCurrentUser();
GenerateExaminationEntity generateExaminationEntity = new GenerateExaminationEntity(); GenerateExaminationEntity generateExaminationEntity = new GenerateExaminationEntity();
...@@ -89,11 +90,18 @@ public class ExaminationRestImpl implements ExaminationRest { ...@@ -89,11 +90,18 @@ public class ExaminationRestImpl implements ExaminationRest {
@Override @Override
public void batchDelete(ExaminationBatchDeleteDto dto) { public void batchDelete(ExaminationBatchDeleteDto dto) {
Assert.notEmpty(dto.getExaminationIds(),"删除ID不能为空"); Assert.notEmpty(dto.getExaminationIds(), "删除ID不能为空");
UserBaseEntity currentUser = BlContext.getCurrentUser(); UserBaseEntity currentUser = BlContext.getCurrentUser();
boolean deleted = examinationService.batchDelete(dto.getExaminationIds(), currentUser.getUserId()); boolean deleted = examinationService.batchDelete(dto.getExaminationIds(), currentUser.getUserId());
if (!deleted){ if (!deleted) {
throw new BusinessException("删除异常"); throw new BusinessException("删除异常");
} }
} }
@Override
public String downloadExamination(String examinationId) {
Assert.notBlank(examinationId, "examinationId 不能为空");
UserBaseEntity currentUser = BlContext.getCurrentUser();
return examinationService.downloadExamination(examinationId, currentUser.getUserId());
}
} }
...@@ -204,4 +204,14 @@ public class ExaminationTest { ...@@ -204,4 +204,14 @@ public class ExaminationTest {
String query; String query;
Long userId; Long userId;
} }
@Test
public void text_genereateExaminationFile() {
String examinationId = "EXAMINATION_75ad7043b8064640a3eb222a0c6ab59b";
Long userId = 198L;
String url = examinationService.downloadExamination(examinationId, userId);
System.out.println(url);
}
} }
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