express order finished

This commit is contained in:
Cauchy
2023-10-17 17:22:08 +08:00
parent bdc561895e
commit 113243e918
8 changed files with 77 additions and 6 deletions

View File

@@ -92,4 +92,8 @@ public class BuyOrderDetail implements Serializable {
* 评价 ID * 评价 ID
*/ */
private Integer recordId; private Integer recordId;
/**
* 快递单号
*/
private String expressBillNo;
} }

View File

@@ -3,8 +3,11 @@ package com.peanut.modules.book.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.book.entity.ExpressOrder; import com.peanut.modules.book.entity.ExpressOrder;
import com.peanut.modules.book.entity.UserAddress; import com.peanut.modules.book.entity.UserAddress;
import com.peanut.modules.book.vo.ExpressQueryResponseVo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Map;
@Service @Service
public interface ExpressOrderService extends IService<ExpressOrder> { public interface ExpressOrderService extends IService<ExpressOrder> {
/** /**
@@ -14,7 +17,7 @@ public interface ExpressOrderService extends IService<ExpressOrder> {
* @param expressOrder * @param expressOrder
* @throws Exception * @throws Exception
*/ */
String placeExpressOrder(UserAddress userAddress, ExpressOrder expressOrder); Map<String, String> placeExpressOrder(UserAddress userAddress, ExpressOrder expressOrder);
ExpressQueryResponseVo queryExpressOrder(String ShipperCode, String LogisticCode);
} }

View File

@@ -273,9 +273,10 @@ public class BuyOrderServiceImpl extends ServiceImpl<BuyOrderDao, BuyOrderEntity
expressOrder.setCommodity(commodityList); expressOrder.setCommodity(commodityList);
expressOrder.setExpressCompanyCode(expressCompanyCode); expressOrder.setExpressCompanyCode(expressCompanyCode);
// 生成快递面单 // 生成快递面单
String expressBill = expressOrderService.placeExpressOrder(address, expressOrder); Map<String, String> result = expressOrderService.placeExpressOrder(address, expressOrder);
for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) { for (BuyOrderDetail buyOrderDetail : buyOrderDetailList) {
buyOrderDetail.setExpressBill(expressBill); buyOrderDetail.setExpressBill(result.get("expressBill"));
buyOrderDetail.setExpressBillNo(result.get("expressBillNo"));
} }
buyOrderDetailService.saveBatch(buyOrderDetailList); buyOrderDetailService.saveBatch(buyOrderDetailList);
} }

View File

@@ -11,6 +11,7 @@ import com.peanut.modules.book.entity.*;
import com.peanut.modules.book.service.*; import com.peanut.modules.book.service.*;
import com.peanut.modules.book.vo.ExpressOrderRequestVo; import com.peanut.modules.book.vo.ExpressOrderRequestVo;
import com.peanut.modules.book.vo.ExpressOrderResponseVo; import com.peanut.modules.book.vo.ExpressOrderResponseVo;
import com.peanut.modules.book.vo.ExpressQueryResponseVo;
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.beans.factory.annotation.Value;
@@ -51,7 +52,7 @@ public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, Expres
@Override @Override
public String placeExpressOrder(UserAddress userAddress, ExpressOrder expressOrder) { public Map<String, String> placeExpressOrder(UserAddress userAddress, ExpressOrder expressOrder) {
ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo(); ExpressOrderRequestVo orderRequestVo = new ExpressOrderRequestVo();
// 订单号 // 订单号
orderRequestVo.setOrderCode(expressOrder.getOrderId().toString()); orderRequestVo.setOrderCode(expressOrder.getOrderId().toString());
@@ -95,7 +96,17 @@ public class ExpressOrderServiceImpl extends ServiceImpl<ExpressOrderDao, Expres
params.put("DataType", "2"); params.put("DataType", "2");
String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_PLACE_ORDER_URL, params); String response = HttpClientUtils.kdSendPost(Constants.EXPRESS_PLACE_ORDER_URL, params);
ExpressOrderResponseVo responseVo = JSONObject.parseObject(response, ExpressOrderResponseVo.class); ExpressOrderResponseVo responseVo = JSONObject.parseObject(response, ExpressOrderResponseVo.class);
return responseVo.getPrintTemplate(); String expressBillNo = responseVo.getOrder().getLogisticCode();
Map<String, String> result = new HashMap<>();
result.put("expressBillNo", expressBillNo);
result.put("template", responseVo.getPrintTemplate());
return result;
}
@Override
public ExpressQueryResponseVo queryExpressOrder(String ShipperCode, String LogisticCode) {
return null;
} }
private ExpressUserInfoVo buildReceiverBasedOnUserAddress(UserAddress userAddress) { private ExpressUserInfoVo buildReceiverBasedOnUserAddress(UserAddress userAddress) {

View File

@@ -29,4 +29,8 @@ public class ExpressOrderResponseVo {
* 原因 * 原因
*/ */
private String Reason; private String Reason;
/**
* 订单
*/
private ExpressResponseOrderVo Order;
} }

View File

@@ -0,0 +1,20 @@
package com.peanut.modules.book.vo;
import lombok.Data;
/**
* @Description: 快递查询请求 Value Object
* @Author: Cauchy
* @CreateTime: 2023/10/17
*/
@Data
public class ExpressQueryRequestVo {
/**
* 快递编码
*/
private String ShipperCode;
/**
* 快递单号
*/
private String LogisticCode;
}

View File

@@ -0,0 +1,12 @@
package com.peanut.modules.book.vo;
import lombok.Data;
/**
* @Description: TODO
* @Author: Cauchy
* @CreateTime: 2023/10/17
*/
@Data
public class ExpressQueryResponseVo {
}

View File

@@ -0,0 +1,16 @@
package com.peanut.modules.book.vo;
import lombok.Data;
/**
* @Description: TODO
* @Author: Cauchy
* @CreateTime: 2023/10/17
*/
@Data
public class ExpressResponseOrderVo {
/**
* 快递单号
*/
private String LogisticCode;
}