Commit 75f32fee by 徐康

Merge remote-tracking branch 'origin/develop' into develop

parents 4ecbcad9 51ca5364
......@@ -60,7 +60,7 @@ public class CancelOrderRequest extends BaseConfig {
*
*/
private Integer createEvent;
private Integer orderClient= OrderClientType.SAAS.getIndex();
private Integer orderClient = OrderClientType.SAAS.getIndex();
//操作人
private String operator;
......@@ -70,4 +70,8 @@ public class CancelOrderRequest extends BaseConfig {
*/
@Builder.Default
private boolean isRefundDeliveryAmount = true;
/**
* 取消原因
*/
private String afterSalesReason;
}
......@@ -541,7 +541,10 @@ public class OrderAdapter {
createOrderDto.setLongitude(longitude);
createOrderDto.setOrderType(convent2OrderTypeEnum(orderType));
createOrderDto.setPayType(QueryPayType.ONLINE_PAY);
if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
createOrderDto.setPayChannel(PayChannel.UPC.getCode());
createOrderDto.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
createOrderDto.setPayChannel("10102");
createOrderDto.setPayChannelName("储值卡支付");
}
......@@ -597,7 +600,10 @@ public class OrderAdapter {
productOrderInfo.setBizType(1);
productOrderInfo.setOrderType(orderType);
productOrderInfo.setPayType(QueryPayType.ONLINE_PAY);
if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
productOrderInfo.setPayChannel(PayChannel.UPC.getCode());
productOrderInfo.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
productOrderInfo.setPayChannel("10102");
productOrderInfo.setPayChannelName("储值卡支付");
}
......@@ -727,7 +733,10 @@ public class OrderAdapter {
memberOrderInfo.setOrderType(orderType);
memberOrderInfo.setIsParent(false);
memberOrderInfo.setOrderClient(OrderClientType.I_MEMBER.getIndex());
if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
memberOrderInfo.setPayChannel(PayChannel.UPC.getCode());
memberOrderInfo.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
memberOrderInfo.setPayChannel("10102");
memberOrderInfo.setPayChannelName("储值卡支付");
}
......@@ -767,7 +776,10 @@ public class OrderAdapter {
fatherOrderInfo.setIsParent(true);
fatherOrderInfo.setOrderClient(OrderClientType.SAAS.getIndex());
fatherOrderInfo.setOrderType(orderType);
if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
if (Objects.nonNull(createOrderVo.getUnionPayCard())) {
fatherOrderInfo.setPayChannel(PayChannel.UPC.getCode());
fatherOrderInfo.setPayChannelName(PayChannel.UPC.getDesc());
} else if(StringUtils.isNotBlank(createOrderVo.getCardCode())){
fatherOrderInfo.setPayChannel("10102");
fatherOrderInfo.setPayChannelName("储值卡支付");
}
......@@ -1036,6 +1048,8 @@ public class OrderAdapter {
responseVo.setOrderPayType("支付宝支付");
} else if (ordersBean.getPayChannel() != null && PayChannel.WXPAY.getCode().equals(ordersBean.getPayChannel())) {
responseVo.setOrderPayType("微信支付");
} else if (ordersBean.getPayChannel() != null && Objects.equals(PayChannel.UPC.getCode(), ordersBean.getPayChannel())) {
responseVo.setOrderPayType("银联礼品卡支付");
} else {
responseVo.setOrderPayType("微信支付");
}
......@@ -3030,6 +3044,14 @@ public class OrderAdapter {
String faceCode, String cardCode, String payCode, QueryOrdersResponse.DataBean.OrderBean fatherOrderBean,
QueryOrdersResponse.DataBean.OrderBean productOrderBean, long totalAmount, int cardAmount, OrderExtInfoDto orderExtInfoDTO,
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);
......@@ -3044,6 +3066,7 @@ public class OrderAdapter {
requestDto.setOrderExtInfoDTO(orderExtInfoDTO);
requestDto.setTransId(transId);
requestDto.setOrderClient(orderClient);
requestDto.setUnionPayCard(unionPayCard);
return requestDto;
}
......@@ -3054,7 +3077,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);
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;
......@@ -57,4 +58,9 @@ public class CreatePrepayRequestDto {
private String transId;
private OrderClientType orderClient;
/**
* 使用银联礼品卡
*/
private CreateOrderVo.UnionPayCard unionPayCard;
}
......@@ -222,6 +222,25 @@ public class CreateOrderVo {
private String invoiceTitle;
/**
* 是否使用银联礼品卡,如果不为空则为使用
*/
@Valid
private UnionPayCard unionPayCard;
/**
* 银联礼品卡
*/
@Data
public static class UnionPayCard {
@NotNull(message = "银联礼品卡手机号必传")
private String phoneNumber;
@NotNull(message = "银联礼品卡密码必传")
private String password;
}
/**
* 微信配送地址信息
*/
private WeixinDeliveryAddressDto weixinDeliveryAddress;
......
......@@ -15,6 +15,7 @@ package cn.freemud.enums;
public enum PayChannel {
SVC("10102", "svc卡支付"),
UPC("10031", "银联"),
ALIPAY("10300", "支付宝"),
WXPAY("10211", "微信");
......
......@@ -139,11 +139,11 @@ public class AppOrderServiceImpl implements AppOrderService {
@Override
public String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans) {
String paySuccessCallbackResult = orderservice.paySuccessCallback(message, confirmOrderDto, orderBeans);
QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
// 删除订单自增缓存
redisCache.delete(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()));
// 删除支付交易号订单关系缓存
redisCache.delete(RedisUtil.getPaymentTransIdOrderKey(message.getTrans_id()));
// QueryOrdersResponseDto.DataBean.OrderBean orderBean = orderBeans.get(OrderBeanType.SAASORDER.getCode());
// // 删除订单自增缓存
// redisCache.delete(RedisUtil.getPaymentTransIdSequenceKey(orderBean.getOid()));
// // 删除支付交易号订单关系缓存
// redisCache.delete(RedisUtil.getPaymentTransIdOrderKey(message.getTrans_id()));
return paySuccessCallbackResult;
}
......
......@@ -142,6 +142,9 @@ import tk.mybatis.mapper.util.StringUtil;
import java.math.BigDecimal;
import java.text.ParseException;
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;
......@@ -1544,6 +1547,7 @@ public class OrderServiceImpl implements Orderservice {
cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
cancelOrderRequest.setAfterSalesReason(orderRefundVo.getReason());
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
......@@ -1597,6 +1601,7 @@ public class OrderServiceImpl implements Orderservice {
}
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setRefundDeliveryAmount(isRefundDeliveryFee);
cancelOrderRequest.setAfterSalesReason(orderRefundVo.getReason());
BaseOrderResponse baseOrderResponse = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (baseOrderResponse == null || baseOrderResponse.getData() == null || !ObjectUtils.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, baseOrderResponse.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), "orderRefund_failed");
......@@ -2131,6 +2136,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.getUnionPayCard())) {
// 银联礼品卡支付
orderPayResponse = upcPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, transId, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getUnionPayCard());
} else if (totalAmount > 0 && StringUtils.isBlank(cardCode)) {
String partnerPayOvertime = this.getPartnerPayOvertime(createPrepayRequestDto.getPartnerId());
orderPayResponse = getPreOrderPay(createPrepayRequestDto.getFatherOrderBean(), paymentRequest, LogThreadLocal.getTrackingNo(), createPrepayRequestDto.getCardAmount(), transId, partnerPayOvertime);
......@@ -2175,6 +2183,49 @@ public class OrderServiceImpl implements Orderservice {
}
/**
* 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;
}
/**
* 创建普通订单
*/
public CreateOrderResponse createOrder(CreateOrderVo createOrderVo, StoreResponse.BizVO storeResponseDto, ShoppingCartGoodsDto shoppingCartGoodsDto,
......@@ -2561,7 +2612,7 @@ public class OrderServiceImpl implements Orderservice {
QueryOrdersResponse.DataBean.OrderBean productOrderBean = operateDto.getProductOrderBean();
//支付-- 包含商品券无需支付、唤起微信支付、储值卡支付直接支付、扫脸支付
OrderPayResponse orderPayResponse = pay(userLoginInfoDto,createOrderVo,totalAmount,cardAmount,fatherOrderBean);
// 默认支付成功必有非码订单号,不管成功与否,orderPayResponse都是不空的.此处是防御式处理
// 默认支付成功必有非码订单号
if (orderPayResponse == null || Objects.isNull(orderPayResponse.getFmId())) {
if(createOrderVo.getFaceCode() != null){
createOrderVo.setCardCode(createOrderVo.getFaceCode());
......@@ -2690,6 +2741,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())) {
String partnerPayOvertime = this.getPartnerPayOvertime(createOrderVo.getPartnerId());
......
......@@ -111,6 +111,20 @@ public class McCafeMangerServiceImpl implements OrderManagerService {
}
/**
* 制作完成
*
* @param request
* @param orderBean
* @return
*/
@Override
public BaseResponse<OrderManagerResponse> orderDone(OrderManagerRequest request, QueryOrdersResponse.DataBean.OrderBean orderBean) {
// 订单制作完成
saasOrderHandle.orderDone(request, orderBean);
return ResponseUtil.success();
}
/**
* 订单配送
*
* @param request
......
......@@ -341,11 +341,11 @@ public class CouponDiscountCalculation {
continue;
}
// 过滤0得代金券
if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_1.getCode())
&& (couponStateVo.getOriginalPrice() == null
|| couponStateVo.getOriginalPrice() == 0)) {
continue;
}
// if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_1.getCode())
// && (couponStateVo.getOriginalPrice() == null
// || couponStateVo.getOriginalPrice() == 0)) {
// continue;
// }
// 过滤折扣券为0折得
if (Objects.equals(couponStateVo.getType(), CouponTypeEnum.TYPE_3.getCode())
......
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