Commit 831f1dcb authored by alex yao's avatar alex yao

feat: 智能出题

parent f091929b
......@@ -44,4 +44,11 @@ public interface ExaminationService {
* @param userId 用户ID
*/
List<ExaminationEntity> getList(String query, Long userId);
/**
* 批量删除
* @param examinationIds 试卷ID
* @param userId 用户ID
*/
boolean batchDelete(List<String> examinationIds, Long userId);
}
......@@ -203,6 +203,25 @@ public class ExaminationServiceImpl implements ExaminationService {
return res;
}
@Override
public boolean batchDelete(List<String> examinationIds, Long userId) {
ExaminationQueryCondition condition = new ExaminationQueryCondition();
condition.setExaminationIds(examinationIds);
condition.setMemberId(userId);
List<ExaminationQueryItem> examinationQueryItems = bizExaminationService.examinationQuery(condition, null);
if (CollectionUtils.isNotEmpty(examinationQueryItems)) {
try {
for (ExaminationQueryItem examinationQueryItem : examinationQueryItems) {
bizExaminationService.deletedById(examinationQueryItem.getId());
}
} catch (Exception e) {
logger.error("删除试卷失败:", e);
return false;
}
}
return true;
}
private Message[] buildMessage(String prompt, GenerateExaminationEntity generateExaminationEntity) {
String fileContent = generateExaminationEntity.getPositions();
if (StringUtils.isNoneBlank(generateExaminationEntity.getFileUrl())) {
......
package cn.com.poc.writing.dto;
import java.util.List;
/**
* @author 52747
* @date 2025/8/15
*/
public class ExaminationBatchDeleteDto {
private List<String> examinationIds;
public List<String> getExaminationIds() {
return examinationIds;
}
public void setExaminationIds(List<String> examinationIds) {
this.examinationIds = examinationIds;
}
}
......@@ -21,4 +21,5 @@ from
where is_deleted = 'N'
<< and member_id = :memberId>>
<< and LOCATE(:query,title) >>
<< and examination_id in (:examinationIds) >>
order by MODIFIED_TIME desc
\ No newline at end of file
package cn.com.poc.writing.query;
package cn.com.poc.writing.query;
import java.io.Serializable;
import java.util.List;
/**
* Query Condition class for ExaminationQuery
*/
public class ExaminationQueryCondition implements Serializable{
public class ExaminationQueryCondition implements Serializable {
private static final long serialVersionUID = 1L;
private java.lang.Long memberId;
public java.lang.Long getMemberId(){
public java.lang.Long getMemberId() {
return this.memberId;
}
public void setMemberId(java.lang.Long memberId){
public void setMemberId(java.lang.Long memberId) {
this.memberId = memberId;
}
private java.lang.String query;
public java.lang.String getQuery(){
public java.lang.String getQuery() {
return this.query;
}
public void setQuery(java.lang.String query){
public void setQuery(java.lang.String query) {
this.query = query;
}
private List<String> examinationIds;
public List<String> getExaminationIds() {
return examinationIds;
}
public void setExaminationIds(List<String> examinationIds) {
this.examinationIds = examinationIds;
}
}
\ No newline at end of file
package cn.com.poc.writing.rest;
import cn.com.poc.writing.dto.ExaminationConfigItemDto;
import cn.com.poc.writing.dto.ExaminationDetailDto;
import cn.com.poc.writing.dto.ExaminationDto;
import cn.com.poc.writing.dto.GenerateExaminationDto;
import cn.com.poc.writing.dto.*;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
......@@ -54,4 +51,12 @@ public interface ExaminationRest extends BaseRest {
*/
List<ExaminationDto> getList(@RequestParam(value = "query", required = false) String query);
/**
* 批量删除
*
* @param dto
*/
void batchDelete(@RequestBody ExaminationBatchDeleteDto dto);
}
......@@ -4,6 +4,7 @@ import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.poc.writing.aggregate.ExaminationService;
import cn.com.poc.writing.dto.ExaminationBatchDeleteDto;
import cn.com.poc.writing.dto.ExaminationConfigItemDto;
import cn.com.poc.writing.dto.ExaminationDto;
import cn.com.poc.writing.dto.GenerateExaminationDto;
......@@ -11,6 +12,7 @@ import cn.com.poc.writing.entity.ExaminationConfigItemEntity;
import cn.com.poc.writing.entity.ExaminationEntity;
import cn.com.poc.writing.entity.GenerateExaminationEntity;
import cn.com.poc.writing.rest.ExaminationRest;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.hutool.core.bean.BeanUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component;
......@@ -84,4 +86,14 @@ public class ExaminationRestImpl implements ExaminationRest {
}
return result;
}
@Override
public void batchDelete(ExaminationBatchDeleteDto dto) {
Assert.notEmpty(dto.getExaminationIds(),"删除ID不能为空");
UserBaseEntity currentUser = BlContext.getCurrentUser();
boolean deleted = examinationService.batchDelete(dto.getExaminationIds(), currentUser.getUserId());
if (!deleted){
throw new BusinessException("删除异常");
}
}
}
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