This commit is contained in:
Cauchy
2023-10-17 10:40:48 +08:00
parent 22fb5ec3a8
commit c268fb185d
9 changed files with 202 additions and 280 deletions

22
pom.xml
View File

@@ -98,14 +98,6 @@
<artifactId>com.baidu.ueditor</artifactId> <artifactId>com.baidu.ueditor</artifactId>
<version>1.1.2-offical</version> <version>1.1.2-offical</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.kuaidi100-api</groupId>
<artifactId>sdk</artifactId>
<version>1.0.12</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId> <artifactId>spring-boot-starter-validation</artifactId>
@@ -115,11 +107,6 @@
<artifactId>spring-boot-configuration-processor</artifactId> <artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-devtools</artifactId>-->
<!--<optional>true</optional>-->
<!--</dependency>-->
<dependency> <dependency>
<groupId>com.baomidou</groupId> <groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId> <artifactId>mybatis-plus-boot-starter</artifactId>
@@ -145,9 +132,6 @@
</dependency> </dependency>
<!--阿里短信服务--> <!--阿里短信服务-->
<dependency> <dependency>
<groupId>com.aliyun</groupId> <groupId>com.aliyun</groupId>
@@ -419,9 +403,11 @@
<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url> <url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>
<commands> <commands>
<!-- Kill Old Process --> <!-- Kill Old Process -->
<command>kill -9 `ps -ef |grep ${project.artifactId}.jar|grep -v "grep" |awk '{print $2}'`</command> <command>kill -9 `ps -ef |grep ${project.artifactId}.jar|grep -v "grep" |awk '{print $2}'`
</command>
<!-- Restart jar packagewrite result into renren.log --> <!-- Restart jar packagewrite result into renren.log -->
<command><![CDATA[nohup java -jar ${service-path}/${pack-name} --spring.profiles.active=test > ${service-path}/renren.log 2>&1 & ]]></command> <command>
<![CDATA[nohup java -jar ${service-path}/${pack-name} --spring.profiles.active=test > ${service-path}/renren.log 2>&1 & ]]></command>
<command><![CDATA[netstat -nptl]]></command> <command><![CDATA[netstat -nptl]]></command>
<command><![CDATA[ps -ef | grep java | grep -v grep]]></command> <command><![CDATA[ps -ef | grep java | grep -v grep]]></command>
</commands> </commands>

View File

