Commit c923780d by 张洪旺

fix

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