Commit 4fe245a5 by vega

feat:createOrder:新增银联礼品卡支付方式,暂存,等待支付给文档

parent 2bb63b8a
......@@ -490,7 +490,7 @@ public class OrderAdapter {
createOrderDto.setLongitude(longitude);
createOrderDto.setOrderType(convent2OrderTypeEnum(orderType));
createOrderDto.setPayType(QueryPayType.ONLINE_PAY);
if (Objects.nonNull(createOrderVo.getUseUnionPayCard()) && createOrderVo.getUseUnionPayCard()) {
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
createOrderDto.setPayChannel(PayChannel.UPC.getCode());
createOrderDto.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
......@@ -548,7 +548,7 @@ public class OrderAdapter {
productOrderInfo.setBizType(1);
productOrderInfo.setOrderType(orderType);
productOrderInfo.setPayType(QueryPayType.ONLINE_PAY);
if (Objects.nonNull(createOrderVo.getUseUnionPayCard()) && createOrderVo.getUseUnionPayCard()) {
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
productOrderInfo.setPayChannel(PayChannel.UPC.getCode());
productOrderInfo.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
......@@ -681,7 +681,7 @@ public class OrderAdapter {
memberOrderInfo.setOrderType(orderType);
memberOrderInfo.setIsParent(false);
memberOrderInfo.setOrderClient(OrderClientType.I_MEMBER.getIndex());
if (Objects.nonNull(createOrderVo.getUseUnionPayCard()) && createOrderVo.getUseUnionPayCard()) {
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
memberOrderInfo.setPayChannel(PayChannel.UPC.getCode());
memberOrderInfo.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
......@@ -724,7 +724,7 @@ public class OrderAdapter {
fatherOrderInfo.setIsParent(true);
fatherOrderInfo.setOrderClient(OrderClientType.SAAS.getIndex());
fatherOrderInfo.setOrderType(orderType);
if (Objects.nonNull(createOrderVo.getUseUnionPayCard()) && createOrderVo.getUseUnionPayCard()) {
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
fatherOrderInfo.setPayChannel(PayChannel.UPC.getCode());
fatherOrderInfo.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
......@@ -2841,7 +2841,15 @@ public class OrderAdapter {
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId, String wxAppId, String openId,
String faceCode, String cardCode, String payCode, QueryOrdersResponse.DataBean.OrderBean fatherOrderBean,
QueryOrdersResponse.DataBean.OrderBean productOrderBean, long totalAmount, int cardAmount, OrderExtInfoDto orderExtInfoDTO,
String transId, OrderClientType orderClient, Boolean useUnionPayCard){
String transId, OrderClientType orderClient){
return convertToCreatePrepayRequestDto(partnerId, wxAppId, openId, faceCode, cardCode, payCode, fatherOrderBean,
productOrderBean, totalAmount, cardAmount, orderExtInfoDTO, transId, orderClient, null);
}
public CreatePrepayRequestDto convertToCreatePrepayRequestDto(String partnerId, String wxAppId, String openId,
String faceCode, String cardCode, String payCode, QueryOrdersResponse.DataBean.OrderBean fatherOrderBean,
QueryOrdersResponse.DataBean.OrderBean productOrderBean, long totalAmount, int cardAmount, OrderExtInfoDto orderExtInfoDTO,
String transId, OrderClientType orderClient, CreateOrderVo.UnionPayCard unionPayCard){
CreatePrepayRequestDto requestDto = new CreatePrepayRequestDto();
requestDto.setPartnerId(partnerId);
requestDto.setWxAppId(wxAppId);
......@@ -2856,7 +2864,7 @@ public class OrderAdapter {
requestDto.setOrderExtInfoDTO(orderExtInfoDTO);
requestDto.setTransId(transId);
requestDto.setOrderClient(orderClient);
requestDto.setUseUnionPayCard(useUnionPayCard);
requestDto.setUnionPayCard(unionPayCard);
return requestDto;
}
......@@ -2867,7 +2875,7 @@ public class OrderAdapter {
createOrderOperateDto.getFatherOrderBean(), createOrderOperateDto.getProductOrderBean(),
createOrderOperateDto.getTotalAmount() == null ? 0 : createOrderOperateDto.getTotalAmount(),
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO,
createOrderOperateDto.getFatherOrderBean().getOid(), null, createOrderVo.getUseUnionPayCard());
createOrderOperateDto.getFatherOrderBean().getOid(), null, createOrderVo.getUnionPayCard());
}
/**
......
package cn.freemud.entities.dto.order;
import cn.freemud.entities.vo.CreateOrderVo;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
......@@ -61,5 +62,5 @@ public class CreatePrepayRequestDto {
/**
* 使用银联礼品卡
*/
private Boolean useUnionPayCard;
private CreateOrderVo.UnionPayCard unionPayCard;
}
......@@ -206,9 +206,23 @@ public class CreateOrderVo {
private String channelType;
/**
* 使用银联礼品卡 true 使用, null or false 不使用
* 是否使用银联礼品卡,如果不为空则为使用
*/
private Boolean useUnionPayCard;
@Valid
private UnionPayCard unionPayCard;
/**
* 银联礼品卡
*/
@Data
public static class UnionPayCard {
@NotNull(message = "银联礼品卡手机号必传")
private String phoneNumber;
@NotNull(message = "银联礼品卡密码必传")
private String password;
}
/**
* 微信配送地址信息
......
......@@ -130,6 +130,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.aspectj.weaver.ast.Or;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
......@@ -138,6 +139,9 @@ import tk.mybatis.mapper.util.StringUtil;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
......@@ -1802,9 +1806,9 @@ public class OrderServiceImpl implements Orderservice {
String transId = createPrepayRequestDto.getTransId();
if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
} else if (totalAmount > 0 && Objects.nonNull(createPrepayRequestDto.getUseUnionPayCard()) && createPrepayRequestDto.getUseUnionPayCard()) {
} else if (totalAmount > 0 && Objects.nonNull(createPrepayRequestDto.getUnionPayCard())) {
// 银联礼品卡支付
orderPayResponse = upcPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, LogThreadLocal.getTrackingNo());
orderPayResponse = upcPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getUnionPayCard());
} else if (totalAmount > 0 && StringUtils.isBlank(cardCode)) {
orderPayResponse = getPreOrderPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getCardAmount(), transId);
} else if (totalAmount > 0 && StringUtils.isNotBlank(cardCode)) {
......@@ -1847,8 +1851,47 @@ public class OrderServiceImpl implements Orderservice {
}
}
private OrderPayResponse upcPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String transId, String trackingNo) {
return null;
/**
* unionPay card pay
* @param orderBean
* @param paymentRequest
* @param transId
* @param trackingNo
* @param unionPayCard
* @return
*/
private OrderPayResponse upcPay(QueryOrdersResponse.DataBean.OrderBean orderBean, PaymentRequest paymentRequest, String transId, String trackingNo, CreateOrderVo.UnionPayCard unionPayCard) {
OrderPayResponse orderPayResponse = new OrderPayResponse();
if (Objects.isNull(unionPayCard) || StringUtils.isBlank(unionPayCard.getPhoneNumber()) || StringUtils.isBlank(unionPayCard.getPassword())) {
orderPayResponse.setMsg("银联礼品卡信息缺失");
return orderPayResponse;
}
CodePayRequest request = new CodePayRequest();
String partnerId = orderBean.getCompanyId();
request.setBody(orderBean.getShopName());
request.setBusinessDate(DateTimeFormatter.ofPattern(DateUtil.FORMAT_YYYY_MM_DD_HHMMSS).format(LocalDateTime.now()));
// request.setCode(unionPayCard.getPhoneNumber());
request.setCode(paymentRequest.getOpenId());
request.setPartnerId(partnerId);
request.setStoreId(orderBean.getShopId());
request.setAmount(orderBean.getAmount());
request.setTransId(transId);
request.setStationId("2");
request.setOperatorId("2");
request.setVer("2");
com.freemud.application.sdk.api.base.BaseResponse<CodePayResponse> responseBase = paymentNewService.codePay(request, trackingNo);
if (responseBase == null || !ResponseCodeConstant.RESPONSE_SUCCESS_STR.equals(responseBase.getCode()) || responseBase.getData().getData() == null) {
orderPayResponse.setMsg(Objects.isNull(responseBase) ? "银联礼品卡支付异常" : responseBase.getMessage());
} else {
CodePayResponse.CodePayDate codePayResponse = responseBase.getData().getData();
orderPayResponse.setFmId(codePayResponse.getFmId());
orderPayResponse.setPayTransId(codePayResponse.getPayTransId());
orderPayResponse.setWxAppid(paymentRequest.getWxAppId());
orderPayResponse.setOpenId(paymentRequest.getOpenId());
orderPayResponse.setPartnerId(orderBean.getCompanyId());
orderPayResponse.setOrderId(orderBean.getOid());
}
return orderPayResponse;
}
/**
......@@ -2367,6 +2410,10 @@ public class OrderServiceImpl implements Orderservice {
if (totalAmount < 0) {
throw new ServiceException(ResponseResult.PAY_AMOUNT_ERROR);
}
//银联礼品卡支付
if (totalAmount > 0 && Objects.nonNull(createOrderVo.getUnionPayCard())) {
return upcPay(fatherBeanListOne, paymentRequest, fatherBeanListOne.getOid(), LogThreadLocal.getTrackingNo(), createOrderVo.getUnionPayCard());
}
//唤起微信支付
if (totalAmount > 0 && StringUtils.isBlank(createOrderVo.getCardCode()) && StringUtils.isBlank(createOrderVo.getFaceCode())) {
orderPayResponse = getPreOrderPay(fatherBeanListOne, paymentRequest, LogThreadLocal.getTrackingNo(), cardAmount, fatherBeanListOne.getOid());
......
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