@@ -2,52 +2,46 @@ package com.peanut.common.utils;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.http.Consts;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig; import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.config.RequestConfig.Builder; import org.apache.http.client.config.RequestConfig.Builder;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException; import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContextBuilder; import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.conn.ssl.X509HostnameVerifier; import org.apache.http.conn.ssl.X509HostnameVerifier;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity; import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.message.BasicNameValuePair;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocket;
import java.io.*; import java.io.BufferedReader;
import java.net.*; import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException; import java.security.GeneralSecurityException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class HttpClientUtils { public class HttpClientUtils {
public static final int connTimeout=10000; public static final int connTimeout = 10000;
public static final int readTimeout=10000; public static final int readTimeout = 10000;
public static final String charset="UTF-8"; public static final String charset = "UTF-8";
private static HttpClient client = null; private static HttpClient client;
private static final Logger log = LoggerFactory.getLogger(HttpClientUtils.class); private static final Logger log = LoggerFactory.getLogger(HttpClientUtils.class);
static { static {
@@ -57,24 +51,6 @@ public class HttpClientUtils {
client = HttpClients.custom().setConnectionManager(cm).build(); client = HttpClients.custom().setConnectionManager(cm).build();
} }
public static String postParameters(String url, String parameterStr) throws ConnectTimeoutException, SocketTimeoutException, Exception{
return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout);
}
public static String postParameters(String url, String parameterStr,String charset, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, SocketTimeoutException, Exception{
return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout);
}
public static String postParameters(String url, Map<String, Object> params) throws ConnectTimeoutException,
SocketTimeoutException, Exception {
return postForm(url, params, null, connTimeout, readTimeout);
}
public static String postParameters(String url, Map<String, Object> params, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException,
SocketTimeoutException, Exception {
return postForm(url, params, null, connTimeout, readTimeout);
}
public static String get(String url) throws Exception { public static String get(String url) throws Exception {
return get(url, charset, null, null); return get(url, charset, null, null);
} }
@@ -97,7 +73,7 @@ public class HttpClientUtils {
* @throws SocketTimeoutException 响应超时 * @throws SocketTimeoutException 响应超时
* @throws Exception * @throws Exception
*/ */
public static String post(String url, String body, String mimeType,String charset, Integer connTimeout, Integer readTimeout) public static String post(String url, String body, String mimeType, String charset, Integer connTimeout, Integer readTimeout)
throws ConnectTimeoutException, SocketTimeoutException, Exception { throws ConnectTimeoutException, SocketTimeoutException, Exception {
HttpClient client = null; HttpClient client = null;
HttpPost post = new HttpPost(url); HttpPost post = new HttpPost(url);
@@ -130,7 +106,7 @@ public class HttpClientUtils {
result = IOUtils.toString(res.getEntity().getContent(), charset); result = IOUtils.toString(res.getEntity().getContent(), charset);
} finally { } finally {
post.releaseConnection(); post.releaseConnection();
if (url.startsWith("https") && client != null&& client instanceof CloseableHttpClient) { if (url.startsWith("https") && client instanceof CloseableHttpClient) {
((CloseableHttpClient) client).close(); ((CloseableHttpClient) client).close();
} }
} }
@@ -138,73 +114,11 @@ public class HttpClientUtils {
} }
/**
* 提交form表单
*
* @param url
* @param params
* @param connTimeout
* @param readTimeout
* @return
* @throws ConnectTimeoutException
* @throws SocketTimeoutException
* @throws Exception
*/
public static String postForm(String url, Map<String, Object> params, Map<String, String> headers, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException,
SocketTimeoutException, Exception {
HttpClient client = null;
HttpPost post = new HttpPost(url);
try {
if (params != null && !params.isEmpty()) {
List<NameValuePair> formParams = new ArrayList<NameValuePair>();
Set<Entry<String, Object>> entrySet = params.entrySet();
for (Entry<String, Object> entry : entrySet) {
formParams.add(new BasicNameValuePair(entry.getKey(), entry.toString()));
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, Consts.UTF_8);
post.setEntity(entity);
}
if (headers != null && !headers.isEmpty()) {
for (Entry<String, String> entry : headers.entrySet()) {
post.addHeader(entry.getKey(), entry.getValue());
}
}
// 设置参数
Builder customReqConf = RequestConfig.custom();
if (connTimeout != null) {
customReqConf.setConnectTimeout(connTimeout);
}
if (readTimeout != null) {
customReqConf.setSocketTimeout(readTimeout);
}
post.setConfig(customReqConf.build());
HttpResponse res = null;
if (url.startsWith("https")) {
// 执行 Https 请求.
client = createSSLInsecureClient();
res = client.execute(post);
} else {
// 执行 Http 请求.
client = HttpClientUtils.client;
res = client.execute(post);
}
return IOUtils.toString(res.getEntity().getContent(), "UTF-8");
} finally {
post.releaseConnection();
if (url.startsWith("https") && client != null
&& client instanceof CloseableHttpClient) {
((CloseableHttpClient) client).close();
}
}
}
/** /**
* 发送一个 GET 请求 * 发送一个 GET 请求
*/ */
public static String get(String url, String charset, Integer connTimeout,Integer readTimeout) public static String get(String url, String charset, Integer connTimeout, Integer readTimeout)
throws ConnectTimeoutException,SocketTimeoutException, Exception { throws Exception {
HttpClient client = null; HttpClient client = null;
HttpGet get = new HttpGet(url); HttpGet get = new HttpGet(url);
@@ -259,16 +173,13 @@ public class HttpClientUtils {
/** /**
* 创建 SSL连接 * 创建 SSL连接
*
* @return * @return
* @throws GeneralSecurityException * @throws GeneralSecurityException
*/ */
private static CloseableHttpClient createSSLInsecureClient() throws GeneralSecurityException { private static CloseableHttpClient createSSLInsecureClient() throws GeneralSecurityException {
try { try {
SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() { SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, (chain, authType) -> true).build();
public boolean isTrusted(X509Certificate[] chain,String authType) throws CertificateException {
return true;
}
}).build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new X509HostnameVerifier() { SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new X509HostnameVerifier() {
@@ -278,18 +189,16 @@ public class HttpClientUtils {
} }
@Override @Override
public void verify(String host, SSLSocket ssl) public void verify(String host, SSLSocket ssl) {
throws IOException {
} }
@Override @Override
public void verify(String host, X509Certificate cert) public void verify(String host, X509Certificate cert) {
throws SSLException {
} }
@Override @Override
public void verify(String host, String[] cns, public void verify(String host, String[] cns,
String[] subjectAlts) throws SSLException { String[] subjectAlts) {
} }
}); });
return HttpClients.custom().setSSLSocketFactory(sslsf).build(); return HttpClients.custom().setSSLSocketFactory(sslsf).build();
@@ -300,83 +209,11 @@ public class HttpClientUtils {
} }
/**
* 向指定 URL 发送POST方法的请求
*
* @param url 发送请求的 URL
* @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
public static String sendPost(String url, String param)
{
PrintWriter out = null;
BufferedReader in = null;
StringBuilder result = new StringBuilder();
try
{
log.info("sendPost - {}", url);
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("contentType", "utf-8");
conn.setDoOutput(true);
conn.setDoInput(true);
out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
String line;
while ((line = in.readLine()) != null)
{
result.append(line);
}
log.info("recv - {}", result);
}
catch (ConnectException e)
{
log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
}
catch (SocketTimeoutException e)
{
log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
}
catch (IOException e)
{
log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
}
catch (Exception e)
{
log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
}
finally
{
try
{
if (out != null)
{
out.close();
}
if (in != null)
{
in.close();
}
}
catch (IOException ex)
{
log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
}
}
return result.toString();
}
/** /**
* 快递鸟向指定 URL 发送POST方法的请求 * 快递鸟向指定 URL 发送POST方法的请求
* url 发送请求的 URL * url 发送请求的 URL
* params 请求的参数集合 * params 请求的参数集合
*
* @return 远程资源的响应结果 * @return 远程资源的响应结果
*/ */
public static String kdSendPost(String url, Map<String, String> params) { public static String kdSendPost(String url, Map<String, String> params) {
@@ -385,7 +222,7 @@ public class HttpClientUtils {
StringBuilder result = new StringBuilder(); StringBuilder result = new StringBuilder();
try { try {
URL realUrl = new URL(url); URL realUrl = new URL(url);
HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();
// 发送POST请求必须设置如下两行 // 发送POST请求必须设置如下两行
conn.setDoOutput(true); conn.setDoOutput(true);
conn.setDoInput(true); conn.setDoInput(true);
@@ -399,27 +236,27 @@ public class HttpClientUtils {
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.connect(); conn.connect();
// 获取URLConnection对象对应的输出流 // 获取URLConnection对象对应的输出流
out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); out = new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8);
// 发送请求参数 // 发送请求参数
if (params != null) { if (params != null) {
StringBuilder param = new StringBuilder(); StringBuilder param = new StringBuilder();
for (Map.Entry<String, String> entry : params.entrySet()) { for (Map.Entry<String, String> entry : params.entrySet()) {
if(param.length()>0){ if (param.length() > 0) {
param.append("&"); param.append("&");
} }
param.append(entry.getKey()); param.append(entry.getKey());
param.append("="); param.append("=");
param.append(entry.getValue()); param.append(entry.getValue());
log.info(entry.getKey()+":"+entry.getValue()); log.info(entry.getKey() + ":" + entry.getValue());
} }
log.info("param:"+param.toString()); log.info("param:" + param.toString());
out.write(param.toString()); out.write(param.toString());
} }
// flush输出流的缓冲 // flush输出流的缓冲
out.flush(); out.flush();
// 定义BufferedReader输入流来读取URL的响应 // 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader( in = new BufferedReader(
new InputStreamReader(conn.getInputStream(), "UTF-8")); new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
String line; String line;
while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) {
result.append(line); result.append(line);
@@ -428,22 +265,18 @@ public class HttpClientUtils {
e.printStackTrace(); e.printStackTrace();
} }
//使用finally块来关闭输出流、输入流 //使用finally块来关闭输出流、输入流
finally{ finally {
try{ try {
if(out!=null){ if (out != null) {
out.close(); out.close();
} }
if(in!=null){ if (in != null) {
in.close(); in.close();
} }
} } catch (IOException ex) {
catch(IOException ex){
ex.printStackTrace(); ex.printStackTrace();
} }
} }
return result.toString(); return result.toString();
} }
} }

View File

@@ -26,6 +26,18 @@ public class ExpressOrder {
* 用户地址 ID * 用户地址 ID
*/ */
private int userAddressId; private int userAddressId;
/**
* 订单号
*/
private String orderId;
/**
* 快递公司代码
*/
private String expressCompanyCode;
/**
* 备注
*/
private String remark;
/** /**
* 快递费 * 快递费
*/ */

View File

@@ -14,5 +14,11 @@ public interface ExpressOrderService extends IService<ExpressOrder> {
*/ */
int insertNewExpressOrder(ExpressOrder expressOrder); int insertNewExpressOrder(ExpressOrder expressOrder);
void placeExpressOrder(Integer userAddressId, ExpressOrder expressOrder);
// void printDeliveryBill();
//
// void expressRealTimeQuery();
} }

View File

@@ -263,6 +263,5 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
int expressOrderId = expressOrderService.insertNewExpressOrder(expressOrder); int expressOrderId = expressOrderService.insertNewExpressOrder(expressOrder);
} }
} }

