Commit c923780d by 张洪旺

fix

parent 22e477ae
......@@ -148,6 +148,7 @@ public enum ResponseResult {
ORDER_STATUS_PRE_PAYMENT_NOT_SUPPORT("45060", "订单非待支付状态, 创建预支付失败"),
ORDER_TAKEMEALTIME_INVALID("45061", "你的隔日预约时间有误,请重新刷新后选择!"),
ORDER_CONVERT_ERROR("45062", "查询订单结果转换失败"),
ORDER_NO_PAU("45063", "订单未支付"),
/**
* 支付
*/
......
......@@ -17,7 +17,7 @@ public class BaseRequest {
* 订单号
*/
//@NotEmpty(message = "订单号不能为空")
private String orderCode;
//private String orderCode;
@NotEmpty(message = "thirdOrderCode 不能为空")
private String thirdOrderCode;
......@@ -78,6 +78,14 @@ public class BaseRequest {
/**
* 下单渠道
* * 1:自营微信小程序 2:SAAS,i应用 3:自营支付宝小程序 4:自营H5 5:自营安卓APP 6:自营苹果APP 7:自营PC-WEB 8:饿了么 9:饿百 10:京东 11:美团外卖 12:自营APP 13:i应用会员 14:i应用订货 15:POS
*/
@NotNull(message = "orderClient 不能为空")
private String orderClient;
/**
* 根据 thirdOrderCode 查询的数据
*/
private OrderInfoReqs orderInfoReqs;
......
......@@ -4,17 +4,27 @@ import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Setter
@Getter
public class CompleteRequest {
/**
* 订单号
*/
@NotEmpty(message = "订单号不能为空")
private String orderCode;
@NotEmpty(message = "thirdOrderCode 不能为空")
private String thirdOrderCode;
@NotEmpty(message = "商户id不能为空")
//商户号
private String partnerId;
/**
* 下单渠道
* * 1:自营微信小程序 2:SAAS,i应用 3:自营支付宝小程序 4:自营H5 5:自营安卓APP 6:自营苹果APP 7:自营PC-WEB 8:饿了么 9:饿百 10:京东 11:美团外卖 12:自营APP 13:i应用会员 14:i应用订货 15:POS
*/
@NotNull(message = "orderClient 不能为空")
private String orderClient;
/***
* posid
*/
......
......@@ -12,6 +12,7 @@ import cn.freemud.fuyou.feign.request.CouponAvailableReqVo;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.fuyou.feign.request.ReturnScoreRequest;
import cn.freemud.fuyou.feign.response.*;
import cn.freemud.fuyou.service.processor.CashEventProcessor;
import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON;
......@@ -47,13 +48,14 @@ import org.springframework.stereotype.Service;
import java.util.*;
import static cn.freemud.enums.ResponseResult.SUCCESS;
import static cn.freemud.enums.ResponseResult.*;
@Service
@Slf4j
public class FuYouOrderService {
private final CashEventProcessor cashEventProcessor;
private final OrderSdkService orderSdkService;
private final MapperFacade mapperFacade;
private final CouponFeignClient couponFeignClient;
......@@ -61,10 +63,11 @@ public class FuYouOrderService {
private final OfflineCouponSdkService offlineCouponSdkService;
private final ScoreFeignClient scoreFeignClient;
public FuYouOrderService(OrderSdkService orderSdkService, MapperFacade mapperFacade,
public FuYouOrderService(CashEventProcessor cashEventProcessor, OrderSdkService orderSdkService, MapperFacade mapperFacade,
CouponFeignClient couponFeignClient,
PaymentNewService paymentNewService, OfflineCouponSdkService offlineCouponSdkService,
ScoreFeignClient scoreFeignClient) {
this.cashEventProcessor = cashEventProcessor;
this.orderSdkService = orderSdkService;
this.mapperFacade = mapperFacade;
this.couponFeignClient = couponFeignClient;
......@@ -218,11 +221,15 @@ public class FuYouOrderService {
* @return
*/
public BaseResponse complete(CompleteRequest request) {
OrderInfoReqs orderInfoReqs = cashEventProcessor.getOrderByThirdOrderCode(request.getThirdOrderCode(), request.getOrderClient());
BaseResponse response = new BaseResponse();
if(ObjectUtils.notEqual(PayStatus.HAVE_PAID.getCode(),orderInfoReqs.getPayState())){
return ResponseUtil.error(ORDER_NO_PAU);
}
OrderChangeStateReq req = new OrderChangeStateReq();
req.setOrderState(OrderStatus.COMPLETE.getCode());
req.setOrderCode(request.getOrderCode());
req.setOrderCode(orderInfoReqs.getOrderCode());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = orderSdkService.updateOrderState(req, LogThreadLocal.getTrackingNo());
BaseResponse response = new BaseResponse();
response.setCode(baseResponse.getCode());
response.setMessage(baseResponse.getMessage());
return response;
......
......@@ -120,10 +120,10 @@ public abstract class AbstractProcessor implements EventProcessor {
* @param thirdOrderCode
* @return
*/
protected OrderInfoReqs getOrderByThirdOrderCode(String thirdOrderCode) {
QueryByCodeResponse orderInfo = orderSdkService.getOrderInfo(null,null,thirdOrderCode, null, LogThreadLocal.getTrackingNo());
protected OrderInfoReqs getOrderByThirdOrderCode(String thirdOrderCode,String orderClient) {
QueryByCodeResponse orderInfo = orderSdkService.getOrderInfo(orderClient,null,thirdOrderCode, null, LogThreadLocal.getTrackingNo());
if (ObjectUtils.notEqual(ResponseConstant.SUCCESS_RESPONSE_CODE, orderInfo.getCode())) {
throw new RuntimeException("订单号不存在");
throw new RuntimeException(orderInfo.getMessage());
}
return orderInfo.getResult();
}
......@@ -131,14 +131,14 @@ public abstract class AbstractProcessor implements EventProcessor {
@Override
public BaseResponse process(DiscountRequest request) {
// 三方订单号兑换 订单信息
OrderInfoReqs orderInfoReqs = getOrderByThirdOrderCode(request.getThirdOrderCode());
OrderInfoReqs orderInfoReqs = getOrderByThirdOrderCode(request.getThirdOrderCode(),request.getOrderClient());
request.setOrderInfoReqs(orderInfoReqs);
log.info("process.DiscountRequest:{}", JSON.toJSONString(request));
BaseResponse response = doProcess(request);
if (ObjectUtils.notEqual(SUCCESS.code, response.getCode())) {
return response;
}
log.info("AbstractProcessor.process,orderCode:{},responst:{}", request.getOrderCode(), JSON.toJSONString(response));
log.info("AbstractProcessor.process,orderCode:{},responst:{}", orderInfoReqs.getOrderCode(), JSON.toJSONString(response));
OrderSettlementReq orderSettlement = getOrderSettlement(request);
// 2.创建结算信息
// todo 分布式事物处理
......
......@@ -94,7 +94,7 @@ private final PaymentNewService paymentNewService;
BaseResponse doProcess(DiscountRequest request) {
BaseResponse baseResponse =new BaseResponse();
baseResponse.setCode(ResponseResultEnum.SUCCESS.getCode());
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
CodePayRequest codePayRequest =new CodePayRequest();
codePayRequest.setCode(request.getCode());
......@@ -130,7 +130,7 @@ private final PaymentNewService paymentNewService;
@Override
OrderSettlementReq getOrderSettlement(DiscountRequest request) {
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
return buildOrderSettlement("支付宝支付", OrderSettlementType.ALIPAY, true, orderInfoReqs, request);
}
......
......@@ -33,10 +33,13 @@ public class CashEventProcessor extends AbstractProcessor {
return baseResponse;
}
public OrderInfoReqs getOrderByThirdOrderCode(String thirdOrderCode, String orderClient) {
return super.getOrderByThirdOrderCode(thirdOrderCode, orderClient);
}
@Override
OrderSettlementReq getOrderSettlement(DiscountRequest request) {
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
return buildOrderSettlement("富有现金支付", OrderSettlementType.CASH, false, orderInfoReqs, request);
}
......
......@@ -47,7 +47,7 @@ public class CouponEventProcessor extends AbstractProcessor {
com.freemud.application.sdk.api.ordercenter.response.BaseResponse doProcess(DiscountRequest request) {
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = new com.freemud.application.sdk.api.ordercenter.response.BaseResponse();
baseResponse.setCode(SUCCESS.code);
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
//1.核销券
CouponRequest couponCodeVerificationDto = new CouponRequest();
couponCodeVerificationDto.setVer(Integer.valueOf(Version.VERSION_1));
......@@ -99,7 +99,7 @@ public class CouponEventProcessor extends AbstractProcessor {
@Override
OrderSettlementReq getOrderSettlement(DiscountRequest request) {
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
return buildOrderSettlement("富有优惠券", OrderSettlementType.COUPON, false, orderInfoReqs, request);
}
......
......@@ -37,7 +37,7 @@ public class IntegralEventProcessor extends AbstractProcessor {
BaseResponse doProcess(DiscountRequest request) {
BaseResponse baseResponse = new BaseResponse();
baseResponse.setCode(SUCCESS.code);
final OrderInfoReqs order = getOrder(request.getOrderCode());
final OrderInfoReqs order = request.getOrderInfoReqs();
ScorePayRequest scorePayRequest = new ScorePayRequest();
scorePayRequest.setPartnerId(order.getPartnerId());
......@@ -47,9 +47,9 @@ public class IntegralEventProcessor extends AbstractProcessor {
scorePayRequest.setOperationType(14);
scorePayRequest.setIdempotencyBussinessType("5");
scorePayRequest.setChangeScore(request.getScore().intValue());
scorePayRequest.setIdempotencyBussinessId(request.getOrderCode());
scorePayRequest.setIdempotencyBussinessId(order.getOrderCode());
cn.freemud.base.entity.BaseResponse<UpdateScoreResponse> responseBaseResponse = scoreFeignClient.pay(scorePayRequest);
log.info("scoreFeignClient.pay,order:{},response:{}", request.getOrderCode(), JSON.toJSONString(responseBaseResponse));
log.info("scoreFeignClient.pay,order:{},response:{}", order.getOrderCode(), JSON.toJSONString(responseBaseResponse));
if (ObjectUtils.notEqual(SUCCESS.code, responseBaseResponse.getCode())) {
baseResponse.setCode(responseBaseResponse.getCode());
baseResponse.setMessage(responseBaseResponse.getMessage());
......@@ -60,7 +60,7 @@ public class IntegralEventProcessor extends AbstractProcessor {
@Override
OrderSettlementReq getOrderSettlement(DiscountRequest request) {
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
return buildOrderSettlement("富有积分兑换", OrderSettlementType.POINTS, true, orderInfoReqs, request);
}
......
......@@ -41,7 +41,7 @@ public class SvcEventProcessor extends AbstractProcessor {
{
BaseResponse baseResponse =new BaseResponse();
baseResponse.setCode(ResponseResultEnum.SUCCESS.getCode());
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
CodePayRequest codePayRequest =new CodePayRequest();
codePayRequest.setCode(request.getCode());
......@@ -74,7 +74,7 @@ public class SvcEventProcessor extends AbstractProcessor {
@Override
OrderSettlementReq getOrderSettlement(DiscountRequest request) {
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
return buildOrderSettlement("SVV支付", OrderSettlementType.SVC, true, orderInfoReqs, request);
}
......
......@@ -36,7 +36,7 @@ public class WeChatEventProcessor extends AbstractProcessor{
BaseResponse doProcess(DiscountRequest request) {
BaseResponse baseResponse =new BaseResponse();
baseResponse.setCode(ResponseResultEnum.SUCCESS.getCode());
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
com.freemud.application.sdk.api.paymentcenter.client.request.CodePayRequest codePayRequest =new CodePayRequest();
codePayRequest.setCode(request.getCode());
codePayRequest.setAmount(request.getPayAmount());
......@@ -68,7 +68,7 @@ public class WeChatEventProcessor extends AbstractProcessor{
@Override
OrderSettlementReq getOrderSettlement(DiscountRequest request) {
OrderInfoReqs orderInfoReqs = getOrder(request.getOrderCode());
OrderInfoReqs orderInfoReqs = request.getOrderInfoReqs();
return buildOrderSettlement("微信支付", OrderSettlementType.WEIXIN, true, orderInfoReqs, request);
}
......
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