This commit is contained in:
hejinbo
2023-09-27 15:33:53 +08:00
parent c60ad9f3fc
commit 2a147f119e
7 changed files with 346 additions and 106 deletions
@@ -6,10 +6,7 @@ import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService; import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController @RestController
@RequestMapping("/adjudication") @RequestMapping("/adjudication")
@@ -26,8 +23,27 @@ public class AdjudicationController extends BaseController {
public AjaxResult createDocument(@Validated @RequestBody CaseApplication caseApplication){ public AjaxResult createDocument(@Validated @RequestBody CaseApplication caseApplication){
return adjudicationService.createDocument(caseApplication); return adjudicationService.createDocument(caseApplication);
} }
@PostMapping("/")
public AjaxResult sendDocumentByEmail(){ /**
return adjudicationService.sendDocumentByEmail(); * 裁决书送达(电子邮件)
* @param id 案件id
* @param appEmail 申请人邮箱
* @param resEmail 被申请人邮箱
* @return
*/
@PostMapping("/delivery")
public AjaxResult sendDocumentByEmail(Long id,String appEmail,String resEmail){
return adjudicationService.sendDocumentByEmail(id,appEmail,resEmail);
}
/**
* 根据快递单号查询物流信息
* @param trackingNum 单号
* @param phoneLastFour 收/寄件人手机号后四位,顺丰快递需填写本字段。
* @return
*/
@GetMapping("/logistics")
public AjaxResult getLogisticsInfo(String trackingNum,Integer phoneLastFour){
return adjudicationService.getLogisticsInfo(trackingNum,phoneLastFour);
} }
} }
+8 -22
View File
@@ -92,30 +92,16 @@ spring:
resources: resources:
static-locations: file:/home/ruoyi/ static-locations: file:/home/ruoyi/
mail: mail:
# 邮件服务地址
host: smtp.163.com host: smtp.163.com
# 默认端口25,可不写
port: 25 port: 25
# 编码格式 username: hjbjava@163.com
default-encoding: utf-8 password: BSRSSEPJWGNNVYYL
# 发送者用户名 default-encoding: UTF-8
username: xxx@163.com properties:
# 授权码,刚才获取的代码 mail:
password: xxx smtp:
# 其它参数 socketFactoryClass: javax.net.ssl.SSLSocketFactory
# properties: debug: false
# mail:
# smtp:
# # 如果是用 SSL 方式,需要配置如下属性
# ssl:
# enable: true
# required: true
# # 邮件接收时间的限制,单位毫秒
# timeout: 10000
# # 连接时间的限制,单位毫秒
# connectiontimeout: 10000
# # 邮件发送时间的限制,单位毫秒
# writetimeout: 10000
# token配置 # token配置
token: token:
+15
View File
@@ -159,6 +159,21 @@
<version>3.1.4</version> <version>3.1.4</version>
</dependency> </dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.mail/mail -->
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
@@ -0,0 +1,187 @@
package com.ruoyi.common.utils;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import javax.validation.constraints.NotNull;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @ClassName EmailInUtil
* @Description 邮件发送工具
*/
@Component
@Data
@Slf4j
public class EmailOutUtil {
private static Pattern emailPattern = Pattern.compile("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$");
// private static Pattern phonePattern = Pattern.compile("0?(13|14|15|18)[0-9]{9}");
private static Pattern phonePattern = Pattern.compile("^1\\d{10}$");
// @Autowired
// private JavaMailSender mailSender;
// 发送发邮箱地址(外网地址)
// @Value("${spring.mail-out-network.from}")
// private static String fromOut;
@Value("${spring.mail.host}")
private String hostOut;
@Value("${spring.mail.username}")
private String usernameOut;
@Value("${spring.mail.password}")
private String passwordOut;
@Value("${spring.mail.port}")
private Integer portOut;
public JavaMailSender rebuildMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost(hostOut);
mailSender.setUsername(usernameOut);
mailSender.setPassword(passwordOut);
mailSender.setPort(portOut);
mailSender.setProtocol("smtp");
mailSender.setDefaultEncoding("UTF-8");
return mailSender;
}
/**
* 发送纯文本邮件信息
*
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
*/
public void sendMessage(String to, String subject, String content, String from, JavaMailSender mailSender) {
// 创建一个邮件对象
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom(from);
msg.setTo(to);
// 设置邮件主题
msg.setSubject(subject);
// 设置邮件内容
msg.setText(content);
// 发送邮件
mailSender.send(msg);
////System.out.println("发送成功:" + from + ":to:" + to);
}
/**
* 发送带附件的邮件信息
*
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
* @param fileList 文件集合 // 可发送多个附件
*/
public void sendMessageCarryFiles(String to, String subject, String content, List<File> fileList, String from, @NotNull JavaMailSender mailSender) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo(to);
// 设置邮件主题
helper.setSubject(subject);
// 设置邮件内容
helper.setText(content);
// 添加附件(多个)
if (fileList != null && fileList.size() > 0) {
for (File file : fileList) {
helper.addAttachment(file.getName(), file);
}
}
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件
mailSender.send(mimeMessage);
}
/**
* 发送带附件的邮件信息
*
* @param to 接收方
* @param subject 邮件主题
* @param content 邮件内容(发送内容)
* @param file 单个文件
*/
public void sendMessageCarryFile(String to, String subject, String content, File file, String from, JavaMailSender mailSender) {
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setFrom(from);
helper.setTo(to);
// 设置邮件主题
helper.setSubject(subject);
// 设置邮件内容
helper.setText(content);
// 单个附件
helper.addAttachment(file.getName(), file);
} catch (MessagingException e) {
e.printStackTrace();
}
// 发送邮件
mailSender.send(mimeMessage);
}
/**
* 初始化内外网邮件发送对象
*
* @param num
*/
// public static JavaMailSender initJavaMailSender(Integer num) {
// if (num != null && num == 1) {
// //内网
// return rebuildMailSender(hostIn, usernameIn, passwordIn, Integer.parseInt(portIn), "smtps");
// } else {
// //外网
// return rebuildMailSender(hostOut, usernameOut, passwordOut, Integer.parseInt(portOut), "smtps");
// }
// }
// public static String getInnerFrom() {
// return EmailInUtil;
// }
//
// public static String getOutterFrom() {
// return fromOut;
// }
/**
* 验证邮箱格式
*
* @param str
* @return
*/
public static boolean isEmail(String str) {
boolean flag = false;
Matcher matcher = emailPattern.matcher(str);
if (matcher.matches()) {
flag = true;
}
return flag;
}
public static boolean isPhoneNumber(String str) {
boolean flag = false;
Matcher matcher = phonePattern.matcher(str);
if (matcher.matches()) {
flag = true;
}
return flag;
}
}
@@ -1,49 +0,0 @@
//package com.ruoyi.common.utils;
//
//
//import jakarta.mail.internet.MimeMessage;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.core.io.FileSystemResource;
//import org.springframework.mail.javamail.JavaMailSender;
//import org.springframework.mail.javamail.MimeMessageHelper;
//import org.springframework.stereotype.Component;
//
//import java.io.File;
//import java.util.List;
//
//@Component
//public class SendMailUtils {
// private static final String SENDER = "xxx@163.com";
// @Autowired
// private JavaMailSender mailSender;
// /**
// * 发送带附件的邮件
// *
// * @param to 收件人
// * @param subject 主题
// * @param content 内容
// * @param fileList 附件
// */
// public void sendFileMail(String to, String subject, String content, List<File> fileList) {
// MimeMessage message = mailSender.createMimeMessage();
// try {
// //true表示需要创建一个multipart message
// MimeMessageHelper helper = new MimeMessageHelper(message, true);
// helper.setFrom(SENDER);
// helper.setTo(to);
// helper.setSubject(subject);
// helper.setText(content, true);
//
// if (fileList != null && fileList.size() > 0) {
// for (File file : fileList) {
// FileSystemResource fileSystemResource = new FileSystemResource(file);
// String fileName = fileSystemResource.getFilename();
// helper.addAttachment(fileName, fileSystemResource);
// }
// }
// mailSender.send(message);
// } catch (MessagingException e) {
// System.out.println("发送带附件的邮件时发生异常!" + e);
// }
// }
//}
@@ -6,6 +6,7 @@ import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
public interface IAdjudicationService { public interface IAdjudicationService {
AjaxResult createDocument(CaseApplication caseApplication); AjaxResult createDocument(CaseApplication caseApplication);
AjaxResult sendDocumentByEmail(); AjaxResult sendDocumentByEmail(Long id,String appEmail,String resEmail);
AjaxResult getLogisticsInfo(String trackingNum,Integer phoneLastFour);
} }
@@ -3,6 +3,7 @@ package com.ruoyi.wisdomarbitrate.service.impl;
import com.deepoove.poi.config.Configure; import com.deepoove.poi.config.Configure;
import com.ruoyi.common.constant.CaseApplicationConstants; import com.ruoyi.common.constant.CaseApplicationConstants;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.EmailOutUtil;
import com.ruoyi.common.utils.WordUtil; import com.ruoyi.common.utils.WordUtil;
import com.ruoyi.wisdomarbitrate.domain.*; import com.ruoyi.wisdomarbitrate.domain.*;
import com.ruoyi.wisdomarbitrate.mapper.ArbitrateRecordMapper; import com.ruoyi.wisdomarbitrate.mapper.ArbitrateRecordMapper;
@@ -12,9 +13,14 @@ import com.ruoyi.wisdomarbitrate.mapper.CaseAttachMapper;
import com.ruoyi.wisdomarbitrate.service.IAdjudicationService; import com.ruoyi.wisdomarbitrate.service.IAdjudicationService;
import org.apache.poi.xwpf.usermodel.*; import org.apache.poi.xwpf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.MailSendException;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.*; import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.StandardCopyOption; import java.nio.file.StandardCopyOption;
@@ -25,6 +31,8 @@ import java.util.*;
@Service @Service
public class AdjudicationServiceImpl implements IAdjudicationService { public class AdjudicationServiceImpl implements IAdjudicationService {
private final String apiUrl = "http://api.cainiaoapi.com/api/exp/v1/index";
@Autowired @Autowired
private CaseApplicationMapper caseApplicationMapper; private CaseApplicationMapper caseApplicationMapper;
@Autowired @Autowired
@@ -33,13 +41,15 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
private ArbitrateRecordMapper arbitrateRecordMapper; private ArbitrateRecordMapper arbitrateRecordMapper;
@Autowired @Autowired
private CaseAttachMapper caseAttachMapper; private CaseAttachMapper caseAttachMapper;
@Autowired
private EmailOutUtil emailOutUtil;
@Override @Override
public AjaxResult createDocument(CaseApplication caseApplication) { public AjaxResult createDocument(CaseApplication caseApplication) {
try { try {
Map<String, Object> datas = new HashMap<>(); Map<String, Object> datas = new HashMap<>();
Long id = caseApplication.getId(); Long id = caseApplication.getId();
if (id == null){ if (id == null) {
return null; return null;
} }
//获取案件详细信息 //获取案件详细信息
@@ -53,8 +63,8 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
CaseAffiliate caseAffiliate = new CaseAffiliate(); CaseAffiliate caseAffiliate = new CaseAffiliate();
caseAffiliate.setCaseAppliId(id); caseAffiliate.setCaseAppliId(id);
List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate); List<CaseAffiliate> caseAffiliates = caseAffiliateMapper.selectCaseAffiliate(caseAffiliate);
if (caseAffiliates != null && caseAffiliates.size() > 0){ if (caseAffiliates != null && caseAffiliates.size() > 0) {
for (CaseAffiliate affiliate : caseAffiliates){ for (CaseAffiliate affiliate : caseAffiliates) {
//获取身份类型 //获取身份类型
int identityType = affiliate.getIdentityType(); int identityType = affiliate.getIdentityType();
if (identityType == 1) { //申请人 if (identityType == 1) { //申请人
@@ -62,34 +72,34 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
datas.put("appIDNo", affiliate.getIdentityNum()); datas.put("appIDNo", affiliate.getIdentityNum());
datas.put("appAddress", affiliate.getContactAddress()); datas.put("appAddress", affiliate.getContactAddress());
datas.put("appAgentName", affiliate.getNameAgent()); datas.put("appAgentName", affiliate.getNameAgent());
datas.put("appAgentIDNo",affiliate.getIdentityNumAgent()); datas.put("appAgentIDNo", affiliate.getIdentityNumAgent());
}else if (identityType == 2){ //被申请人 } else if (identityType == 2) { //被申请人
datas.put("resName", affiliate.getName()); datas.put("resName", affiliate.getName());
datas.put("resIDNo", affiliate.getIdentityNum()); datas.put("resIDNo", affiliate.getIdentityNum());
datas.put("resAddress", affiliate.getContactAddress()); datas.put("resAddress", affiliate.getContactAddress());
datas.put("resAgentName", affiliate.getNameAgent()); datas.put("resAgentName", affiliate.getNameAgent());
datas.put("resAgentIDNo",affiliate.getIdentityNumAgent()); datas.put("resAgentIDNo", affiliate.getIdentityNumAgent());
} }
} }
} }
String arbitratorName = caseApplication1.getArbitratorName(); String arbitratorName = caseApplication1.getArbitratorName();
datas.put("caseName",caseApplication1.getCaseName()); datas.put("caseName", caseApplication1.getCaseName());
datas.put("arbitratorName",arbitratorName); datas.put("arbitratorName", arbitratorName);
Date hearDate = caseApplication1.getHearDate(); Date hearDate = caseApplication1.getHearDate();
if (hearDate != null) { if (hearDate != null) {
LocalDate localDate = hearDate.toInstant() LocalDate localDate = hearDate.toInstant()
.atZone(ZoneId.systemDefault()) .atZone(ZoneId.systemDefault())
.toLocalDate(); .toLocalDate();
datas.put("hearYear", localDate.getYear()); datas.put("hearYear", localDate.getYear());
datas.put("hearMonths", localDate.getMonthValue()); datas.put("hearMonths", localDate.getMonthValue());
datas.put("hearDay", localDate.getDayOfMonth()); datas.put("hearDay", localDate.getDayOfMonth());
}else { } else {
datas.put("hearYear", null); datas.put("hearYear", null);
datas.put("hearMonths", null); datas.put("hearMonths", null);
datas.put("hearDay", null); datas.put("hearDay", null);
} }
datas.put("appArbitrationClaims", caseApplication1.getArbitratClaims()); datas.put("appArbitrationClaims", caseApplication1.getArbitratClaims());
if (arbitrateRecord1!=null){ if (arbitrateRecord1 != null) {
datas.put("evidenDetermi", arbitrateRecord1.getEvidenDetermi()); datas.put("evidenDetermi", arbitrateRecord1.getEvidenDetermi());
datas.put("factDetermi", arbitrateRecord1.getFactDetermi()); datas.put("factDetermi", arbitrateRecord1.getFactDetermi());
datas.put("caseSketch", arbitrateRecord1.getCaseSketch()); datas.put("caseSketch", arbitrateRecord1.getCaseSketch());
@@ -97,10 +107,10 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
datas.put("rulingFollows", arbitrateRecord1.getRulingFollows()); datas.put("rulingFollows", arbitrateRecord1.getRulingFollows());
} }
datas.put("legalProvisions", "仲裁法"); datas.put("legalProvisions", "仲裁法");
if (arbitratorName==null){ if (arbitratorName == null) {
datas.put("arbitratorName1", null); datas.put("arbitratorName1", null);
datas.put("arbitratorName2", null); datas.put("arbitratorName2", null);
}else if (arbitratorName.contains(",")){ } else if (arbitratorName.contains(",")) {
String[] nameArray = arbitratorName.split(","); String[] nameArray = arbitratorName.split(",");
String firstName = nameArray[0]; String firstName = nameArray[0];
String secondName = nameArray[1]; String secondName = nameArray[1];
@@ -115,10 +125,10 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
datas.put("year", now.getYear()); datas.put("year", now.getYear());
datas.put("months", now.getMonthValue()); datas.put("months", now.getMonthValue());
datas.put("day", now.getDayOfMonth()); datas.put("day", now.getDayOfMonth());
String modalFilePath = "/data/arbitrate-document/template/仲裁裁决书模板.docx"; //String modalFilePath = "/data/arbitrate-document/template/仲裁裁决书模板.docx";
//String modalFilePath = "D:/develop/仲裁裁决书模板 (2).docx"; String modalFilePath = "D:/develop/仲裁裁决书模板 (2).docx";
String saveFolderPath = "/data/arbitrate-document/formal/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth(); //String saveFolderPath = "/data/arbitrate-document/formal/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
//String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth(); String saveFolderPath = "D:/data/" + now.getYear() + "/" + now.getMonthValue() + "/" + now.getDayOfMonth();
String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx"; String fileName = UUID.randomUUID().toString().replace("-", "") + ".docx";
String resultFilePath = saveFolderPath + "/" + fileName; String resultFilePath = saveFolderPath + "/" + fileName;
// 创建日期目录 // 创建日期目录
@@ -129,7 +139,7 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
Path sourcePath = new File(modalFilePath).toPath(); Path sourcePath = new File(modalFilePath).toPath();
Path destinationPath = new File(resultFilePath).toPath(); Path destinationPath = new File(resultFilePath).toPath();
Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING); Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);
String docFilePath = WordUtil.getDocFilePath(datas,modalFilePath,resultFilePath); String docFilePath = WordUtil.getDocFilePath(datas, modalFilePath, resultFilePath);
//修改案件状态 //修改案件状态
caseApplication1.setCaseStatus(CaseApplicationConstants.VERPRIF_ARBITRATION); caseApplication1.setCaseStatus(CaseApplicationConstants.VERPRIF_ARBITRATION);
caseApplicationMapper.submitCaseApplication(caseApplication1); caseApplicationMapper.submitCaseApplication(caseApplication1);
@@ -141,8 +151,8 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
.annexType(3) .annexType(3)
.build(); .build();
int i = caseAttachMapper.save(caseAttach); int i = caseAttachMapper.save(caseAttach);
if (i>0){ if (i > 0) {
if (arbitrateRecord1!=null){ if (arbitrateRecord1 != null) {
Integer annexId = caseAttach.getAnnexId(); Integer annexId = caseAttach.getAnnexId();
//将附件id保存到仲裁记录表里面 //将附件id保存到仲裁记录表里面
arbitrateRecord1.setAnnexId(annexId); arbitrateRecord1.setAnnexId(annexId);
@@ -157,7 +167,81 @@ public class AdjudicationServiceImpl implements IAdjudicationService {
} }
@Override @Override
public AjaxResult sendDocumentByEmail() { public AjaxResult sendDocumentByEmail(Long id, String appEmail, String resEmail) {
CaseApplication caseApplication = new CaseApplication();
caseApplication.setId(id);
CaseApplication caseApplication1 = caseApplicationMapper.selectCaseApplication(caseApplication);
if (caseApplication1 == null) {
return AjaxResult.error("未查询到相关案件");
}
//根据案件id查询裁决书
try {
List<File> fileList = new ArrayList<>();
List<CaseAttach> caseAttachList = caseAttachMapper.queryAnnexPathByCaseId(id);
if (caseAttachList != null && caseAttachList.size() > 0) {
for (CaseAttach caseAttach : caseAttachList) {
if (caseAttach.getAnnexType() == 3) {
String annexPath = caseAttach.getAnnexPath();
fileList.add(new File(annexPath));
}
}
}
//电子邮件送达
JavaMailSender javaMailSender = emailOutUtil.rebuildMailSender();
if (appEmail != null) {
emailOutUtil.sendMessageCarryFiles(appEmail, "案件裁决书", "您的裁决书已送达,详情请查阅附件", fileList
, "hjbjava@163.com", javaMailSender);
}
if (resEmail != null) {
emailOutUtil.sendMessageCarryFiles(resEmail, "案件裁决书", "您的裁决书已送达,详情请查阅附件", fileList
, "hjbjava@163.com", javaMailSender);
}
//修改案件状态
caseApplication1.setCaseStatus(CaseApplicationConstants.CASE_FILING);
caseApplicationMapper.submitCaseApplication(caseApplication1);
return AjaxResult.success("仲裁文书送达成功");
} catch (MailSendException e) {
return AjaxResult.error("发送失败,请检查文件路径");
}
}
@Override
public AjaxResult getLogisticsInfo(String trackingNum, Integer phoneLastFour) {
try {
//快递单号查询
String key = "70ba5c7b327f71fccd5924f70e3e7b7f";
String com = "auto";
// 构造查询字符串参数
String queryParameters = String.format("key=%s&com=%s&no=%s&phone=%d",
URLEncoder.encode(key, "UTF-8"),
URLEncoder.encode(com, "UTF-8"),
URLEncoder.encode(trackingNum, "UTF-8"),
phoneLastFour);
// 拼接到API URL中
String fullUrl = apiUrl + "?" + queryParameters;
URL url = new URL(fullUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
// 处理返回的响应数据
return AjaxResult.success(response);
} else {
// 请求失败
return AjaxResult.error("请求失败,错误码:" + responseCode);
}
} catch (IOException e) {
e.printStackTrace();
}
return null; return null;
} }
} }