View File

@@ -1,14 +1,20 @@
package com.peanut.modules.book.service.impl; package com.peanut.modules.book.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.book.dao.ExpressOrderDao; import com.peanut.modules.book.dao.ExpressOrderDao;
import com.peanut.modules.book.entity.ExpressOrder; import com.peanut.modules.book.entity.*;
import com.peanut.modules.book.service.ExpressOrderService; import com.peanut.modules.book.service.*;
import com.peanut.modules.book.vo.ExpressCommodityVo;
import com.peanut.modules.book.vo.ExpressOrderRequestVo; import com.peanut.modules.book.vo.ExpressOrderRequestVo;
import com.peanut.modules.book.vo.ExpressUserInfoVo; import com.peanut.modules.book.vo.ExpressUserInfoVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/** /**
* @Description: 快递订单 Service 实现 * @Description: 快递订单 Service 实现
* @Author: Cauchy * @Author: Cauchy
@@ -16,65 +22,96 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, ExpressOrder> implements ExpressOrderService { public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, ExpressOrder> implements ExpressOrderService {
@Value("${express.sender.senderName}")
private String senderName;
@Value("${express.sender.mobile}")
private String senderMobile;
@Value("${express.sender.provinceName}")
private String senderProvinceName;
@Value("${express.sender.cityName}")
private String senderCityName;
@Value("${express.sender.expAreaName}")
private String senderExpAreaName;
@Value("${express.sender.address}")
private String senderAddress;
@Autowired @Autowired
private ExpressOrderDao expressOrderDao; private ExpressOrderDao expressOrderDao;
@Autowired
private UserAddressService userAddressService;
@Autowired
private CountyService countyService;
@Autowired
private CityService cityService;
@Autowired
private ProvinceService provinceService;
@Override @Override
public int insertNewExpressOrder(ExpressOrder expressOrder) { public int insertNewExpressOrder(ExpressOrder expressOrder) {
expressOrderDao.insertNewExpressOrder(expressOrder); expressOrderDao.insertNewExpressOrder(expressOrder);
return expressOrder.getId(); return expressOrder.getId();
} }
public void createExpressOrder() throws Exception { @Override
ExpressUserInfoVo receiver = new ExpressUserInfoVo(); public void placeExpressOrder(Integer userAddressId, ExpressOrder expressOrder) {
receiver.setName("张三"); ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo();
receiver.setMobile("12345678910"); // 订单号
receiver.setPrintAddr("广东省深圳市南山区科技南十二路"); orderRequestVo.setOrderCode(expressOrder.getOrderId());
orderRequestVo.setShipperCode(expressOrder.getExpressCompanyCode());
orderRequestVo.setPayType(3);
orderRequestVo.setExpType(1);
// 发货人
ExpressUserInfoVo sender = new ExpressUserInfoVo(); ExpressUserInfoVo sender = new ExpressUserInfoVo();
sender.setName("李四"); sender.setName(senderName);
sender.setMobile("12345678910"); sender.setMobile(senderMobile);
sender.setPrintAddr("北京市海淀区xxx路"); sender.setProvinceName(senderProvinceName);
sender.setCityName(senderCityName);
sender.setExpAreaName(senderExpAreaName);
sender.setAddress(senderAddress);
// 收货人
UserAddress userAddress = userAddressService.getById(userAddressId);
ExpressUserInfoVo receiver = buildReceiverBasedOnUserAddress(userAddress);
orderRequestVo.setSender(sender);
orderRequestVo.setReceiver(receiver);
ExpressCommodityVo commodityVo = new ExpressCommodityVo();
commodityVo.setGoodsName("书籍");
List<ExpressCommodityVo> commodityVoList = new ArrayList<>();
orderRequestVo.setCommodity(commodityVoList);
//orderRequestVo.setWeight(expressOrder.getTotalWeight());
orderRequestVo.setRemark(expressOrder.getRemark());
ExpressOrderRequestVo request = new ExpressOrderRequestVo();
request.setKuaidicom(CompanyConstant.ZJS);
request.setCount(1);
request.setSiid(siid);
request.setTempId("60f6c17c7c223700131d8bc3");
request.setSendMan(sender);
request.setRecMan(receiver);
request.setPrintType(PrintType.CLOUD);
String param = new Gson().toJson(request);
String t = System.currentTimeMillis() + "";
PrintReq printReq = new PrintReq();
printReq.setT(t);
printReq.setKey(key);
printReq.setSign(SignUtils.printSign(param, t, key, secret));
printReq.setMethod(ApiInfoConstant.ORDER);
printReq.setParam(param);
IBaseClient baseClient = new LabelV2();
System.out.println(baseClient.execute(printReq));
} }
public void testPrintOld() throws Exception { private ExpressUserInfoVo buildReceiverBasedOnUserAddress(UserAddress userAddress) {
RepeatPrintReq repeatPrintReq = new RepeatPrintReq(); ExpressUserInfoVo vo = new ExpressUserInfoVo();
vo.setName(userAddress.getConsigneeName());
repeatPrintReq.setTaskId("027B34AD22DE4F299643A13642B70D5F"); vo.setMobile(userAddress.getConsigneePhone());
vo.setAddress(userAddress.getDetailAddress());
String param = new Gson().toJson(repeatPrintReq); String regionCode = userAddress.getRegionCode();
String t = System.currentTimeMillis() + ""; QueryWrapper<CountyEntity> countyQueryWrapper = new QueryWrapper<>();
countyQueryWrapper.eq("region_code", regionCode);
PrintReq printReq = new PrintReq(); CountyEntity county = countyService.getOne(countyQueryWrapper);
printReq.setT(t); vo.setExpAreaName(county.getCountyName());
printReq.setKey(key); String cityRegionCode;
printReq.setSign(SignUtils.printSign(param, t, key, secret)); if (regionCode.startsWith("11") || regionCode.startsWith("12") || regionCode.startsWith("31") || regionCode.startsWith("50")) {
printReq.setMethod(ApiInfoConstant.CLOUD_PRINT_OLD_METHOD); cityRegionCode = regionCode.substring(0, 1).concat("0000");
printReq.setParam(param); } else {
cityRegionCode = regionCode.substring(0, 3).concat("00");
IBaseClient baseClient = new LabelV2(); }
System.out.println(baseClient.execute(printReq)); QueryWrapper<CityEntity> cityQueryWrapper = new QueryWrapper<>();
cityQueryWrapper.eq("region_code", cityRegionCode);
CityEntity city = cityService.getOne(cityQueryWrapper);
vo.setCityName(city.getCityName());
String provinceRegionCode = regionCode.substring(0, 1).concat("0000");
QueryWrapper<ProvinceEntity> provinceQueryWrapper = new QueryWrapper<>();
provinceQueryWrapper.eq("region_code", provinceRegionCode);
ProvinceEntity province = provinceService.getOne(provinceQueryWrapper);
vo.setProvinceName(province.getProvName());
return vo;
} }
} }

View File

@@ -9,8 +9,32 @@ import lombok.Data;
*/ */
@Data @Data
public class ExpressCommodityVo { public class ExpressCommodityVo {
/**
* 商品名称
*/
private String GoodsName; private String GoodsName;
/**
* 商品编码
*/
private String GoodsCode; private String GoodsCode;
private int Goodsquantity; /**
private double GoodsPrice; * 商品数量
*/
private Integer Goodsquantity;
/**
* 商品价格
*/
private Double GoodsPrice;
/**
* 商品重量
*/
private Double GoodsWeight;
/**
* 商品描述
*/
private String GoodsDesc;
/**
* 商品体积
*/
private Double GoodsVol;
} }

