From e310dfdc93c20ac0c3b5fcd1a95de298cfce2ae9 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期六, 07 二月 2026 10:28:55 +0800
Subject: [PATCH] 添加状态:停止服务-cgf
---
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/entity/Copywriting.java | 8 ++
jeecg-module-system/jeecg-system-start/src/main/resources/application.yml | 2
jeecg-module-system/jeecg-system-start/src/main/resources/application-docker.yml | 8 +-
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/contract/controller/ExcelImportController.java | 91 ++++++++++++++++++++++++++++++
jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml | 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/controller/CopywritingController.java | 13 ++++
6 files changed, 117 insertions(+), 7 deletions(-)
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/contract/controller/ExcelImportController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/contract/controller/ExcelImportController.java
index d62bd33..b4dc17b 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/contract/controller/ExcelImportController.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/contract/controller/ExcelImportController.java
@@ -1,13 +1,18 @@
package org.jeecg.modules.demo.contract.controller;
import com.alibaba.excel.EasyExcel;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.SerializationUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.undertow.util.Headers;
import jakarta.servlet.http.HttpServletRequest;
+import kong.unirest.Unirest;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.demo.contract.entity.Contract;
@@ -16,6 +21,8 @@
import org.jeecg.modules.demo.contract.service.IContractService;
import org.jeecg.modules.demo.contract.service.ISemanticWordService;
import org.jeecg.modules.demo.copywriting.controller.CopywritingAsyncService;
+import org.jeecg.modules.demo.copywriting.entity.Copywriting;
+import org.jeecg.modules.demo.copywriting.service.ICopywritingService;
import org.jeecg.modules.listener.ExcelDataListener;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysUserService;
@@ -26,8 +33,12 @@
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
+import java.net.http.HttpResponse;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
+import java.util.Random;
/**
* 閫傞厤鏂癊xcel鍒楃殑瀵煎叆鎺ュ彛鎺у埗鍣�
@@ -43,6 +54,8 @@
private ISemanticWordService semanticWordService;
@Autowired
private IContractService contractService;
+ @Autowired
+ public ICopywritingService copywritingService;
/**
* Excel鏂囦欢瀵煎叆鎺ュ彛锛堥�傞厤澶х被銆佸搧鐗岀瓑浜斿垪锛�
* @return 瀵煎叆缁撴灉
@@ -152,5 +165,83 @@
return Result.OK("寮�濮嬬敓鎴愶紝浠诲姟宸叉彁浜よ嚦鍚庡彴澶勭悊");
}
}
+
+ public static String getRandomElementFromArray(String[] strArray) {
+ // 1. 鏍¢獙鏁扮粍鍚堟硶鎬э細绌烘暟缁�/Null鐩存帴杩斿洖null锛岄伩鍏嶅紓甯�
+ if (strArray == null || strArray.length == 0) {
+ return null;
+ }
+ // 2. 鍒涘缓闅忔満鏁扮敓鎴愬櫒锛岀敓鎴�0鍒版暟缁勯暱搴�-1鐨勯殢鏈虹储寮�
+ Random random = new Random();
+ int randomIndex = random.nextInt(strArray.length);
+ // 3. 鏍规嵁闅忔満绱㈠紩杩斿洖瀵瑰簲鍏冪礌
+ return strArray[randomIndex];
+ }
+
+ private static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+ /**
+ * 鏂规硶1锛氳繑鍥炲綋鍓嶆椂闂寸殑瀹屾暣鏍煎紡鍖栧瓧绗︿覆锛坹yyy-MM-dd HH:mm:ss锛�
+ * @return 鏍煎紡鍖栧悗鐨勬椂闂村瓧绗︿覆锛屽锛�2026-02-06 20:15:30
+ */
+ public static String getCurrentTimeStr() {
+ return LocalDateTime.now().format(DEFAULT_FORMATTER);
+ }
+
+ @RequiresPermissions("contract:contract:batchPublish")
+ @PostMapping("/batchPublish")
+ public Result<String> batchPublish(@RequestParam("contractId") String contractId) {
+ if (contractId.isEmpty()) {
+ return Result.error("鍚堝悓缂栧彿涓嶈兘涓虹┖锛�");
+ }
+ String[] arr = new String[]{"14457","28879","20838"};
+ QueryWrapper<Copywriting> wrapper = new QueryWrapper<>();
+// 鎵嬪姩鎷兼帴 LEFT JOIN 鍜岀瓫閫夋潯浠�
+ wrapper.select("copywriting.*")
+ .inSql("word_id", // 浣跨敤姝g‘鐨勫叧鑱斿瓧娈� word_id
+ "SELECT id FROM semantic_word WHERE contract_id = '" + contractId + "'");
+ wrapper.isNull("order_nid");
+ wrapper.eq("status",3);
+ List<Copywriting> copywritingList = copywritingService.list(wrapper);
+ if (copywritingList.isEmpty()) {
+ return Result.error("璇ュ悎鍚屼笉瀛樺湪鐘舵�佷负瀹℃牳鍙彂绋跨殑鏂囨");
+ }
+ for (Copywriting copywriting : copywritingList) {
+ kong.unirest.HttpResponse<String> response = Unirest.post("http://8.138.187.158:8082/api/media/send")
+ .field("api_key", "sk_4c8f6a970de896e232909e2959254441")
+ .field("resource_id", getRandomElementFromArray(arr))
+ .field("title", copywriting.getTitle())
+ .field("content", copywriting.getText())
+ .field("remark", getCurrentTimeStr())
+ .field("third_id", copywriting.getCreateBy())
+ .asString();
+ // 1. 鏍¢獙鍝嶅簲鐘舵�佸拰鍝嶅簲浣撻潪绌�
+ if (response != null && response.getStatus() == 200 && StringUtils.isNotBlank(response.getBody())) {
+ // 2. 瑙f瀽JSON鍝嶅簲浣�
+ JSONObject responseJson = JSON.parseObject(response.getBody());
+
+ // 3. 鏍¢獙code鏄惁涓�1锛堟姇绋挎垚鍔燂級锛屽啀鎻愬彇order_nid
+ if (responseJson.getInteger("code") == 1) {
+ JSONObject dataObj = responseJson.getJSONObject("data");
+ if (dataObj != null && dataObj.containsKey("order_nid")) {
+ // 鑾峰彇order_nid锛堣浆涓篠tring锛岄�傞厤Copywriting鐨刼rderNid瀛楁绫诲瀷锛�
+ String orderNid = dataObj.get("order_nid").toString();
+
+ // 4. 璧嬪�煎苟鏇存柊鏁版嵁搴�
+ copywriting.setOrderNid(orderNid);
+ copywriting.setStatus("4");
+ copywritingService.updateById(copywriting);
+ } else {
+ // 鏃ュ織璁板綍锛氬搷搴斾綋鏃燿ata鎴杘rder_nid瀛楁
+ System.err.println("鎶曠鎴愬姛浣嗘湭鑾峰彇鍒皁rder_nid锛屽搷搴斾綋锛�" + response.getBody());
+ }
+ } else {
+ // 鏃ュ織璁板綍锛氭帴鍙h繑鍥為潪鎴愬姛鐘舵��
+ System.err.println("鎶曠澶辫触锛屽搷搴斾綋锛�" + response.getBody());
+ }
+ }
+ }
+ return Result.ok("鎵归噺鎶曠鎴愬姛锛�");
+ }
}
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 bdcc1f2..76eb289 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
@@ -104,9 +104,20 @@
}
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);
for (Copywriting item : pageList.getRecords()) {
diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/entity/Copywriting.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/entity/Copywriting.java
index 15ccc84..ed17113 100644
--- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/entity/Copywriting.java
+++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/demo/copywriting/entity/Copywriting.java
@@ -96,6 +96,10 @@
@Dict(dicCode = "fb_status")
@Schema(description = "鍙戝竷鐘舵��")
private java.lang.String outStatus;
+
+ @Excel(name = "璁㈠崟缂栧彿", width = 15)
+ @Schema(description = "璁㈠崟缂栧彿")
+ private java.lang.String orderNid;
/**鍙戝竷鏃堕棿*/
@Excel(name = "鍙戝竷鏃堕棿", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@@ -111,4 +115,8 @@
@TableField(exist = false)
private String wordLike;
+
+
+ @TableField(exist = false)
+ private String contractId;
}
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
index 8636646..54803b0 100644
--- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml
@@ -178,7 +178,7 @@
data:
redis:
database: 0
- host: 172.19.0.1
+ host: 47.92.103.110
port: 6379
password: 'win2020!'
#mybatis plus 璁剧疆
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-docker.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-docker.yml
index 7cd649d..cb94cb8 100644
--- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-docker.yml
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-docker.yml
@@ -161,9 +161,9 @@
slow-sql-millis: 5000
datasource:
master:
- url: jdbc:mysql://jeecg-boot-mysql:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
+ url: jdbc:mysql://172.28.46.15:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
- password: root
+ password: win2020!
driver-class-name: com.mysql.cj.jdbc.Driver
# 澶氭暟鎹簮閰嶇疆
#multi-datasource1:
@@ -175,9 +175,9 @@
data:
redis:
database: 0
- host: 127.0.0.1
+ host: 172.28.46.15
port: 6379
- password:
+ password: 'win2020!'
#mybatis plus 璁剧疆
mybatis-plus:
mapper-locations: classpath*:org/jeecg/**/xml/*Mapper.xml
diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml
index d14059f..96fa617 100644
--- a/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml
+++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application.yml
@@ -2,7 +2,7 @@
application:
name: jeecg-system
profiles:
- active: 'dev'
+ active: 'docker'
robinsql:
url: jdbc:mysql://114.215.124.206:3306/geo?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
--
Gitblit v1.8.0