提交 c7e8c0f0 authored 作者: liupengfei's avatar liupengfei

--no commit message

上级 f346c068
......@@ -76,4 +76,14 @@ public interface OrderTypeInterface extends EnumsBindBean<OrderTypeEnum>{
* @date: 2019年2月25日 上午11:55:53
*/
boolean paySuccess(Order order, PayQueryReturnVo payQueryReturnVo);
/**
* 支付回调,订单处理逻辑
* @param order 订单
* @param form 支付回调表单
* @return
* @author ycw
* @date: 2019年6月10日 上午10:58:18
*/
boolean receivePayCall2(Order order, PayResultForm form);
}
package com.zrqx.order.commons.enums.interfaces.ordertype.impl;
import java.util.Date;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import com.zrqx.core.client.form.third.pay.PayResultForm;
import com.zrqx.core.client.pay.fg.FgPayClient;
import com.zrqx.core.client.third.FgThirdClient;
import com.zrqx.core.client.vo.third.pay.payquery.PayQueryReturnVo;
import com.zrqx.core.enums.interfaces.LoggerFactory;
import com.zrqx.core.enums.order.OrderStatusEnum;
......@@ -23,7 +25,7 @@ public abstract class OrderTypeAdapter implements OrderTypeInterface, LoggerFact
/** 子类log */
protected Logger log;
@Autowired
protected FgPayClient fgPayClient;
protected FgThirdClient fgThirdClient;
@Autowired
protected FgOrderManage fgOrderManage;
......@@ -33,7 +35,7 @@ public abstract class OrderTypeAdapter implements OrderTypeInterface, LoggerFact
@Override
public boolean receivePayCall(Order order, PayResultForm form) {
CallBack<PayQueryReturnVo> result = fgPayClient.query(form.getOut_trade_no(), form.getPayType());
CallBack<PayQueryReturnVo> result = fgThirdClient.query(form.getOut_trade_no(), form.getPayType());
log.info("OrderTypeAdapter#receivePayCall查询第三方结果:" + result);
// 验证
if(result.hasEntity()){
......@@ -50,6 +52,10 @@ public abstract class OrderTypeAdapter implements OrderTypeInterface, LoggerFact
// 订单支付回调成功处理逻辑
return this.paySuccess(order, payQueryReturnVo);
}
// 如果订单已被支付
if(order.getStatus().equals(OrderStatusEnum.HAVE_PAID.getCode()) || order.getStatus().equals(OrderStatusEnum.SIGNED_IN.getCode())){
return true;
}
log.warn("OrderTypeAdapter#receivePayCall 订单状态不能执行支付成功回调处理逻辑; order:" + order );
return false;
}
......@@ -84,4 +90,21 @@ public abstract class OrderTypeAdapter implements OrderTypeInterface, LoggerFact
* @date: 2019年2月21日 上午11:57:14
*/
protected abstract boolean paySuccessProcess(Order order, PayQueryReturnVo payQueryReturnVo);
@Override
public boolean receivePayCall2(Order order, PayResultForm form) {
// 支付成功
String payMent = order.getPayment().doubleValue() + "";
// 判断订单状态 能否被修改
if (OrderStatusEnum.isCanPay(order.getStatus())) {
// 订单支付回调成功处理逻辑
PayQueryReturnVo payQueryReturnVo = new PayQueryReturnVo();
payQueryReturnVo.setPayType(form.getPayType());
payQueryReturnVo.setPayCode(form.getOut_trade_no());
payQueryReturnVo.setPayTime(new Date());
return this.paySuccess(order, payQueryReturnVo);
}
log.warn("OrderTypeAdapter#receivePayCall 订单状态不能执行支付成功回调处理逻辑; order:" + order );
return false;
}
}
......@@ -254,4 +254,13 @@ public class FgOrderController {
PayInfoVo info = fgOrderService.pay(order.getCode(), form.getPayType(), form.getSource());
return CallBack.success(info);
}
@ApiOperation("修改订单状态(跨服务调用)")
@PostMapping("/update/status")
public CallBack<Boolean> updateOrderStatus(@RequestBody PayResultForm form){
// 电子订单 订单状态需要变为 -> 已支付 -> 已完成
return CallBack.success(fgOrderService.updateOrderStatus(form));
}
}
......@@ -273,4 +273,13 @@ public interface FgOrderService extends BaseService<Order, Integer>{
*/
PayInfoVo pay(String orderId, String payType, String source);
/**
* 修改订单状态
* @param form
* @return
* @author ycw
* @date: 2019年6月10日 下午7:33:08
*/
boolean updateOrderStatus(PayResultForm form);
}
......@@ -1032,4 +1032,14 @@ public class FgOrderServiceImpl extends BaseServiceImpl<Order, Integer> implemen
System.out.println(result.getData());
return result.hasEntity() ? result.getData() : null;
}
@Override
public boolean updateOrderStatus(PayResultForm form){
Order order = super.notNull(record -> {
record.setCode(form.getOut_trade_no());
});
OrderTypeInterface orderTypeService = springContext.getEnumsBindBean(OrderTypeEnum.class, order.getOrderType(), OrderTypeInterface.class);
// 订单支付回调成功处理逻辑
return orderTypeService.receivePayCall2(order, form);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论