快递100取消面单
This commit is contained in:
1 parent
7701b823c0
commit
81b10cea79
5 files changed
+74
-2
No files matched your search
+2
@@ -39,6 +39,8 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode ORDER_PICK_UP_FAIL_NOT_VERIFY_USER = new ErrorCode(1_011_000_034, "交易订单自提失败,原因:你没有核销该门店订单的权限");
|
||||
ErrorCode ORDER_CREATE_FAIL_INSUFFICIENT_USER_POINTS = new ErrorCode(1_011_000_035, "交易订单创建失败,原因:用户积分不足");
|
||||
ErrorCode OMS_EXPRESS_ORDER_CREATE_ERROR = new ErrorCode(1_011_000_036, "快递订单创建失败,原因:{}");
|
||||
ErrorCode ORDER_DELIVERY_FAIL_STATUS_NOT_DELIVERED = new ErrorCode(1_011_000_037, "交易订单取消发货失败,订单不是【已发货】状态");
|
||||
ErrorCode OMS_EXPRESS_ORDER_CANCEL_ERROR = new ErrorCode(1_011_000_036, "快递订单取消失败,原因:{}");
|
||||
|
||||
// ========== After Sale 模块 1-011-000-100 ==========
|
||||
ErrorCode AFTER_SALE_NOT_FOUND = new ErrorCode(1_011_000_100, "售后单不存在");
|
||||
|
||||
+5
@@ -23,3 +23,8 @@ tenant-id: {{adminTenantId}}
|
||||
PUT {{baseUrl}}/trade/order/delivery-kuaidi100?id=14
|
||||
Authorization: Bearer {{token}}
|
||||
tenant-id: {{adminTenantId}}
|
||||
|
||||
### 快递100订单取消
|
||||
PUT {{baseUrl}}/trade/order/cancel-kuaidi100?id=14
|
||||
Authorization: Bearer {{token}}
|
||||
tenant-id: {{adminTenantId}}
|
||||
+8
@@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderLogDO;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderLogService;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
|
||||
import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
|
||||
import com.kuaidi100.sdk.response.PrintBaseResp;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -130,6 +131,13 @@ public class TradeOrderController {
|
||||
return success(tradeOrderUpdateService.deliveryKuaidi100(id));
|
||||
}
|
||||
|
||||
@PutMapping("/cancel-kuaidi100")
|
||||
@Operation(summary = "申通快递(快递100)面单取消")
|
||||
@PreAuthorize("@ss.hasPermission('trade:order:update')")
|
||||
public CommonResult<String> cancelKuaidi100(@RequestParam("id") Long id) {
|
||||
return success(tradeOrderUpdateService.cancelKuaidi100(id));
|
||||
}
|
||||
|
||||
@PutMapping("/update-remark")
|
||||
@Operation(summary = "订单备注")
|
||||
@PreAuthorize("@ss.hasPermission('trade:order:update')")
|
||||
|
||||
+3
@@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettle
|
||||
import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettlementRespVO;
|
||||
import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO;
|
||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
|
||||
import com.kuaidi100.sdk.response.PrintBaseResp;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
@@ -221,4 +222,6 @@ public interface TradeOrderUpdateService {
|
||||
void deliverySto(Long id);
|
||||
|
||||
String deliveryKuaidi100(Long id);
|
||||
|
||||
String cancelKuaidi100(Long id);
|
||||
}
|
||||
+56
-2
@@ -71,6 +71,7 @@ import com.kuaidi100.sdk.contant.CompanyConstant;
|
||||
import com.kuaidi100.sdk.contant.PrintType;
|
||||
import com.kuaidi100.sdk.core.IBaseClient;
|
||||
import com.kuaidi100.sdk.pojo.HttpResult;
|
||||
import com.kuaidi100.sdk.request.LabelCancelParam;
|
||||
import com.kuaidi100.sdk.request.ManInfo;
|
||||
import com.kuaidi100.sdk.request.PrintReq;
|
||||
import com.kuaidi100.sdk.request.labelV2.OrderReq;
|
||||
@@ -149,6 +150,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
@Resource
|
||||
private TradeOrderProperties tradeOrderProperties;
|
||||
|
||||
private static final String key = "moaqEZhD6889";
|
||||
private static final String secret = "f46d0c0071be4841818482c5ed8c27b5";
|
||||
|
||||
// =================== Order ===================
|
||||
|
||||
@Value("${sto.api_url}")
|
||||
@@ -600,8 +604,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
}
|
||||
|
||||
//授权码
|
||||
String key = "moaqEZhD6889";
|
||||
String secret = "f46d0c0071be4841818482c5ed8c27b5";
|
||||
// String key = "moaqEZhD6889";
|
||||
// String secret = "f46d0c0071be4841818482c5ed8c27b5";
|
||||
|
||||
ManInfo recManInfo = new ManInfo();
|
||||
recManInfo.setName(order.getReceiverName());
|
||||
@@ -691,6 +695,56 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public String cancelKuaidi100(Long id) {
|
||||
// 1.1 校验并获得交易订单(可发货)
|
||||
TradeOrderDO order = validateOrderDeliverable(id);
|
||||
// 1.2 校验 deliveryType 是否为快递,是快递才可以发货
|
||||
if (ObjectUtil.notEqual(order.getDeliveryType(), DeliveryTypeEnum.EXPRESS.getType())) {
|
||||
throw exception(ORDER_DELIVERY_FAIL_DELIVERY_TYPE_NOT_EXPRESS);
|
||||
}
|
||||
if (ObjectUtil.notEqual(order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus())) {
|
||||
throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_DELIVERED);
|
||||
}
|
||||
LabelCancelParam labelCancelParam = new LabelCancelParam();
|
||||
labelCancelParam.setPartnerId("314056015875");
|
||||
labelCancelParam.setPartnerKey("123456");
|
||||
labelCancelParam.setNet("314056");
|
||||
labelCancelParam.setCode("44");
|
||||
labelCancelParam.setKuaidicom(CompanyConstant.ST);
|
||||
labelCancelParam.setKuaidinum(order.getLogisticsNo());
|
||||
//快递公司订单号(对应下单时返回的kdComOrderNum,如果没有可以不传,否则必传)
|
||||
labelCancelParam.setOrderId("01639366271685GNkZEX");
|
||||
//业务员编码,部分快递公司必填
|
||||
// labelCancelParam.setCheckMan("123");
|
||||
//产品业务类型,部分快递公司必填
|
||||
labelCancelParam.setExpType("标准快递");
|
||||
|
||||
labelCancelParam.setReason("暂时不寄了");
|
||||
String param = new Gson().toJson(labelCancelParam);
|
||||
String t = System.currentTimeMillis() + "";
|
||||
|
||||
PrintReq printReq = new PrintReq();
|
||||
printReq.setT(t);
|
||||
printReq.setKey(key);
|
||||
printReq.setMethod(ApiInfoConstant.CANCEL_METHOD);
|
||||
printReq.setSign(SignUtils.printSign(param,t,key,secret));
|
||||
printReq.setParam(param);
|
||||
|
||||
IBaseClient baseClient = new LabelV2();
|
||||
try {
|
||||
HttpResult httpResult = baseClient.execute(printReq);
|
||||
System.out.println(httpResult);
|
||||
if (httpResult.getStatus() == org.apache.http.HttpStatus.SC_OK && StringUtils.isNotBlank(httpResult.getBody())){
|
||||
return httpResult.getBody();
|
||||
}else {
|
||||
throw exception(OMS_EXPRESS_ORDER_CANCEL_ERROR, "接口无返回内容");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw exception(OMS_EXPRESS_ORDER_CANCEL_ERROR, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Async
|
||||
public void sendDeliveryOrderMessage(TradeOrderDO order, TradeOrderDeliveryReqVO deliveryReqVO) {
|
||||
// 构建并发送模版消息
|
||||
|
||||
Reference in new issue
Block a user