From 2b66ac70a801d9b010cc8c77abdd2b09cdf94ae5 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期三, 11 二月 2026 10:16:27 +0800
Subject: [PATCH] 添加状态:停止服务-cgf
---
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/controller/CopywritingController.java | 142 ++++++++++++++++++++++++++++++-----------------
1 files changed, 90 insertions(+), 52 deletions(-)
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/controller/CopywritingController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/controller/CopywritingController.java
index 606b450..76163fb 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/controller/CopywritingController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/controller/CopywritingController.java
@@ -11,6 +11,8 @@
import com.alibaba.fastjson2.JSONObject;
import opennlp.tools.dictionary.serializer.Entry;
+import org.jeecg.modules.demo.copywritingScheme.entity.CopywritingScheme;
+import org.jeecg.modules.demo.copywritingScheme.service.ICopywritingSchemeService;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
import org.jetbrains.annotations.NotNull;
@@ -76,7 +78,9 @@
private ISemanticWordService semanticWordService;;
@Autowired
private ISysUserService sysUserService;
-
+
+ @Autowired
+ private ICopywritingSchemeService copywritingSchemeService;
/**
* 鍒嗛〉鍒楄〃鏌ヨ
*
@@ -104,8 +108,19 @@
}
if (StringUtils.isNotBlank(copywriting.getWordLike())){
queryWrapper.exists("SELECT 1 FROM semantic_word WHERE semantic_word.id = copywriting.word_id " +
- "AND semantic_word.word LIKE '%" + copywriting.getWordLike() + "%'");
+ "AND semantic_word.word LIKE '%" + copywriting.getWordLike() + "%'");
+ }
+ if (StringUtils.isNotBlank(copywriting.getContractId())) {
+ // 1. 鎷兼帴鍏宠仈 contact 琛ㄧ殑 EXISTS 瀛愭煡璇紝浣跨敤 contact.id 浣滀负澶栭敭鍏宠仈
+ // 2. 浣跨敤 MyBatis-Plus 鐨勫弬鏁板崰浣嶇閬垮厤 SQL 娉ㄥ叆锛岃�屼笉鏄洿鎺ュ瓧绗︿覆鎷兼帴
+ String existsSql = "SELECT 1 FROM semantic_word " +
+ "LEFT JOIN contract ON semantic_word.contract_id = contract.id " + // 鍏宠仈 contact 琛紙澶栭敭鍏宠仈锛�
+ "WHERE semantic_word.id = copywriting.word_id " +
+ "AND contract.id = " + copywriting.getContractId(); // 浣跨敤 contact 琛ㄧ殑 id 浣滀负鏉′欢
+
+ // 缁� QueryWrapper 璁剧疆鍙傛暟锛岄伩鍏� SQL 娉ㄥ叆
+ queryWrapper.exists(existsSql);
}
Page<Copywriting> page = new Page<Copywriting>(pageNo, pageSize);
IPage<Copywriting> pageList = copywritingService.page(page, queryWrapper);
@@ -269,78 +284,101 @@
@RequiresPermissions("copywriting:copywriting:aiCreateCopyWriting")
@RequestMapping(value = "/aiCreateCopyWriting", method = RequestMethod.POST)
public Result<?> aiCreateCopyWriting(
- @RequestParam("jianli") String jianli,
+ @RequestParam(name = "file", required = false) String jianli,
+ @RequestParam(name = "url", required = false) String jianli2,
@RequestParam String wenanyaoqiu,
@RequestParam String louchu,
@RequestParam String youshang,
@RequestParam String wenti,
- @RequestParam String user) {
- return getResult(jianli, wenanyaoqiu, louchu, youshang, wenti, user);
+ @RequestParam String user,
+ @RequestParam String csId) {
+ if (csId == null){
+ csId = "2020795745607319553";
+ }
+ CopywritingScheme copywritingScheme = new CopywritingScheme();
+ copywritingScheme.setId(csId);
+ return getResult(jianli, jianli2, wenanyaoqiu, louchu, youshang, wenti, user, copywritingScheme);
}
- public Result<?> getResult(String jianli, String wenanyaoqiu, String louchu, String youshang, String wenti, String user) {
- if (jianli == null || jianli.equals("")) {
- return Result.error("璇烽�夋嫨鏂囦欢");
+ public Result<?> getResult(String jianli, String jianli2, String wenanyaoqiu, String louchu, String youshang, String wenti, String user, CopywritingScheme cs) {
+ QueryWrapper<CopywritingScheme> copywritingSchemeQueryWrapper = new QueryWrapper<>();
+
+ if (cs.getId() == null){
+ cs.setId("2020795745607319553");
+ }
+ copywritingSchemeQueryWrapper.eq("id", cs.getId());
+ List<CopywritingScheme> list = copywritingSchemeService.list(copywritingSchemeQueryWrapper);
+ if(list.size()==0) {
+ return Result.error("鏂规涓嶅瓨鍦�");
+ } else {
+ cs = list.get(0);
}
// 閰嶇疆淇℃伅
String serverFileRoot = uploadPath;
- String workflowUrl = "http://14.103.174.44/v1/workflows/run";
- String fileUploadUrl = "http://14.103.174.44/v1/files/upload"; // 鏂囦欢涓婁紶鎺ュ彛锛堝亣璁撅級
- String authToken = "app-J1Tqytg0ZetcrVTF2fVHHY8B";
+ String workflowUrl = cs.getWorkflowUrl();
+ String fileUploadUrl = cs.getFileUploadUrl(); // 鏂囦欢涓婁紶鎺ュ彛锛堝亣璁撅級
+ String authToken = cs.getAuthToken();
String userId = user;
- String appId = "cf85fe4d-b76b-4c4c-801a-1336c880d473";
+ String appId = cs.getAppId();
try {
- // 姝ラ1锛氫笂浼犵畝鍘嗘枃浠讹紝鑾峰彇 upload_file_id 鍒楄〃
- List<String> jianliFileList = Arrays.asList(jianli.split(","));
- List<String> jianliFileIds = new ArrayList<>();
- for (String fileName : jianliFileList) {
- // 淇锛氬彧杩囨护璺緞閬嶅巻瀛楃锛屼繚鐣欏悎娉曠殑 /
- String safeFileName = File.separator + fileName.trim()
- // 杩囨护 ../ 鍜� ./ 搴忓垪锛堥槻姝㈣闂笂绾х洰褰曪級
- .replaceAll("\\.\\./", "")
- .replaceAll("\\./", "");
+ Map<String, Object> inputs = new HashMap<>();
+ if (jianli != null) {
+ // 姝ラ2锛氭瀯寤� inputs 鍙傛暟锛堟寜鎺ュ彛瑕佹眰鏍煎紡锛�
+ List<String> jianliFileList = Arrays.asList(jianli.split(","));
+ if (jianliFileList != null && !jianliFileList.isEmpty()) {
+ // 姝ラ1锛氫笂浼犵畝鍘嗘枃浠讹紝鑾峰彇 upload_file_id 鍒楄〃
+ List<String> jianliFileIds = new ArrayList<>();
+ for (String fileName : jianliFileList) {
+ // 淇锛氬彧杩囨护璺緞閬嶅巻瀛楃锛屼繚鐣欏悎娉曠殑 /
+ String safeFileName = File.separator + fileName.trim()
+ // 杩囨护 ../ 鍜� ./ 搴忓垪锛堥槻姝㈣闂笂绾х洰褰曪級
+ .replaceAll("\\.\\./", "")
+ .replaceAll("\\./", "");
// 杩涗竴姝ュ畨鍏ㄦ牎楠岋細纭繚鎷兼帴鍚庣殑鏂囦欢璺緞鍦ㄦ湇鍔″櫒鏍圭洰褰曚笅锛堟牳蹇冨畨鍏ㄦ帾鏂斤級
- File file = new File(serverFileRoot + safeFileName);
- String canonicalPath = file.getCanonicalPath(); // 鑾峰彇鏍囧噯鍖栬矾寰勶紙鑷姩瑙f瀽 ../ 绛夛級
- String canonicalRootPath = new File(serverFileRoot).getCanonicalPath();
+ File file = new File(serverFileRoot + safeFileName);
+ String canonicalPath = file.getCanonicalPath(); // 鑾峰彇鏍囧噯鍖栬矾寰勶紙鑷姩瑙f瀽 ../ 绛夛級
+ String canonicalRootPath = new File(serverFileRoot).getCanonicalPath();
// 鏍¢獙锛氬鏋滄枃浠惰矾寰勪笉鍦ㄦ湇鍔″櫒鏍圭洰褰曚笅锛岃涓洪潪娉曡姹�
- if (!canonicalPath.startsWith(canonicalRootPath)) {
- throw new RuntimeException("闈炴硶鏂囦欢璁块棶锛�" + fileName);
- }
+ if (!canonicalPath.startsWith(canonicalRootPath)) {
+ throw new RuntimeException("闈炴硶鏂囦欢璁块棶锛�" + fileName);
+ }
// 鍐嶅垽鏂枃浠舵槸鍚﹀瓨鍦�
- if (!file.exists() || !file.isFile()) {
- return Result.error("鏈嶅姟鍣ㄤ笉瀛樺湪鏂囦欢锛�" + safeFileName + "锛岃矾寰勶細" + file.getAbsolutePath());
+ if (!file.exists() || !file.isFile()) {
+ return Result.error("鏈嶅姟鍣ㄤ笉瀛樺湪鏂囦欢锛�" + safeFileName + "锛岃矾寰勶細" + file.getAbsolutePath());
+ }
+ // 璋冪敤鏂囦欢涓婁紶鎺ュ彛锛岃幏鍙� upload_file_id
+ String fileId = uploadFileToServer(file, fileUploadUrl, authToken);
+ jianliFileIds.add(fileId);
+ }
+
+
+ // 澶勭悊绠�鍘嗘枃浠讹紙jianli 鏄� variable_name锛屽搴旀帴鍙g殑 {variable_name}锛�
+ if (!jianliFileIds.isEmpty()) {
+ // 鑻ユ敮鎸佸涓枃浠讹紝鍙兘闇�瑕佹暟缁勫舰寮忥紱鍗曚釜鏂囦欢鍒欑洿鎺ユ斁瀵硅薄
+ List<Map<String, String>> jianliFiles = new ArrayList<>();
+ for (String fileId : jianliFileIds) {
+ Map<String, String> fileInfo = new HashMap<>();
+ fileInfo.put("transfer_method", "local_file"); // 鍥哄畾鍊硷紝鎺ュ彛瑕佹眰
+ fileInfo.put("upload_file_id", fileId); // 涓婁紶鏂囦欢杩斿洖鐨処D
+ fileInfo.put("type", "document"); // 鏂囦欢绫诲瀷锛屽 document/image 绛夛紙鎸夋帴鍙h姹傦級
+ jianliFiles.add(fileInfo);
+ }
+ inputs.put("jianli", jianliFiles); // jianli 瀵瑰簲 {variable_name}
+ } else {
+ inputs.put("jianli", new ArrayList<>()); // 绌烘枃浠跺垪琛�
+ }
}
- // 璋冪敤鏂囦欢涓婁紶鎺ュ彛锛岃幏鍙� upload_file_id
- String fileId = uploadFileToServer(file, fileUploadUrl, authToken);
- jianliFileIds.add(fileId);
}
- // 姝ラ2锛氭瀯寤� inputs 鍙傛暟锛堟寜鎺ュ彛瑕佹眰鏍煎紡锛�
- Map<String, Object> inputs = new HashMap<>();
-
- // 澶勭悊绠�鍘嗘枃浠讹紙jianli 鏄� variable_name锛屽搴旀帴鍙g殑 {variable_name}锛�
- if (!jianliFileIds.isEmpty()) {
- // 鑻ユ敮鎸佸涓枃浠讹紝鍙兘闇�瑕佹暟缁勫舰寮忥紱鍗曚釜鏂囦欢鍒欑洿鎺ユ斁瀵硅薄
- List<Map<String, String>> jianliFiles = new ArrayList<>();
- for (String fileId : jianliFileIds) {
- Map<String, String> fileInfo = new HashMap<>();
- fileInfo.put("transfer_method", "local_file"); // 鍥哄畾鍊硷紝鎺ュ彛瑕佹眰
- fileInfo.put("upload_file_id", fileId); // 涓婁紶鏂囦欢杩斿洖鐨処D
- fileInfo.put("type", "document"); // 鏂囦欢绫诲瀷锛屽 document/image 绛夛紙鎸夋帴鍙h姹傦級
- jianliFiles.add(fileInfo);
- }
- inputs.put("jianli", jianliFiles); // jianli 瀵瑰簲 {variable_name}
- } else {
- inputs.put("jianli", new ArrayList<>()); // 绌烘枃浠跺垪琛�
+ if (jianli2 != null) {
+ inputs.put("jianli2", jianli2);
}
-
// 娣诲姞鍏朵粬鏂囨湰鍙傛暟
- inputs.put("wenanyaoqiu", wenanyaoqiu);
+ inputs.put("benchmarkUrl", wenanyaoqiu);
inputs.put("louchu", louchu);
inputs.put("youshang", youshang);
inputs.put("wenti", wenti);
@@ -358,7 +396,7 @@
// 杩炴帴瓒呮椂锛氬缓绔婽CP杩炴帴鐨勮秴鏃舵椂闂达紝鍗曚綅姣锛堝缓璁5绉掞級
factory.setConnectTimeout(5000);
// 璇诲彇瓒呮椂锛氱瓑寰呮湇鍔$鍝嶅簲鏁版嵁鐨勮秴鏃舵椂闂达紝鍗曚綅姣锛堟牴鎹帴鍙h�楁椂璋冩暣锛岃繖閲岃30绉掞級
- factory.setReadTimeout(100000);
+ factory.setReadTimeout(200000);
// 姝ラ4锛氳皟鐢ㄥ伐浣滄祦鎺ュ彛
RestTemplate restTemplate = new RestTemplate(factory);
HttpHeaders headers = new HttpHeaders();
--
Gitblit v1.8.0