diff --git a/pom.xml b/pom.xml
index c065703..83db302 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,6 +65,21 @@
jsch
0.1.55
+
+ com.itextpdf
+ itext7-core
+ 7.2.5
+ pom
+
+
+
+
+ com.itextpdf
+ font-asian
+ 7.2.5
+
+
+
diff --git a/src/main/java/com/example/sso/controller/Reward.java b/src/main/java/com/example/sso/controller/Reward.java
index be3daba..f581fee 100644
--- a/src/main/java/com/example/sso/controller/Reward.java
+++ b/src/main/java/com/example/sso/controller/Reward.java
@@ -30,7 +30,7 @@ public class Reward {
lock.lock();
try {
JSONObject dataa = rewards.getJSONObject("data");
- log.info("奖励数据 "+ rewards.toJSONString());
+ log.info(dataa.toJSONString());
String id = dataa.getString("id");
String timeConversionS = dataa.getString("shangcheheyanriqi");
String timeConversion = TimeUtil.timeConversions(timeConversionS);
@@ -105,9 +105,7 @@ public class Reward {
JSONObject widget1708503246372 = test.getJSONObject("_widget_1708503246372");
if (widget1708503246372 != null) {
-
fs_p1 = widget1708503246372.getString("name");
- log.info("有问题的数据==============" + fs_p1 );
}
}
@@ -122,15 +120,10 @@ public class Reward {
real_name = test1.getString("real_name");
id_card3331 = test1.getString("id_card");
}
- log.info("f_user_id++++++ " + f_user_id);
-
String flag = "";
-
-
// 奖励1
if (!f_user_id.equals("0") && !f_user_id.isEmpty() && f_user_id != null) {
- flag = "A";
JSONObject jiangli = new JSONObject();
jiangli.put("app_id", "65815f117de49256b1e67e75");
jiangli.put("entry_id", "658fce1d771e971c5816e475");
@@ -468,11 +461,12 @@ public class Reward {
}
+ flag = "完成";
}
// 奖励2
- if (f_user_idS != null && !f_user_idS.isEmpty() && !f_user_idS.equals("0") && flag.equals("A")) {
+ if (!f_user_idS.equals("0") && !f_user_idS.isEmpty() && f_user_idS != null && flag.equals("完成")) {
JSONObject jsonObject22 = new JSONObject();
jsonObject22.put("app_id", "65815f117de49256b1e67e75");
diff --git a/src/main/java/com/example/sso/test/C.java b/src/main/java/com/example/sso/test/C.java
index 2c74972..f8f5120 100644
--- a/src/main/java/com/example/sso/test/C.java
+++ b/src/main/java/com/example/sso/test/C.java
@@ -4,59 +4,154 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.example.sso.dao.QianDuan;
import com.example.sso.util.TimeUtil;
+import com.itextpdf.io.image.ImageData;
+import com.itextpdf.io.image.ImageDataFactory;
+import com.itextpdf.kernel.pdf.PdfDocument;
+import com.itextpdf.kernel.pdf.PdfWriter;
+import com.itextpdf.layout.Document;
+import com.itextpdf.layout.element.Image;
+import com.itextpdf.layout.element.Paragraph;
import lombok.extern.slf4j.Slf4j;
+import java.io.File;
+import java.io.IOException;
import java.text.ParseException;
@Slf4j
public class C {
- public static void main(String[] args) {{
- JSONObject jsonObject = QianDuan.i();
- Integer i = jsonObject.getInteger("integer");
- String id = jsonObject.getString("id");
- i += 1;
- Integer max = QianDuan.max();
- JSONArray fou = QianDuan.fou();
- log.info("c俄式" + i + id +max );
- for (Object o : fou) {
- JSONObject test = (JSONObject) o;
- Integer xuhao = test.getInteger("xuhao");
- if (i == xuhao) {
- i += 1;
+ public static void main(String[] args) {
+ C.createPdfWithTextAndImage("D:\\下载模板\\a.pdf","a","D:\\下载模板\\OIP-C.jpg");
+ }
+
+ public static void createPdfWithTextAndImage(String pdfPath, String text, String imagePath) {
+ try {
+ // 1. 创建PdfWriter和PdfDocument
+ PdfWriter writer = new PdfWriter(pdfPath);
+ PdfDocument pdfDoc = new PdfDocument(writer);
+ Document document = new Document(pdfDoc);
+
+ // 2. 添加文字内容
+ document.add(new Paragraph("文档标题")
+ .setFontSize(20)
+ .setBold());
+
+ // 添加多段落文字
+ String[] paragraphs = text.split("\n");
+ for (String para : paragraphs) {
+ document.add(new Paragraph(para)
+ .setFontSize(12)
+ .setMarginBottom(10));
}
+ // 3. 添加图片
+ if (imagePath != null && new File(imagePath).exists()) {
+ // 加载图片
+ ImageData imageData = ImageDataFactory.create(imagePath);
+ Image image = new Image(imageData);
+ // 设置图片属性
+ image.setAutoScale(true); // 自动缩放
+ image.setHorizontalAlignment(com.itextpdf.layout.properties.HorizontalAlignment.CENTER);
+ image.setMarginTop(20);
+ image.setMarginBottom(20);
+
+ document.add(image);
+ document.add(new Paragraph("图片说明")
+ .setFontSize(10)
+ .setItalic()
+ .setTextAlignment(com.itextpdf.layout.properties.TextAlignment.CENTER));
+ }
+
+ // 4. 关闭文档
+ document.close();
+
+ System.out.println("PDF创建成功: " + pdfPath);
+
+ } catch (IOException e) {
+ e.printStackTrace();
}
+ }
- if (i <= max) {
- JSONArray select = QianDuan.select(i);
- for (Object o : select ){
- JSONObject test = (JSONObject) o;
- String fsName = test.getString("fs_name");
- Integer integer = test.getJSONObject("fs_user").getInteger("dept_no");
- QianDuan.insert(id,i,fsName,integer);
+ public static void createPdfWithTextAndImagea(String pdfPath, String imagePath) {
+ try {
+ // 1. 创建PdfWriter和PdfDocument
+ PdfWriter writer = new PdfWriter(pdfPath);
+ PdfDocument pdfDoc = new PdfDocument(writer);
+ Document document = new Document(pdfDoc);
+
+ // 2. 添加文字内容
+ document.add(new Paragraph("文档标题")
+ .setFontSize(20)
+ .setBold());
+
+ // 3. 添加图片
+ if (imagePath != null && new File(imagePath).exists()) {
+ // 加载图片
+ ImageData imageData = ImageDataFactory.create(imagePath);
+ Image image = new Image(imageData);
+
+ // 设置图片属性
+ image.setAutoScale(true); // 自动缩放
+ image.setHorizontalAlignment(com.itextpdf.layout.properties.HorizontalAlignment.CENTER);
+ image.setMarginTop(20);
+ image.setMarginBottom(20);
+
+ document.add(image);
+ document.add(new Paragraph("图片说明")
+ .setFontSize(10)
+ .setItalic()
+ .setTextAlignment(com.itextpdf.layout.properties.TextAlignment.CENTER));
}
- }else {
+ // 4. 关闭文档
+ document.close();
- JSONArray select = QianDuan.select(1);
- for (Object o : select ){
- JSONObject test = (JSONObject) o;
- String fsName = test.getString("fs_name");
- Integer integer = test.getJSONObject("fs_user").getInteger("dept_no");
- QianDuan.insert(id,1,fsName,integer);
-
-
- }
+ System.out.println("PDF创建成功: " + pdfPath);
+ } catch (IOException e) {
+ e.printStackTrace();
}
+ }
+
+ public static void createPdfWithTextAndImageb(String pdfPath, String text) {
+ try {
+ // 1. 创建PdfWriter和PdfDocument
+ PdfWriter writer = new PdfWriter(pdfPath);
+ PdfDocument pdfDoc = new PdfDocument(writer);
+ Document document = new Document(pdfDoc);
+
+ // 2. 添加文字内容
+ document.add(new Paragraph("文档标题")
+ .setFontSize(20)
+ .setBold());
+
+ // 添加多段落文字
+ String[] paragraphs = text.split("\n");
+ for (String para : paragraphs) {
+ document.add(new Paragraph(para)
+ .setFontSize(12)
+ .setMarginBottom(10));
+ }
+
+
+
+ // 4. 关闭文档
+ document.close();
+
+ System.out.println("PDF创建成功: " + pdfPath);
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+
}
- }
-}
diff --git a/src/main/java/com/example/sso/test/D.java b/src/main/java/com/example/sso/test/D.java
index 1821008..2266282 100644
--- a/src/main/java/com/example/sso/test/D.java
+++ b/src/main/java/com/example/sso/test/D.java
@@ -1,20 +1,33 @@
package com.example.sso.test;
import java.text.SimpleDateFormat;
+import java.time.OffsetDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Calendar;
+import java.util.Date;
+import java.util.TimeZone;
public class D {
public static void main(String[] args) {
- Calendar calendar = Calendar.getInstance();
+ String utcTimeString = "2025-07-14T07:56:50.000Z";
- // 获取当前月份
- int year = calendar.get(Calendar.YEAR);
- int month = calendar.get(Calendar.MONTH) + 1; // 月份从 0 开始,所以要加 1
+ // 1. 直接解析为OffsetDateTime
+ OffsetDateTime utcTime = OffsetDateTime.parse(utcTimeString);
- // 格式化为 "YYYY-MM"
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
- String formattedMonth = dateFormat.format(calendar.getTime());
+ // 2. 转换为北京时间(UTC+8)
+ ZonedDateTime beijingTime = utcTime.atZoneSameInstant(ZoneId.of("Asia/Shanghai"));
- System.out.println("Current Month: " + formattedMonth);
+ // 3. 格式化输出
+ String formattedTime = beijingTime.format(
+ DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
+ );
+
+ System.out.println("UTC时间: " + utcTimeString);
+ System.out.println("格式化输出: " + formattedTime);
}
+
+
+
}
diff --git a/src/main/java/com/example/sso/test/Q.java b/src/main/java/com/example/sso/test/Q.java
index 010e7af..24628f9 100644
--- a/src/main/java/com/example/sso/test/Q.java
+++ b/src/main/java/com/example/sso/test/Q.java
@@ -1,11 +1,16 @@
package com.example.sso.test;
import com.alibaba.fastjson.JSONArray;
+import com.example.sso.dao.Photo;
import com.example.sso.dao.ThreeOne;
+import java.io.IOException;
+
public class Q {
- public static void main(String[] args) {
- JSONArray array = ThreeOne.array("8613");
- System.out.println(array);
+ public static void main(String[] args) throws IOException {
+ Photo.startPDF("D:\\下载模板\\a.pdf");
+ Photo.appendTextSection("犯得上反对");
+ Photo.appendImageSection("D:\\下载模板\\OIP-C.jpg");
+ Photo.closePDF();
}
}
diff --git a/src/main/java/com/example/sso/test/R.java b/src/main/java/com/example/sso/test/R.java
deleted file mode 100644
index 135a261..0000000
--- a/src/main/java/com/example/sso/test/R.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.example.sso.test;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.example.sso.dao.*;
-import com.example.sso.util.APIUtils;
-import com.example.sso.util.TimeUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.text.ParseException;
-@RestController
-@Slf4j
-public class R {
- // @PostMapping("/reward")
-
- public String reward(@RequestBody JSONObject rewards) throws ParseException {
-
-
-
- log.info("奖励数据 "+ rewards.toJSONString());
-
-
- return "";
- }
-}
diff --git a/src/main/java/com/example/sso/util/APIUtils.java b/src/main/java/com/example/sso/util/APIUtils.java
index 2e55261..57f1e9c 100644
--- a/src/main/java/com/example/sso/util/APIUtils.java
+++ b/src/main/java/com/example/sso/util/APIUtils.java
@@ -31,9 +31,15 @@ import org.apache.http.util.EntityUtils;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
+import java.io.BufferedInputStream;
import java.io.File;
+import java.io.FileOutputStream;
import java.io.IOException;
+import java.net.URL;
import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.*;
@@ -869,6 +875,61 @@ public class APIUtils {
}
+ public static String hkfile(String fileUrl) {
+ String path = "";
+ // String fileUrl = "https://www.jiyuankeshang.com/_/file/get_file?bucket=jdy-file&key=518b56ae-3c68-4c61-bd68-b5eb18427d08&filename=%E6%BC%94%E7%A4%BA%E6%95%B0%E6%8D%AE.xlsx&expires=1742968799&token=Ko7O1AqDnF3mL1LE:r6gj1iTAgv2FTQSUALYf4_-uqSY="; // 替换为你要下载的文件URL
+ String desktopPath = "/home/java/dpapp8090/pdf/";
+ String folderName = "hkfile";
+ // String substringAfterThirdDot = V5utils.getSubstringAfterThirdDot(fileUrl, 3);
+ String substringAfterThirdDot = "";
+ if (fileUrl.contains(".png")) {
+ substringAfterThirdDot = ".png";
+ } else if (fileUrl.contains(".pdf")) {
+ substringAfterThirdDot = ".pdf";
+ } else if (fileUrl.contains(".xlsx")) {
+ substringAfterThirdDot = ".xlsx";
+ }else if (fileUrl.contains(".docx")){
+ substringAfterThirdDot = ".docx";
+ }else if (fileUrl.contains(".jpg")){
+ substringAfterThirdDot = ".jpg";
+ }
+ String uuid = String.valueOf(UUID.randomUUID());
+ String fileName = uuid + substringAfterThirdDot; // 你可以根据URL动态生成文件名
+
+ try {
+ // 创建文件夹路径
+ Path folderPath = Paths.get(desktopPath, folderName);
+ if (!Files.exists(folderPath)) {
+ Files.createDirectories(folderPath);
+ }
+
+ // 创建文件路径
+ Path filePath = folderPath.resolve(fileName);
+
+
+ // 下载文件
+ URL url = new URL(fileUrl);
+ try (BufferedInputStream in = new BufferedInputStream(url.openStream());
+ FileOutputStream fileOutputStream = new FileOutputStream(filePath.toFile())) {
+ byte[] dataBuffer = new byte[1024];
+ int bytesRead;
+ while ((bytesRead = in.read(dataBuffer, 0, 1024)) != -1) {
+ fileOutputStream.write(dataBuffer, 0, bytesRead);
+ }
+ }
+
+ System.out.println("文件已下载到: " + filePath);
+ path = String.valueOf(filePath);
+
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ return path;
+ }
+
+
diff --git a/src/main/java/com/example/sso/util/TimeUtil.java b/src/main/java/com/example/sso/util/TimeUtil.java
index 280db84..fbd1c60 100644
--- a/src/main/java/com/example/sso/util/TimeUtil.java
+++ b/src/main/java/com/example/sso/util/TimeUtil.java
@@ -4,6 +4,10 @@ import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
+import java.time.OffsetDateTime;
+import java.time.ZoneId;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
@@ -131,6 +135,26 @@ public class TimeUtil {
}
+ public static String timss(String utcTimeString) {
+ //String utcTimeString = "2025-07-14T07:56:50.000Z";
+
+ // 1. 直接解析为OffsetDateTime
+ OffsetDateTime utcTime = OffsetDateTime.parse(utcTimeString);
+
+ // 2. 转换为北京时间(UTC+8)
+ ZonedDateTime beijingTime = utcTime.atZoneSameInstant(ZoneId.of("Asia/Shanghai"));
+
+ // 3. 格式化输出
+ String formattedTime = beijingTime.format(
+ DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
+ );
+
+ System.out.println("UTC时间: " + utcTimeString);
+ System.out.println("格式化输出: " + formattedTime);
+ return formattedTime;
+ }
+
+