Commit 987599dd by 张跃

券码预交验

parent c364d868
......@@ -26,7 +26,7 @@
<dependency>
<artifactId>couponcenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId>
<version>4.0.0-SNAPSHOT</version>
<version>4.1.2-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
......
......@@ -3651,4 +3651,81 @@ public class OrderSdkAdapter {
orderStateInfoResp.setData(info);
return orderStateInfoResp;
}
public CouponRequest convert2PreCheckRequest(QueryOrdersResponse.DataBean.OrderBean orderBean, List<CreateOrderAccountRequest> accounts,String openId) {
if (CollectionUtils.isEmpty(accounts)) {
return null;
}
Optional<CreateOrderAccountRequest> accountRequest = accounts.stream().filter(account -> account.getAccountType().equals(QueryOrderAccountType.COUPON) || account.getAccountType().equals(QueryOrderAccountType.PRODUCT_COUPON)
|| account.getAccountType().equals(QueryOrderAccountType.DISCOUNT_COUPON)).findFirst();
if (!accountRequest.isPresent() || accountRequest.get().getPrice() == 0) {
return null;
}
CreateOrderAccountRequest accountBean = accountRequest.get();
CouponRequest couponRequest = new CouponRequest();
couponRequest.setVer(Integer.valueOf(Version.VERSION_1));
couponRequest.setPartnerId(Integer.parseInt(orderBean.getCompanyId()));
ActivityChannelEnum activityChannelEnum = orderTypeEnumConvert2ActivityChannel(orderBean.getOrderType());
if (activityChannelEnum == null) {
activityChannelEnum = ActivityChannelEnum.pickup;
}
couponRequest.setChannel(activityChannelEnum.getCode());
couponRequest.setStation_id("-1");
couponRequest.setOperator_id("-1");
couponRequest.setStore_id(orderBean.getShopId());
couponRequest.setMemberId(orderBean.getUserId());
couponRequest.setOpenid(openId);
// 订单号 替换成唯一序号
couponRequest.setTrans_id(orderBean.getOid());
couponRequest.setBusiness_date(DateUtil.convert2String(new Date(), DateUtil.FORMAT_yyyyMMdd));
List<TransactionVO> transactions = new ArrayList<>();
TransactionVO couponCodeVerificationTransDto = new TransactionVO();
couponCodeVerificationTransDto.setCode(accountBean.getAccountId());
Integer discountPrice = accountBean.getPrice().intValue();
if (discountPrice != null && discountPrice < 0) {
discountPrice = 0 - discountPrice;
}
couponCodeVerificationTransDto.setTotalAmount(accountBean.getPrice().longValue());
//商品券预教研
List<ProductRedeemVO> products = new ArrayList<>();
if (OldOrderAccountType.PRODUCT_COUPON.getCode().equals(accountBean.getAccountType())) {
for (int i = 0; i < orderBean.getProductList().size(); i++) {
QueryOrdersResponse.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(i);
String pid = StringUtils.isNotBlank(productBean.getSpecification()) ? productBean.getSpecification() : productBean.getProductId();
if (!org.springframework.util.CollectionUtils.isEmpty(orderBean.getProductList().get(i).getDiscountList())) {
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount> discounts = orderBean.getProductList().get(i).getDiscountList().stream().
filter(productDiscount -> productDiscount.getDiscountId().equals(accountBean.getAccountId())).collect(Collectors.toList());
for (QueryOrdersResponse.DataBean.OrderBean.ProductBean.ProductDiscount productDiscount : discounts) {
if (productDiscount.getDiscountType() == null || productDiscount.getDiscountType() == 0) {
continue;
}
ProductRedeemVO couponCodeVerificationProductDto = new ProductRedeemVO();
couponCodeVerificationProductDto.setPid(pid);
couponCodeVerificationProductDto.setConsume_num(productDiscount.getDiscountQty());
couponCodeVerificationProductDto.setSeq(i + 1);
products.add(couponCodeVerificationProductDto);
}
}
}
}
if (CollectionUtils.isNotEmpty(products)) {
couponCodeVerificationTransDto.setProducts(products);
}
transactions.add(couponCodeVerificationTransDto);
couponRequest.setTransactions(transactions);
return couponRequest;
}
private ActivityChannelEnum orderTypeEnumConvert2ActivityChannel(Integer orderType) {
if (Objects.equals(OldOrderType.TAKE_OUT.getCode(), orderType)) {
return ActivityChannelEnum.delivery;
} else if (Objects.equals(OldOrderType.COLLECT_GOODS.getCode(), orderType) || Objects.equals(OldOrderType.EAT_IN.getCode(), orderType)) {
return ActivityChannelEnum.pickup;
}else if (Objects.equals(OldCreateOrderType.SAASMALL.getCode(), orderType)) {
return ActivityChannelEnum.saasmall;
} else {
return ActivityChannelEnum.pickup;
}
}
}
......@@ -3,7 +3,9 @@ package com.freemud.sdk.api.assortment.order.enums;
public enum ActivityChannelEnum {
// pickup-到店取餐 deliver-外卖
pickup("pickup", "到店取餐"),
delivery("delivery", "外卖");
delivery("delivery", "外卖"),
saasmall("saasmall", "外卖");
private String code;
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CreateOrderType
* @Package cn.freemud.enums
* @Description:
* @author: liming.guo
* @date: 2018/7/3 13:35
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package com.freemud.sdk.api.assortment.order.enums;
public enum OldCreateOrderType {
TAKE_OUT(2, "外卖"),
COLLECT_GOODS(1, "到店"),
SAASMALL(3, "商城");
private Integer code;
private String desc;
public static OldCreateOrderType getByCode(Integer code) {
if (code == null) {
return null;
}
for (OldCreateOrderType createOrderType : values()) {
if (createOrderType.getCode().equals(code)) {
return createOrderType;
}
}
return null;
}
OldCreateOrderType(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
......@@ -228,8 +228,11 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
// 下单成锁定劵,冻结失败提示下单失败并冲正库存积分等,判断支付渠道,积分和svc卡直接核销,无需锁定10102 = svc卡支付 || 支付金额小于等于0
//todo:统一流程 下单锁券再核销
CouponLockRequest couponLockRequest = orderSdkAdapter.convert2CouponLockRequest(orderBean, accounts);
CouponRequest request = orderSdkAdapter.convert2PreCheckRequest(orderBean, accounts, openId);
request.setChannel_codes(getOrgCodes(orderBean.getCompanyId(),orderBean.getShopId()));
if (couponLockRequest != null) {
BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.couponLock(couponLockRequest, "");
// BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.couponLock(couponLockRequest, "");
BaseResponse<CouponLockResponse> couponLockResponseBaseResponse = offlineCouponSdkService.precheckAndLock(request, LogThreadLocal.getTrackingNo());
if (!ObjectUtils.equals(RESPONSE_SUCCESS_STR, couponLockResponseBaseResponse.getCode())) {
CancelOrderRequest cancelOrderRequest = orderSdkAdapter.convent2CancelOrderRequest(orderBean.getOid(), orderBean.getCompanyId(), AfterSalesType.SYSTEM_CANCEL, "锁定券码失败", "", null);
orderCancel(cancelOrderRequest);
......
......@@ -49,7 +49,7 @@
<dependency>
<artifactId>couponcenter-sdk</artifactId>
<groupId>com.freemud.application.service.sdk</groupId>
<version>4.0.0-SNAPSHOT</version>
<version>4.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>couponcenter-sdk</artifactId>
<version>1.9.2.RELEASE</version>
<version>4.1.2-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
......
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