View File

@@ -1,11 +1,8 @@
package com.peanut.modules.book.vo; package com.peanut.modules.book.vo;
import com.kuaidi100.sdk.contant.PrintType;
import com.kuaidi100.sdk.request.ManInfo;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List ;
import java.util.Map;
/** /**
* @Description: 快递请求 Value Object * @Description: 快递请求 Value Object
@@ -31,7 +28,25 @@ public class ExpressOrderRequestVo {
* 快递公司业务类型 * 快递公司业务类型
*/ */
private int ExpType; private int ExpType;
/**
* 发货人
*/
private ExpressUserInfoVo Sender;
/**
* 收货人
*/
private ExpressUserInfoVo Receiver;
/**
* 货物信息
*/
private List<ExpressCommodityVo> Commodity;
/**
* 重量
*/
private Double Weight;
/**
* 备注
*/
private String Remark;
} }

View File

@@ -26,7 +26,7 @@ spring:
pathmatch: pathmatch:
matching-strategy: ANT_PATH_MATCHER matching-strategy: ANT_PATH_MATCHER
# resources: # resources:
# add-mappings: false # add-mappings: false
output: output:
ansi: ansi:
enabled: always enabled: always
@@ -73,3 +73,13 @@ renren:
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS: false spring.jackson.serialization.FAIL_ON_EMPTY_BEANS: false
express:
sender:
senderName: 众妙之门
mobile:
provinceName: 天津
cityName: 天津
expAreaName: 南开
address: 融创中心中南广场东区2号楼605