Commit 42961dda by xiaoer.li@freemud.com

merge

parent 10eb9ecc
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>2.1.9-SNAPSHOT</version> <version>2.2.0-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<version>1.6.4-SNAPSHOT</version> <version>1.6.5-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -94,4 +94,5 @@ ...@@ -94,4 +94,5 @@
| 2.1.6-SNAPSHOT| 升级ordercenter-sdk | lixixoaer | 2020-11-10 | | 2.1.6-SNAPSHOT| 升级ordercenter-sdk | lixixoaer | 2020-11-10 |
| 2.1.7-SNAPSHOT| 混合支付退款 | lixixoaer | 2020-11-11 | | 2.1.7-SNAPSHOT| 混合支付退款 | lixixoaer | 2020-11-11 |
| 2.1.8-SNAPSHOT| 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 | | 2.1.8-SNAPSHOT| 退款增加自动退款配置的null判断 | 刘鹏飞 | 2020-11-12 |
| 2.1.9-SNAPSHOT| 麦咖啡买三赠一 | 徐康 | 2020-11-16 | | 2.1.9-SNAPSHOT| 麦咖啡买三赠一 | 徐康 | 2020-11-16 |
\ No newline at end of file | 2.2.0-SNAPSHOT| 混合支付 | 徐康 | 2020-11-16 |
\ No newline at end of file
...@@ -263,12 +263,10 @@ public class OrderSdkAdapter { ...@@ -263,12 +263,10 @@ public class OrderSdkAdapter {
//订单重量 //订单重量
Double orderWeight = sumOrderWeight(requestVO.getProducts()); Double orderWeight = sumOrderWeight(requestVO.getProducts());
request.setWeight(orderWeight); request.setWeight(orderWeight);
request.setOrderPayItemCreateReqList(requestVO.getOrderPayItemCreateReqList());
// 扩展字段(第三方商品分类编号) // 扩展字段(第三方商品分类编号)
if (null != requestVO && null != requestVO.getOtherInfo()) { if (null != requestVO && null != requestVO.getOtherInfo()) {
request.setExtInfo(JSONObject.toJSONString(requestVO.getOtherInfo())); request.setExtInfo(JSONObject.toJSONString(requestVO.getOtherInfo()));
} }
request.setOrderPayItemCreateReqList(requestVO.getOrderPayItemCreateReqList());
return request; return request;
} }
......
...@@ -62,9 +62,6 @@ import com.freemud.application.sdk.api.promotioncenter.request.promotion.Activit ...@@ -62,9 +62,6 @@ import com.freemud.application.sdk.api.promotioncenter.request.promotion.Activit
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO;
import com.freemud.sdk.api.assortment.order.request.payment.ProductVO;
import com.freemud.sdk.api.assortment.order.request.payment.UnifiedOrderApplicationRequest;
import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest; import com.freemud.sdk.api.assortment.order.request.payment.CombPayRequest;
import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO; import com.freemud.sdk.api.assortment.order.request.payment.PayPlatformVO;
import com.freemud.sdk.api.assortment.order.request.payment.ProductVO; import com.freemud.sdk.api.assortment.order.request.payment.ProductVO;
...@@ -3504,9 +3501,7 @@ public class OrderAdapter { ...@@ -3504,9 +3501,7 @@ public class OrderAdapter {
, null , null
, createOrderVo.getUnionPayCard() , createOrderVo.getUnionPayCard()
, createOrderVo.getShopId() , createOrderVo.getShopId()
, createOrderVo.getOrderPayItemCreateReqList() , createOrderVo.getChannel());
, createOrderVo.getCashAmount()
, createOrderVo.getSvcAmount());
} }
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId
, String wxAppId, String openId , String wxAppId, String openId
...@@ -3522,9 +3517,8 @@ public class OrderAdapter { ...@@ -3522,9 +3517,8 @@ public class OrderAdapter {
, OrderClientType orderClient , OrderClientType orderClient
, CreateOrderVo.UnionPayCard unionPayCard , CreateOrderVo.UnionPayCard unionPayCard
, String storeId , String storeId
, List<OrderPayItemCreateReq> payItem , String channel
, BigDecimal cashAmount ){
, BigDecimal svcAmount){
CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto(); CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto();
requestDto.setPartnerId(partnerId); requestDto.setPartnerId(partnerId);
requestDto.setWxAppId(wxAppId); requestDto.setWxAppId(wxAppId);
...@@ -3541,9 +3535,7 @@ public class OrderAdapter { ...@@ -3541,9 +3535,7 @@ public class OrderAdapter {
requestDto.setOrderClient(orderClient); requestDto.setOrderClient(orderClient);
requestDto.setUnionPayCard(unionPayCard); requestDto.setUnionPayCard(unionPayCard);
requestDto.setStoreId(storeId); requestDto.setStoreId(storeId);
requestDto.setOrderPayItemCreateReqList(payItem); requestDto.setChannel(channel);
requestDto.setCashAmount(cashAmount);
requestDto.setSvcAmount(svcAmount);
return requestDto; return requestDto;
} }
...@@ -3623,73 +3615,46 @@ public class OrderAdapter { ...@@ -3623,73 +3615,46 @@ public class OrderAdapter {
return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel); return StringUtils.isNotBlank(payChannel) && OrderAdapter.PAY_CODE_10102.equalsIgnoreCase(payChannel);
} }
///** /**
// * 支付信息转换 * 混合支付返回的支付参数
// */ * @param payPlatforms
//public UnifiedOrderApplicationRequest convent2CombPayOrderRequest(List<OrderPayItemCreateReq> orderPayItemCreateReqList, QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, Long amount, Integer cardAmount, String partnerPayOvertime) { * @return
// UnifiedOrderApplicationRequest orderPayDto = new UnifiedOrderApplicationRequest(); */
// orderPayDto.setEbCode(paymentRequest.getPayCode()); public OrderPayResponse convent2OrderCombPayResponse(List<CombPayResponse.PayPlatform> payPlatforms,String partnerId) {
// orderPayDto.setPartnerId(orderBean.getCompanyId()); CombPayResponse.PayPlatform payPlatform = payPlatforms
// orderPayDto.setBody(paymentRequest.getPrincipalName()); .stream()
// orderPayDto.setNotifyUrl(paymentRequest.getReverseNotifyiDcUrl()); .filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
// orderPayDto.setStoreId(orderBean.getShopId()); .orElse(null);
// orderPayDto.setOpenId(paymentRequest.getOpenId());
// String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
// orderPayDto.setBusinessDate(businessDate);
// orderPayDto.setAmount(amount);
// orderPayDto.setUndisAmount(1L);
// orderPayDto.setVipAmount(Long.valueOf(cardAmount));
// orderPayDto.setAppId(paymentRequest.getWxAppId());
// orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
// List<ProductVO> productVOS = new ArrayList<ProductVO>();
// if (CollectionUtils.isNotEmpty(orderBean.getProductList())) {
// orderBean.getProductList().forEach(orderProductBean -> {
// ProductVO productBean = new ProductVO();
// productBean.setId(orderProductBean.getProductId());
// productBean.setQuantity(BigDecimal.valueOf(orderProductBean.getNumber()));
// productBean.setSeq(orderProductBean.getSequence());
// productBean.setSalesType("NORMAL");
// productBean.setPrice(orderProductBean.getPrice());
// productBean.setName(orderProductBean.getProductName());
// productVOS.add(productBean);
// });
// }
// orderPayDto.setProducts(productVOS);
// orderPayDto.setPayCode(paymentRequest.getPayCode());
// orderPayDto.setFoodOrderType(getFoodOrderType(orderBean.getOrderType()));
// List<PayPlatformVO> platforms = new ArrayList<>();
// if (null != orderPayItemCreateReqList && orderPayItemCreateReqList.size() > 0) {
// orderPayItemCreateReqList.forEach(OrderPayItem -> {
// PayPlatformVO payPlatformVO = new PayPlatformVO();
// payPlatformVO.setAmount(OrderPayItem.getPayAmount().longValue());
// payPlatformVO.setEbcode(getEbCode4PayOrderCenter(OrderPayItem.getPayChannelType()));
// platforms.add(payPlatformVO);
// });
// }
// orderPayDto.setPlatforms(platforms);
// orderPayDto.setOutOrderNo(orderBean.getOid());
// return orderPayDto;
//}
public OrderPayResponse convent2OrderCombPayResponse(UnifiedOrderApiResponse unifiedOrderResponse) {
OrderPayResponse responseDto = new OrderPayResponse(); OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setFmId(unifiedOrderResponse.getFmTradeNo()); responseDto.setMsg("succ");
responseDto.setMsg(unifiedOrderResponse.getMessage()); responseDto.setPayEbcode(payPlatform.getEbCode());
responseDto.setPayEbcode(unifiedOrderResponse.getEbCode()); responseDto.setPayId("");
responseDto.setPayId(unifiedOrderResponse.getPrepayId());
OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean(); OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean();
payBean.setAppid(unifiedOrderResponse.getAppId()); responseDto.setPayTransId(payPlatform.getTransId());
payBean.setNonceStr(unifiedOrderResponse.getNonceStr()); responseDto.setFmId(payPlatform.getFmTradeNo());
payBean.setPackageX(unifiedOrderResponse.get_package()); CombPayResponse.PayPlatform.PayOrderBean payOrderBean = payPlatform.getPayOrder();
payBean.setSign(unifiedOrderResponse.getPaySign()); if (null != payOrderBean) {
payBean.setSignType(unifiedOrderResponse.getPaySignType()); payBean.setAppid(payOrderBean.getAppId());
payBean.setTimestamp(unifiedOrderResponse.getTimestamp()); payBean.setNonceStr(payOrderBean.getNonceStr());
payBean.setAliPayOrder(unifiedOrderResponse.getPayAccount()); payBean.setPackageX(payOrderBean.getPackageX());
responseDto.setPayOrder(payBean); payBean.setSign(payOrderBean.getPaySign());
responseDto.setStatusCode(unifiedOrderResponse.getCode()); payBean.setSignType(payOrderBean.getSignType());
payBean.setTimestamp(payOrderBean.getTimeStamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
}
//供修改订单
for (CombPayResponse.PayPlatform pt : payPlatforms) {
PayItem payItem = new PayItem();
payItem.setFmTradeNo(pt.getFmTradeNo());
payItem.setPayChannelType(PayChannelType.getByEbcode(pt.getEbCode()).getIndex().intValue());
payItem.setTransId(pt.getTransId());
payItem.setPartnerId(partnerId);
responseDto.getPayItem().add(payItem);
}
return responseDto; return responseDto;
} }
/** /**
* @param payChannelType * @param payChannelType
* @return * @return
...@@ -3787,15 +3752,15 @@ public class OrderAdapter { ...@@ -3787,15 +3752,15 @@ public class OrderAdapter {
return deleteOrderDto; return deleteOrderDto;
} }
public CombPayRequest convent2CombPayOrderRequest(String cardNo //public CombPayRequest convent2CombPayOrderRequest(String cardNo
, QueryOrdersResponse.DataBean.OrderBean orderBean // , QueryOrdersResponse.DataBean.OrderBean orderBean
, PaymentRequest paymentRequest // , PaymentRequest paymentRequest
, String partnerPayOvertime // , String partnerPayOvertime
, String orderClient // , String orderClient
, String channel // , String channel
, Integer totalAmount // , Integer totalAmount
, Integer svcAmount // , Integer svcAmount
, Integer svcVAmount) { // , Integer svcVAmount) {
/** /**
* 初始化扣减活动库存请求对象 * 初始化扣减活动库存请求对象
* add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接 * add by miaohui 20201030 for 【ID1018638】【C端服务端】活动库存接口调整对接
...@@ -3814,44 +3779,15 @@ public class OrderAdapter { ...@@ -3814,44 +3779,15 @@ public class OrderAdapter {
return activityUpdateStockRequest; return activityUpdateStockRequest;
} }
/** public CombPayRequest convent2CombPayOrderRequest(String cardNo
* svc卡支付+现金支付 , QueryOrdersResponse.DataBean.OrderBean orderBean
* @param cashAmount , PaymentRequest paymentRequest
* @param svcAmount , String partnerPayOvertime
* @param payChannelType , String orderClient
* @return , String channel
*/ , Integer totalAmount
public List<OrderPayItemCreateReq> setOrderPayItem(BigDecimal cashAmount,BigDecimal svcAmount, Byte payChannelType){ , Integer svcAmount
List<OrderPayItemCreateReq> orderPayItemCreateReqs = new ArrayList<>(0); , Integer svcVAmount) {
OrderPayItemCreateReq orderPayItemCreateReqSvc = new OrderPayItemCreateReq();
//svc卡
orderPayItemCreateReqSvc.setPayAmount(svcAmount);
orderPayItemCreateReqSvc.setPayChannelType(PayChannelType.SVC.getIndex().intValue());
orderPayItemCreateReqSvc.setPayChannelName(PayChannelType.SVC.getName());
orderPayItemCreateReqSvc.setPayEbCode(PayChannelType.SVC.getEbcode());
orderPayItemCreateReqs.add(orderPayItemCreateReqSvc);
//现金支付
OrderPayItemCreateReq orderPayItemCreateReqOther = new OrderPayItemCreateReq();
orderPayItemCreateReqOther.setPayAmount(cashAmount);
orderPayItemCreateReqOther.setPayChannelType(PayChannelType.getByIndex(payChannelType).getIndex().intValue());
orderPayItemCreateReqOther.setPayChannelName(PayChannelType.getByIndex(payChannelType).getName());
orderPayItemCreateReqOther.setPayEbCode(PayChannelType.getByIndex(payChannelType).getEbcode());
orderPayItemCreateReqs.add(orderPayItemCreateReqOther);
return orderPayItemCreateReqs;
}
/**
* 混合支付预支付信息转换
* @param paymentRequest
* @param createPrepayRequestDto
* @param partnerPayOvertime
* @return
*/
public CombPayRequest convent2CombPayOrderRequest(PaymentRequest paymentRequest
, CreatePrepayRequestDto createPrepayRequestDto
, String partnerPayOvertime,String orderClient) {
CombPayRequest orderPayDto = new CombPayRequest(); CombPayRequest orderPayDto = new CombPayRequest();
orderPayDto.setEbCode(paymentRequest.getPayCode()); orderPayDto.setEbCode(paymentRequest.getPayCode());
orderPayDto.setPartner_id(orderBean.getCompanyId()); orderPayDto.setPartner_id(orderBean.getCompanyId());
...@@ -3861,15 +3797,15 @@ public class OrderAdapter { ...@@ -3861,15 +3797,15 @@ public class OrderAdapter {
orderPayDto.setOpen_id(paymentRequest.getOpenId()); orderPayDto.setOpen_id(paymentRequest.getOpenId());
String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd"); String businessDate = com.freemud.application.sdk.api.util.DateUtil.convert2String(new Date(), "yyyyMMdd");
orderPayDto.setBusiness_date(businessDate); orderPayDto.setBusiness_date(businessDate);
orderPayDto.setAmount(createPrepayRequestDto.getTotalAmount()); orderPayDto.setAmount(totalAmount.longValue());
orderPayDto.setVip_amount(0L); orderPayDto.setVip_amount(0L);
orderPayDto.setAppId(paymentRequest.getWxAppId()); orderPayDto.setAppId(paymentRequest.getWxAppId());
orderPayDto.setPayCode(paymentRequest.getPayCode()); orderPayDto.setPayCode(paymentRequest.getPayCode());
orderPayDto.setVer("V1"); orderPayDto.setVer("V1");
orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30")); orderPayDto.setPayTimeOutTime(StringUtils.defaultIfBlank(partnerPayOvertime, "30"));
List<ProductVO> productVOS = new ArrayList<ProductVO>(); List<ProductVO> productVOS = new ArrayList<ProductVO>();
if (CollectionUtils.isNotEmpty(createPrepayRequestDto.getFatherOrderBean().getProductList())) { if (CollectionUtils.isNotEmpty(orderBean.getProductList())) {
for (QueryOrdersResponse.DataBean.OrderBean.ProductBean product : createPrepayRequestDto.getFatherOrderBean().getProductList()) { for (QueryOrdersResponse.DataBean.OrderBean.ProductBean product : orderBean.getProductList()) {
ProductVO productBean = new ProductVO(); ProductVO productBean = new ProductVO();
productBean.setId(product.getProductId()); productBean.setId(product.getProductId());
productBean.setQuantity(product.getNumber()); productBean.setQuantity(product.getNumber());
...@@ -3882,67 +3818,24 @@ public class OrderAdapter { ...@@ -3882,67 +3818,24 @@ public class OrderAdapter {
} }
orderPayDto.setProducts(productVOS); orderPayDto.setProducts(productVOS);
List<PayPlatformVO> platforms = new ArrayList<>(); List<PayPlatformVO> platforms = new ArrayList<>();
if(null != createPrepayRequestDto.getOrderPayItemCreateReqList() && createPrepayRequestDto.getOrderPayItemCreateReqList().size()>0){ Long svc = svcAmount.longValue()+svcVAmount.longValue();
for (OrderPayItemCreateReq orderPayItemCreateReq : createPrepayRequestDto.getOrderPayItemCreateReqList()) { PayPlatformVO payPlatformVO = new PayPlatformVO();
PayPlatformVO payPlatformVO = new PayPlatformVO(); payPlatformVO.setClientCode(PayChannelType.SVC.getEbcode());
payPlatformVO.setAmount(orderPayItemCreateReq.getPayAmount().longValue()); payPlatformVO.setEbcode(PayChannelType.SVC.getEbcode());
payPlatformVO.setEbcode(orderPayItemCreateReq.getPayEbCode()); payPlatformVO.setAmount(svc);
if (orderPayItemCreateReq.getPayEbCode().equals(PayChannelType.SVC.getEbcode())) { platforms.add(payPlatformVO);
payPlatformVO.setClientCode(orderPayItemCreateReq.getPayEbCode());
} String ebcode = PayChannelType.getByIndex(Byte.parseByte(channel)).getEbcode();
else if (orderPayItemCreateReq.getPayEbCode().equals(PayChannelType.WECHAT.getEbcode())) { payPlatformVO = new PayPlatformVO();
payPlatformVO.setClientCode(orderClient); payPlatformVO.setAmount(totalAmount.longValue() - svc);
} payPlatformVO.setClientCode(orderClient);
else if (orderPayItemCreateReq.getPayEbCode().equals(PayChannelType.ALIPAY.getEbcode())) { payPlatformVO.setEbcode(ebcode);
payPlatformVO.setClientCode(orderClient); platforms.add(payPlatformVO);
}
platforms.add(payPlatformVO);
}
}
orderPayDto.setPlatforms(platforms); orderPayDto.setPlatforms(platforms);
orderPayDto.setOut_order_no(createPrepayRequestDto.getFatherOrderBean().getOid()); orderPayDto.setOut_order_no(orderBean.getOid());
orderPayDto.setCardCode(createPrepayRequestDto.getCardCode()); orderPayDto.setCardCode(cardNo);
return orderPayDto; return orderPayDto;
}
/**
* 混合支付返回的支付参数
* @param payPlatforms
* @return
*/
public OrderPayResponse convent2OrderCombPayResponse(List<CombPayResponse.PayPlatform> payPlatforms,String partnerId) {
CombPayResponse.PayPlatform payPlatform = payPlatforms
.stream()
.filter(f -> !PayChannelType.SVC.getEbcode().equals(f.getEbCode())).findFirst()
.orElse(null);
OrderPayResponse responseDto = new OrderPayResponse();
responseDto.setMsg("succ");
responseDto.setPayEbcode(payPlatform.getEbCode());
responseDto.setPayId("");
OrderPayResponse.PayOrderBean payBean = new OrderPayResponse.PayOrderBean();
responseDto.setPayTransId(payPlatform.getTransId());
responseDto.setFmId(payPlatform.getFmTradeNo());
CombPayResponse.PayPlatform.PayOrderBean payOrderBean = payPlatform.getPayOrder();
if (null != payOrderBean) {
payBean.setAppid(payOrderBean.getAppId());
payBean.setNonceStr(payOrderBean.getNonceStr());
payBean.setPackageX(payOrderBean.getPackageX());
payBean.setSign(payOrderBean.getPaySign());
payBean.setSignType(payOrderBean.getSignType());
payBean.setTimestamp(payOrderBean.getTimeStamp());
payBean.setAliPayOrder(payOrderBean.getAliPayOrder());
responseDto.setPayOrder(payBean);
}
//供修改订单
for (CombPayResponse.PayPlatform pt : payPlatforms) {
PayItem payItem = new PayItem();
payItem.setFmTradeNo(pt.getFmTradeNo());
payItem.setPayChannelType(PayChannelType.getByEbcode(pt.getEbCode()).getIndex().intValue());
payItem.setTransId(pt.getTransId());
payItem.setPartnerId(partnerId);
responseDto.getPayItem().add(payItem);
}
return responseDto;
} }
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.6.4-SNAPSHOT</version> <version>1.6.5-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -33,5 +33,6 @@ ...@@ -33,5 +33,6 @@
| 1.3.18.RELEASE | 麦咖啡加料 | 徐康 | 2020-10-30 | | 1.3.18.RELEASE | 麦咖啡加料 | 徐康 | 2020-10-30 |
| 1.6.3-SNAPSHOT | Add#PayChannelType | lixiaoer | 2020-11-09 | | 1.6.3-SNAPSHOT | Add#PayChannelType | lixiaoer | 2020-11-09 |
| 1.6.4-SNAPSHOT | 麦咖啡买三赠一 | 徐康 | 2020-11-16 | | 1.6.4-SNAPSHOT | 麦咖啡买三赠一 | 徐康 | 2020-11-16 |
| 1.6.5-SNAPSHOT | 混合支付 | 徐康 | 2020-11-16 |
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