记得上下班打卡 | git大法好,push需谨慎

Commit 65c07fcc authored by 胡佳晨's avatar 胡佳晨

提交 order 回调

parent 18e6758a
......@@ -27,7 +27,7 @@ public interface IKylinOrderTicketsOrderService {
ResponseDto<PayInnerResultVo> payAgain(PayAgainParam payAgainParam);
// 支付回调(待支付->已支付->中断倒计时)
String syncOrder(SyncOrderDtoParam syncOrderParam);
String syncOrder(SyncOrderParam syncOrderParam);
//去 PHP pay检查 订单状态
ResponseDto<Integer> checkOrderResult(String orderId);
......
......@@ -70,7 +70,7 @@ public class KylinOrderTicketsController {
@PostMapping("syncOrder")
@ApiOperation("支付回调")
@ApiResponse(code = 200, message = "接口返回对象参数")
public String syncOrder(@ModelAttribute @Valid SyncOrderDtoParam syncOrderParam) {
public String syncOrder(@ModelAttribute @Valid SyncOrderParam syncOrderParam) {
return orderTicketsOrderService.syncOrder(syncOrderParam);
}
......
......@@ -717,18 +717,18 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
}
@Override
public String syncOrder(SyncOrderDtoParam syncOrderParam) {
public String syncOrder(SyncOrderParam syncOrderParam) {
try {
log.debug("SYNC PARAM = " + syncOrderParam.toString());
//支付时间
LocalDateTime now = LocalDateTime.now();
String lock = "order_lock:" + syncOrderParam.getData().getOrderCode();
String lock = "order_lock:" + syncOrderParam.getOrderCode();
if (!redisLockUtil.tryLock(lock, 1, 5)) {
return "fail";//参数错误
}
String timePay = DateUtil.Formatter.yyyyMMddHHmmss.format(now);
KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getData().getOrderCode())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrderCode())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
if (orderTicketData == null) {
redisLockUtil.unlock(lock);
return "fail";//订单不存在
......@@ -746,7 +746,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
}
}
if (orderTicketData.getPriceActual().compareTo(syncOrderParam.getData().getPrice()) != 0) {
if (orderTicketData.getPriceActual().compareTo(syncOrderParam.getPrice()) != 0) {
redisLockUtil.unlock(lock);
return "fail";//价格不符
}
......@@ -765,24 +765,24 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (orderTicketData.getStatus() == 2) {
orderUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null);
log.error("订单号位 {} 的订单超时支付", syncOrderParam.getData().getOrderCode());
log.error("订单号位 {} 的订单超时支付", syncOrderParam.getOrderCode());
orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId());
} else if (orderTicketData.getStatus() == 3 || orderTicketData.getStatus() == 4) {
log.error("订单号位 {} 的订单正在退款 或者已退款", syncOrderParam.getData().getOrderCode());
log.error("订单号位 {} 的订单正在退款 或者已退款", syncOrderParam.getOrderCode());
} else {
orderTickets.setOrderTicketsId(orderTicketData.getOrderTicketsId());
orderTickets.setPaymentType(syncOrderParam.getData().getPaymentType());
orderTickets.setPaymentType(syncOrderParam.getPaymentType());
orderTickets.setPayCode(syncOrderParam.getCode());
orderTickets.setTimePay(timePay);
orderTickets.setQrCode(IDGenerator.ticketQrCode(orderTicketData.getOrderTicketsId()));
orderTickets.setUpdatedAt(now);
orderTickets.setPaymentId(syncOrderParam.getData().getPaymentId());
orderTickets.setPaymentId(syncOrderParam.getPaymentId());
sqls.add(SqlMapping.get("kylin_order_ticket.synPay"));
sqlsDataA.add(orderTickets.getSynOrderObject(strTime, strTime));
orderTicketStatus.setOrderId(orderTicketData.getOrderTicketsId());
orderTicketStatus.setStatus(KylinTableStatusConst.ORDER_STATUS1);
orderTicketStatus.setPayStatus(syncOrderParam.getData().getStatus());
orderTicketStatus.setPayStatus(syncOrderParam.getStatus());
orderTicketStatus.setUpdatedAt(orderTickets.getUpdatedAt());
sqls.add(SqlMapping.get("kylin_order_ticket_status.synPay"));
sqlsDataB.add(orderTicketStatus.getSynOrderObject(strTime, strTime));
......@@ -901,8 +901,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
return ResponseDto.failure(ErrorMapping.get("20024"));
} else {
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + orderTicketData.getPayCode(), null);
PayResultVo checkVo = JsonUtils.fromJson(returnCheckData, PayResultVo.class);
if (checkVo.getData().getStatus() == 1) {
SyncOrderDtoParam syncOrderDtoParam = JsonUtils.fromJson(returnCheckData, SyncOrderDtoParam.class);
if (syncOrderDtoParam.getData().getStatus() == 1) {
//处理订单
syncOrder(syncOrderDtoParam.getData());
return ResponseDto.success(1);
} else {
return ResponseDto.success(0);
......
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