jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -90,7 +90,7 @@ filterChainDefinitionMap.put("/sys/login", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/mLogin", "anon"); //登录接口排除 filterChainDefinitionMap.put("/api/robin/**", "anon"); //登录接口排除 filterChainDefinitionMap.put("/qaInfo/qaInfo/uploadHtml", "anon"); //存储网址文章排除 filterChainDefinitionMap.put("/qaInfo/qaInfo/**", "anon"); //存储网址文章排除 filterChainDefinitionMap.put("/mediaOrderRecords/mediaOrderRecords/list", "anon"); //登录接口排除 filterChainDefinitionMap.put("/sys/logout", "anon"); //登出接口排除 filterChainDefinitionMap.put("/sys/thirdLogin/**", "anon"); //第三方登录 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/contract/controller/ContractController.java
@@ -192,7 +192,7 @@ Contract contract = new Contract(); BeanUtils.copyProperties(contractPage, contract); contractService.saveMain(contract, contractPage.getContractFileList(),contractPage.getSemanticWordList()); // addContract(contract,contractPage.getSemanticWordList()); addContract(contract,contractPage.getSemanticWordList()); return Result.OK("添加成功!"); } @@ -609,7 +609,7 @@ contractFile.setContractId(one1.getId()); contractFileService.save(contractFile); } // addContract(contract,contract.getSemanticWordObjs()); addContract(contract,contract.getSemanticWordObjs()); return Result.OK("添加成功!"); } jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/customer/controller/CustomerController.java
@@ -344,7 +344,7 @@ contractFileService.save(contractFile); } // contractController.addContract(customer.getContract(),customer.getSemanticWordList()); contractController.addContract(customer.getContract(),customer.getSemanticWordList()); return Result.OK("添加成功!"); } } jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/qaInfo/controller/QaInfoController.java
@@ -277,7 +277,7 @@ @AutoLog(value = "接收并解析HTML文件") @Operation(summary = "接收并解析HTML文件") @PostMapping(value = "/uploadHtml") public Result<String> uploadHtml(@RequestParam("file") MultipartFile file) { public Result<QaInfo> uploadHtml(@RequestParam("file") MultipartFile file) { // 检查文件是否为空 if (file.isEmpty()) { return Result.error("上传文件不能为空"); @@ -306,16 +306,21 @@ addMessage(relatedArticles,htmlContent,qaInfo.getId()); QueryWrapper<QaInfo> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("answer", qaInfo.getAnswer()); queryWrapper.eq("question", qaInfo.getQuestion()); QaInfo qaInfoResult = qaInfoService.getOne(queryWrapper); if (qaInfoResult != null) { return Result.OK(qaInfoResult); } qaInfoService.saveMain(qaInfo, relatedArticles); // TODO: 解析HTML内容的业务逻辑 // 例如使用Jsoup解析: // Document doc = Jsoup.parse(htmlContent); // String title = doc.title(); // Elements paragraphs = doc.select("p"); qaInfoResult = qaInfoService.getOne(queryWrapper); qaInfoResult.setRelatedArticles(relatedArticleService.selectByMainId(qaInfo.getId())); // 这里仅做示例,返回解析成功的消息 return Result.OK("HTML文件解析成功,内容长度:" + htmlContent.length() + " 字符"); return Result.OK(qaInfoResult); } catch (UnsupportedEncodingException e) { log.error("HTML文件编码解析错误", e); return Result.error("文件编码解析错误:" + e.getMessage()); @@ -394,7 +399,7 @@ // 抓取全文(根据目标页面的class调整选择器,以下是通用方案) // 方案A:定位全文专属class(优先) Elements fullContentElements = targetDoc.select("div.article-content, div.content, article, #main-content"); Elements fullContentElements = targetDoc.select("div.article-content, div.content, article, #main-content, div.content_text"); if (!fullContentElements.isEmpty()) { return fullContentElements.text().trim(); } jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/qaInfo/entity/QaInfo.java
@@ -3,10 +3,9 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableLogic; import java.util.List; import com.baomidou.mybatisplus.annotation.*; import org.jeecg.common.constant.ProvinceCityArea; import org.jeecg.common.util.SpringContextUtils; import lombok.Data; @@ -60,4 +59,7 @@ @Excel(name = "回答", width = 15) @Schema(description = "回答") private String answer; @TableField(exist = false) private List<RelatedArticle> relatedArticles; }