Commit 6bda8ab9 by 查志伟

退款接口代码优化

parent 8eba73db
package cn.freemud.adapter;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.sdk.api.assortment.order.enums.AfterSalesRefunStateEnum;
import com.freemud.sdk.api.assortment.order.enums.OperationClientEnum;
import com.freemud.sdk.api.assortment.order.request.order.CancelOrderRequest;
import org.apache.commons.lang.StringUtils;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
public class CancelOrderRequestAdapter {
public static CancelOrderRequest convert(OrderInfoReqs order, String refundId, AfterSalesType afterSalesType, String reason, Boolean refundDeliveryFee, Byte refundMode) {
CancelOrderRequest req = new CancelOrderRequest();
req.setOrderId(order.getOrderCode());
req.setPartnerId(order.getPartnerId());
req.setAfterSalesType(afterSalesType);
req.setOrderClient(order.getOrderClient());
if (StringUtils.isNotBlank(reason) && reason.length() > 50) {
reason = reason.substring(0, 50);
}
req.setReason(reason);
req.setTrackingNo(LogThreadLocal.getTrackingNo());
req.setRefundSerialNo(refundId);
//操作来源客户端 1:POS插件 2:小助手 3:开放平台 4:自动任务 5:用户端 6:系统 7:万象 8:太一
req.setOperationClient(OperationClientEnum.STATE_5.getIndex());
req.setOperator(order.getUserName());
if (AfterSalesType.SYSTEM_CANCEL.getIndex().equals(afterSalesType.getIndex())) {
req.setOperator("admin");
req.setOperationClient(OperationClientEnum.STATE_6.getIndex());
}
//若为4,默认做【创建】+【同意并退款完成】,售后单状态为【完成】
req.setCreateEvent(4);
// 这里给默认值,外面调用者 自己的根据业务判断退款 状态
req.setRefundState(AfterSalesRefunStateEnum.STATE_1.getIndex());
req.setReqRemark(reason);
req.setRefundDeliveryAmount(refundDeliveryFee);
// 商城订单 增加拓展信息
CancelOrderRequest.AfterSalesOrderExtInfoReq ext = new CancelOrderRequest.AfterSalesOrderExtInfoReq();
ext.setRefundMode(refundMode);
req.setExtInfoReq(ext);
return req;
}
}
......@@ -13,7 +13,6 @@
package cn.freemud.adapter;
import cn.freemud.entities.dto.PushMessageTokenDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
......@@ -37,7 +36,7 @@ public class MessageNoticeAdapter {
return pushMessageTokenDto;
}
public PushMessageNoticeDto convent2PushMessageNoticeDto(Integer targetType, String partnerId,
public static PushMessageNoticeDto convent2PushMessageNoticeDto(Integer targetType, String partnerId,
String storeId, String userId, String oid, String takeCode, String queueIndex) {
PushMessageNoticeDto pushMessageNoticeDto = new PushMessageNoticeDto();
pushMessageNoticeDto.setPartnerId(partnerId);
......
package cn.freemud.adapter;
import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.OrderPrintDto;
import cn.freemud.enums.CostTypeEnum;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.ordercenter.enums.ProductTypeEnum;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderCostResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderItemResp;
import com.freemud.sdk.api.assortment.order.enums.StoreDeliveryMethod;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author Clover.z
* @version 1.0.0
* @since 1.0.0
*/
public class OrderPrintDtoAdapter {
public static OrderPrintDto convert(OrderInfoReqs order, String reason) {
OrderPrintDto orderPrintDto = new OrderPrintDto();
orderPrintDto.setPartnerId(order.getPartnerId());
orderPrintDto.setStoreId(order.getStoreId());
//确定日订单序号
orderPrintDto.setType(order.getOrderType());
orderPrintDto.setOid(order.getOrderCode());
orderPrintDto.setUserName(order.getUserName());
orderPrintDto.setDaySeq(order.getDaySeq() == null ? "" : order.getDaySeq().toString());
orderPrintDto.setPhone(order.getUserMobile());
if (CollectionUtils.isNotEmpty(order.getDeliveryContactInfoList())) {
order.getDeliveryContactInfoList().stream().filter(c -> Objects.equals(c.getRelateObjectType(), 1))
.findFirst().ifPresent(c -> orderPrintDto.setAddress(c.getAddressDetail()));
order.getDeliveryContactInfoList().stream().filter(c -> Objects.equals(c.getRelateObjectType(), 3))
.findFirst().ifPresent(c -> {
if (Objects.equals(c.getAddressDetail(), StoreDeliveryMethod.THIRD.getCode())) {
orderPrintDto.setDeliveryTypeDesc("第三方配送");
if (StringUtils.isNotBlank(order.getExpressChannelName())) {
orderPrintDto.setDeliveryTypeDesc(order.getExpressChannelName());
}
} else {
orderPrintDto.setDeliveryTypeDesc("自配送");
}
});
}
orderPrintDto.setGmtExpect(order.getExpectTime() == null
? "立即送出"
: (DateUtil.convert2String(new Date(Long.parseLong(order.getExpectTime())), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)));
orderPrintDto.setRemark(order.getNote());
Integer count = order.getOrderItemList().stream().map(OrderItemResp::getProductQuantity).reduce(Integer::sum).get();
orderPrintDto.setProductTotalAmount(count);
Long packageFee = 0L;
long sendFee = 0L;
if (CollectionUtils.isNotEmpty(order.getOrderCostDetailList())) {
for (OrderCostResp cost : order.getOrderCostDetailList()) {
if (CostTypeEnum.PACK_AMOUNT.getCode().equals(cost.getCostType())) {
packageFee = cost.getActualCostAmount().longValue();
} else if (CostTypeEnum.DELIVERY_AMOUNT.getCode().equals(cost.getCostType())) {
sendFee = cost.getActualCostAmount().longValue();
}
}
}
orderPrintDto.setPackageFee(packageFee);
orderPrintDto.setProductAmount(order.getSettlementAmount().longValue() - sendFee);
orderPrintDto.setSendFee(sendFee);
orderPrintDto.setDiscountFee(order.getOriginalAmount().longValue() - order.getSettlementAmount().longValue());
orderPrintDto.setUserFee(order.getActualPayAmount().longValue());
orderPrintDto.setGmtCreate(DateUtil.convert2String(new Date(Long.parseLong(order.getCreateTime())), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
orderPrintDto.setShopName(order.getStoreName());
orderPrintDto.setOtherCode(order.getPickUpGoodsNo());
List<OrderPrintDto.ProductsBean> productsBeans = getProducts(order.getOrderItemList());
orderPrintDto.setProducts(productsBeans);
orderPrintDto.setBarCounter(order.getBarCounter());
orderPrintDto.setRemark(reason);
return orderPrintDto;
}
public static List<OrderPrintDto.ProductsBean> getProducts(List<OrderItemResp> itemList) {
if (CollectionUtils.isEmpty(itemList)) {
return Collections.emptyList();
}
List<OrderPrintDto.ProductsBean> products = Lists.newArrayList();
// 将订单里同一商品下的所有子商品放到一个集合中 key:父商品id, value为子商品集合
Map<String, List<OrderItemResp>> sItemMap = itemList
.stream()
.filter(item -> !item.getParentProductId().equals("0"))
.collect(Collectors.groupingBy(OrderItemResp::getParentProductId));
for (OrderItemResp item : itemList) {
//非主商品跳过
if (!item.getParentProductId().equals("0")) continue;
OrderPrintDto.ProductsBean productVO = getProductBean(item);
//匹配子商品
List<OrderItemResp> sList = sItemMap.get(item.getProductId() + "_" + item.getProductSeq());
List<OrderPrintDto.ProductsBean> comboProductVOs = new ArrayList<>();
List<OrderPrintDto.ProductsBean> materialProductVOs = new ArrayList<>();
if (CollectionUtils.isNotEmpty(sList)) {
sList.forEach(sItem -> {
OrderPrintDto.ProductsBean son = getProductBean(sItem);
if (ProductTypeEnum.MATERIAL_PRODUCT.getCode().equals(sItem.getProductType())) {
materialProductVOs.add(son);
} else {
comboProductVOs.add(son);
}
});
}
productVO.setSonProducts(comboProductVOs);
productVO.setMaterialProducts(materialProductVOs);
products.add(productVO);
}
return products;
}
private static OrderPrintDto.ProductsBean getProductBean(OrderItemResp item) {
OrderPrintDto.ProductsBean productBean1 = new OrderPrintDto.ProductsBean();
productBean1.setParentProductId(item.getParentProductId());
productBean1.setSequence(item.getProductSeq());
productBean1.setProductId(item.getProductSpec());
productBean1.setProductName(item.getProductSpecName());
productBean1.setNumber(item.getProductQuantity());
String extraName = "";
if (StringUtils.isNotBlank(item.getExtInfo())) {
OrderItemResp.ExtInfo itemExt = JSON.parseObject(item.getExtInfo(), OrderItemResp.ExtInfo.class);
if (CollectionUtils.isNotEmpty(itemExt.getSpecialAttrs())) {
extraName = StringUtils.join(itemExt.getSpecialAttrs().stream()
.map(OrderItemResp.ExtAttr::getExtraName)
.collect(Collectors.toList()), "/");
}
}
productBean1.setPrice(item.getProductPrice().longValue());
productBean1.setProductOtherInfo(extraName);
productBean1.setParentType(item.getProductType());
productBean1.setSonProducts(new ArrayList<>());
productBean1.setUnit(item.getProductUnit());
productBean1.setProductSpuQuantity(item.getProductSpuQuantity());
return productBean1;
}
}
......@@ -50,6 +50,7 @@ public class ExposureOrderController {
*/
@ApiAnnotation(logMessage = "创建订单,死信队列")
@PostMapping("/deadLetterQueue")
@Deprecated
public BaseResponse deadLetterQueue(@Validated @LogParams @RequestBody PutDeadLetterVo putDeadLetterVo) {
payService.putDelMq(putDeadLetterVo.getPartnerId(), putDeadLetterVo.getStoreId(), putDeadLetterVo.getFmId(), putDeadLetterVo.getOrderId(), putDeadLetterVo.getPayChanelType());
return ResponseUtil.success();
......
......@@ -26,6 +26,7 @@ import cn.freemud.handler.OrderReportJobHandler;
import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.Orderservice;
import cn.freemud.service.PointsMallOrderService;
import cn.freemud.service.RefundService;
import cn.freemud.service.impl.MallOrderServiceImpl;
import cn.freemud.service.impl.OrderAdapterServiceImpl;
import cn.freemud.utils.AppLogUtil;
......@@ -34,6 +35,7 @@ import cn.freemud.xxljob.OrderCountJobHandler;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
......@@ -64,6 +66,8 @@ public class OrderController {
private CouponOrderAutoRefundHandler couponOrderAutoRefundHandler;
@Autowired
private PointsMallOrderService pointsMallOrderService;
@Autowired
private RefundService refundService;
/**
* 废弃,不在使用
......@@ -240,8 +244,12 @@ public class OrderController {
*/
@ApiAnnotation(logMessage = "refund")
@PostMapping("/refund")
public BaseResponse refund(@Validated @LogParams @RequestBody OrderRefundVo orderRefundVo) {
return orderservice.orderRefund(orderRefundVo);
public BaseResponse<Void> refund(@Validated @LogParams @RequestBody OrderRefundVo reqVo) {
// 微商城因为没有退款原因选项 所以将用户退款说明用户作为退款原因
String reason = StringUtils.isBlank(reqVo.getReason())
? reqVo.getRemarks() : reqVo.getReason();
refundService.refundOrder(reqVo.getPartnerId(), reqVo.getOid(), reason, reqVo.getRefundMode());
return ResponseUtil.success();
}
......
......@@ -2,8 +2,8 @@ package cn.freemud.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.OrderDevelopRefundVo;
import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.service.Orderservice;
import cn.freemud.service.RefundService;
import cn.freemud.utils.ResponseUtil;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
......@@ -24,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
public class OrderDeveloperController {
@Autowired
private Orderservice orderservice;
private RefundService refundService;
/**
* 订单内部人员操作 给订单退款, 使用该接口需要报备
......@@ -33,8 +35,8 @@ public class OrderDeveloperController {
*/
@ApiAnnotation(logMessage = "/order/develop/refund")
@PostMapping("/refund")
public BaseResponse developRefund(@Validated @LogParams @RequestBody OrderDevelopRefundVo orderRefundVo) {
return orderservice.developRefund(orderRefundVo);
public BaseResponse<Map<String, String>> developRefund(@Validated @LogParams @RequestBody OrderDevelopRefundVo orderRefundVo) {
return ResponseUtil.success(refundService.batchDevelopRefund(orderRefundVo));
}
}
......@@ -18,6 +18,7 @@ public enum PayStatus {
HAVE_PAID(2, "已支付","Paid"),
HAVE_REFUND(3, "已退款","Refunded"),
HAVE_PART_REFUND(4, "已经部分退款","Partial refund"),
@Deprecated
COMPLETE(5, "完成","Complete");
......
......@@ -75,47 +75,11 @@ public interface Orderservice extends OrderFactoryService{
BaseResponse cancelPayOrder(DeleteOrderVo deleteOrderVo);
/**
* 支付取消删除订单
*/
// BaseResponse deleteOrderById(DeleteOrderVo deleteOrderVo);
/**
* 订单申请退款
*/
BaseResponse orderRefund(OrderRefundVo orderRefundVo);
/**
* 获取订单排队号
*/
BaseResponse queryOrderQueueIndex(QueryOrderQueueIndexVo queryOrderQueueIndexVo);
/**
* 用户评价
*/
//BaseResponse userOrderEvaluation(AddUserOrderEvaluationRequestVo requestVo);
/**
* 用户评价(新接口)
*/
//BaseResponse userOrderEvaluationNew(AddUserOrderEvaluationNewRequestVo requestVo);
/**
* 根据订单查询对应的订单详情
*/
//BaseResponse getEvaluationByOrderId(GetEvaluationDetailByOrderIdRequestVo requestVo);
/**
* 判断订单是否已经评价
*/
//BaseResponse getEvaluationStatus(GetEvaluationDetailByOrderIdRequestVo requestVo);
/**
* 判断订单是否已经评价(新接口)
*/
//BaseResponse getEvaluationStatusNew(GetEvaluationStatusNewRequestVo requestVo);
/**
* 获取退款理由
*/
@Deprecated
......@@ -220,10 +184,5 @@ public interface Orderservice extends OrderFactoryService{
*/
BaseResponse couponOrderRefundRetry(OrderRefundRetryVo orderRefundRetryVo);
/**
* 开发人员 操作退款订单 该接口 生产使用请通知SE
* @param orderRefundVo
* @return
*/
BaseResponse developRefund(OrderDevelopRefundVo orderRefundVo);
}
......@@ -201,7 +201,7 @@ public class OrderCommonService {
* 发送pos端消息
*/
public void sendPosMessage(String partnerId, String storeId,String orderId) {
PushMessageNoticeDto pushMessageNoticeDto = messageNoticeAdapter.convent2PushMessageNoticeDto(1, partnerId, storeId,
PushMessageNoticeDto pushMessageNoticeDto = MessageNoticeAdapter.convent2PushMessageNoticeDto(1, partnerId, storeId,
null, orderId, null, null);
messageNoticeClient.createMessage(pushMessageNoticeDto,LogThreadLocal.getTrackingNo());
}
......
package cn.freemud.service.thirdparty;
import com.freemud.application.sdk.api.ordercenter.annotation.LogIgnoreFeign;
import cn.freemud.entities.dto.QueryInvoiceRepDto;
import cn.freemud.entities.vo.QueryInvoiceReq;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name = "ORDER-SERVICE")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface OrderClient {
/**
* 2021年9月15日-开票历史列表接口+详情接口+发票所含订单接口-黄兆良
* 开票历史列表接口
*/
@PostMapping(value = "/order/v2/invoice/list/forUser")
@LogIgnoreFeign(logMessage="queryInvoiceList")
QueryInvoiceRepDto queryInvoiceList(@RequestBody QueryInvoiceReq queryInvoiceReq);
}
......@@ -2,7 +2,6 @@ package cn.freemud.management.adapter;
import cn.freemud.management.entities.dto.request.pay.AgentPayRefundReq;
import cn.freemud.management.entities.dto.request.pay.PayRefundRequestDto;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.ordercenter.entities.v1.OrderBeanV1;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
......@@ -32,16 +31,17 @@ public class PaymentSdkAdapter {
@Value("${saas.refund.notify.callback}")
private String refundNotifyCallback;
public PayRefundRequestDto getOrderRefundRequest(OrderBeanV1 orderBean, BigDecimal refundAmount) {
public PayRefundRequestDto getOrderRefundRequest(String partnerId, String storeCode, String orderCode,
BigDecimal refundAmount, String payNo, String extInfoStr) {
PayRefundRequestDto refundRequestDTO = new PayRefundRequestDto();
refundRequestDTO.setPartnerId(orderBean.getCompanyId());
refundRequestDTO.setStoreId(orderBean.getShopId());
refundRequestDTO.setOrgTransId(orderBean.getOid());
refundRequestDTO.setPartnerId(partnerId);
refundRequestDTO.setStoreId(storeCode);
refundRequestDTO.setOrgTransId(orderCode);
refundRequestDTO.setRefundAmount(refundAmount.longValue());
refundRequestDTO.setNotifyUrl(refundNotifyCallback);
OrderExtInfoDto orderExtInfoDto = JSONObject.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
OrderExtInfoDto orderExtInfoDto = JSONObject.parseObject(extInfoStr, OrderExtInfoDto.class);
refundRequestDTO.setAppId(orderExtInfoDto.getAppid());
refundRequestDTO.setOrgPayFmId(orderBean.getPayVoucher());
refundRequestDTO.setOrgPayFmId(payNo);
refundRequestDTO.setOpenid(orderExtInfoDto.getOpenid());
refundRequestDTO.setRefundId(getRefundSerialNo().toString());
return refundRequestDTO;
......@@ -62,30 +62,28 @@ public class PaymentSdkAdapter {
}
@SneakyThrows
public MultiOrderRefundRequest getMultiOrderPayRefundRequest(OrderBeanV1 orderBean, BigDecimal refundAmount) {
public MultiOrderRefundRequest getMultiOrderPayRefundRequest(String partnerId, String storeCode, String orderCode, BigDecimal refundAmount) {
MultiOrderRefundRequest multiQueryRequest = new MultiOrderRefundRequest();
multiQueryRequest.setStationId("1");
multiQueryRequest.setPartnerId(orderBean.getCompanyId());
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setPartnerId(partnerId);
multiQueryRequest.setStoreId(storeCode);
multiQueryRequest.setFmId("");
multiQueryRequest.setRefundAmount(Long.valueOf(String.valueOf(refundAmount)));
multiQueryRequest.setRefundTradeNo(String.valueOf(getRefundSerialNo()));
multiQueryRequest.setStoreId(orderBean.getShopId());
multiQueryRequest.setNotifyUrl(refundNotifyCallback);
multiQueryRequest.setVer("V1");
multiQueryRequest.setVer3(false);
multiQueryRequest.setOutOrderNo(orderBean.getOid());
multiQueryRequest.setOutOrderNo(orderCode);
return multiQueryRequest;
}
@SneakyThrows
public AgentPayRefundReq getAgentPayefundReq(OrderBeanV1 orderBean, BigDecimal refundAmount) {
OrderExtInfoDto ext = JSON.parseObject(orderBean.getExtInfo(), OrderExtInfoDto.class);
public AgentPayRefundReq getAgentPayRefundReq(String partnerId, String storeCode, String orderCode, BigDecimal refundAmount, String fmTradeNo) {
AgentPayRefundReq req = new AgentPayRefundReq();
req.setPartnerId(orderBean.getCompanyId());
req.setStoreId(orderBean.getShopId());
req.setFmTradeNo(ext.getPayTransId());
req.setOutOrderNo(orderBean.getOid());
req.setPartnerId(partnerId);
req.setStoreId(storeCode);
req.setFmTradeNo(fmTradeNo);
req.setOutOrderNo(orderCode);
req.setRefundTradeNo(this.getRefundSerialNo().toString());
req.setRefundAmount(refundAmount.longValue());
req.setNotifyUrl(refundNotifyCallback);
......
......@@ -15,6 +15,7 @@ package com.freemud.application.sdk.api.ordercenter.response.orderInfo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class OrderItemResp {
......@@ -135,4 +136,117 @@ public class OrderItemResp {
*/
private Integer productSpuQuantity;
@Data
public static class ExtInfo {
/**
* 是否是赠品
*/
private Boolean isSendGoods;
/**
* 购物车行id
*/
private String cartGoodsUid;
/**
* 积分商品活动使用总积分
*/
private Long score;
/**
* 是否是固定搭配
*/
private Boolean isFixedProduct;
/**
* spu商品货号
*/
private String spuProductCode;
/**
* 属性三方id, 多个用,拼接(推送pos需要)
*/
private String thirdProductPropertyId;
/**
* 三方规格值id, 多个用,拼接(推送pos需要)
*/
private String thirdProductSpecId;
/**
* 凌顶pos 商品编码id
*/
private String linkedId;
/**
* 买一赠一时, 赠品商品的该属性表示原商品购物车id
* 其他赠送活动, 这里设置为活动号
*/
private String originalId;
/**
* 商品组信息
*/
private List<ExtGroup> productGroupList;
/**
* 商品属性信息
*/
private List<ExtAttr> specialAttrs;
/**
* 虚拟商品绑定的券信息
*/
private List<CouponInfo> productBindingCoupons;
/**
* 参与会员价活动时,用户所生效的会员卡或者会员等级名称
*/
private String currentMembershipLevel;
/**
* 是否限制库存
* 用于创建订单时,是否扣减库存
*/
private boolean stockLimit;
/**
* 套餐库存模式
*/
private Integer stockMode;
}
@Data
public static class ExtAttr {
/**
* 属性id
*/
private String extraId;
/**
* 属性名称
*/
private String extraName;
}
@Data
public static class ExtGroup {
/**
* 商品组id
*/
private String groupId;
/**
* 商品组名称
*/
private String groupName;
/**
* 第三方商品组编码
*/
private String thirdGroupId;
}
@Data
public static class CouponInfo {
/**
* 券模板(券活动号)
*/
private String activityCode;
/**
* 券模板名称(活动名称)
*/
private String activityName;
/**
* 券商品数量
*/
private Integer num;
}
}
......@@ -3,6 +3,7 @@ package com.freemud.application.sdk.api.ordercenter.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.freemud.application.sdk.api.base.BaseRequest;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.config.OrderCenterProperties;
import com.freemud.application.sdk.api.ordercenter.constant.InterfaceAddressConstant;
import com.freemud.application.sdk.api.ordercenter.constant.ResponseConstant;
......@@ -115,6 +116,17 @@ public class OrderSdkService {
return responseDTO;
}
/**
* 查询单个订单详情
*
* @param partnerId 商户号
* @param orderCode 订单号
* @return
*/
public QueryByCodeResponse getOrderInfo(String partnerId, String orderCode) {
return getOrderInfo(null, orderCode, null, null, LogThreadLocal.getTrackingNo(), partnerId);
}
/**
* 查询单个订单详情
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment