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/contract/controller/ExcelImportController.java |   91 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 91 insertions(+), 0 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("鎵归噺鎶曠鎴愬姛锛�");
+    }
 }
 

--
Gitblit v1.8.0