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);
} }
@@ -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) {
@@ -399,7 +236,7 @@ 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();
@@ -419,7 +256,7 @@ public class HttpClientUtils {
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);
@@ -436,14 +273,10 @@ public class HttpClientUtils {
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

@@ -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