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

Commit 18e6758a authored by 胡佳晨's avatar 胡佳晨

提交 kylin 回调

parent 4d8e9cb6
package com.liquidnet.service.kylin.dto.param;
import lombok.Data;
@Data
public class SyncOrderDtoParam {
private String code;
private String message;
private SyncOrderParam data;
}
...@@ -14,12 +14,12 @@ public class SyncOrderParam { ...@@ -14,12 +14,12 @@ public class SyncOrderParam {
private String type; private String type;
@ApiModelProperty(value = "code") @ApiModelProperty(value = "code")
private String code; private String code;
@ApiModelProperty(value = "payment_id") @ApiModelProperty(value = "paymentId")
private String payment_id; private String paymentId;
@ApiModelProperty(value = "order_code") @ApiModelProperty(value = "orderCode")
private String order_code; private String orderCode;
@ApiModelProperty(value = "price") @ApiModelProperty(value = "price")
private BigDecimal price; private BigDecimal price;
@ApiModelProperty(value = "payment_type") @ApiModelProperty(value = "paymentType")
private String payment_type; private String paymentType;
} }
...@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo; ...@@ -4,6 +4,7 @@ import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dto.param.PayAgainParam; import com.liquidnet.service.kylin.dto.param.PayAgainParam;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderDtoParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam; import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.returns.*; import com.liquidnet.service.kylin.dto.vo.returns.*;
...@@ -26,7 +27,7 @@ public interface IKylinOrderTicketsOrderService { ...@@ -26,7 +27,7 @@ public interface IKylinOrderTicketsOrderService {
ResponseDto<PayInnerResultVo> payAgain(PayAgainParam payAgainParam); ResponseDto<PayInnerResultVo> payAgain(PayAgainParam payAgainParam);
// 支付回调(待支付->已支付->中断倒计时) // 支付回调(待支付->已支付->中断倒计时)
String syncOrder(SyncOrderParam syncOrderParam); String syncOrder(SyncOrderDtoParam syncOrderParam);
//去 PHP pay检查 订单状态 //去 PHP pay检查 订单状态
ResponseDto<Integer> checkOrderResult(String orderId); ResponseDto<Integer> checkOrderResult(String orderId);
......
...@@ -364,16 +364,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -364,16 +364,6 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
String outRefundNo = info.getOutRefundNo(); String outRefundNo = info.getOutRefundNo();
String refundAt = info.getSuccessTime(); String refundAt = info.getSuccessTime();
try { try {
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
new Object[]{outRefundNo, info.getRefundRequestSource(), JSON.toJSONString(info), nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, refundAt, DragonConstant.RefundStatusEnum.STATUS_REFUNDED.getCode(), outRefundNo},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
NotifyUrlDto dto = new NotifyUrlDto(); NotifyUrlDto dto = new NotifyUrlDto();
if (info.getRefundStatus().equalsIgnoreCase("SUCCESS")) { if (info.getRefundStatus().equalsIgnoreCase("SUCCESS")) {
...@@ -387,6 +377,17 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -387,6 +377,17 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundAt(refundAt); dto.setRefundAt(refundAt);
dto.setRefundError(callBackDto.getReturnMsg()); dto.setRefundError(callBackDto.getReturnMsg());
sendNotifyUrl(dto); sendNotifyUrl(dto);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
new Object[]{outRefundNo, info.getRefundRequestSource(), JSON.toJSONString(info), nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, refundAt, DragonConstant.RefundStatusEnum.STATUS_REFUNDED.getCode(), outRefundNo},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
return "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>"; return "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
...@@ -417,18 +418,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -417,18 +418,7 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
if (response.isSuccess()) { if (response.isSuccess()) {
try { try {
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
new Object[]{response.getOutRequestNo(), response.getRefundReason(), jsonStr, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
log.debug("SEND MQ INSERT");
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, callBackDto.getGmtRefund(), DragonConstant.RefundStatusEnum.STATUS_REFUNDED.getCode(), response.getOutRequestNo()},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
log.debug("SEND MQ UPDATE");
NotifyUrlDto dto = new NotifyUrlDto(); NotifyUrlDto dto = new NotifyUrlDto();
if (response.getMsg().equalsIgnoreCase("SUCCESS")) { if (response.getMsg().equalsIgnoreCase("SUCCESS")) {
dto.setStatus(1); dto.setStatus(1);
...@@ -443,6 +433,19 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService ...@@ -443,6 +433,19 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
dto.setRefundError(""); dto.setRefundError("");
log.debug("SEND NOTIFTURL = "+ JSON.toJSONString(dto)); log.debug("SEND NOTIFTURL = "+ JSON.toJSONString(dto));
sendNotifyUrl(dto); sendNotifyUrl(dto);
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_log.insert"),
new Object[]{response.getOutRequestNo(), response.getRefundReason(), jsonStr, nowTime, nowTime},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
log.debug("SEND MQ INSERT");
mqHandleUtil.sendMySqlRedis(
SqlMapping.get("dragon_order_refund_success.update"),
new Object[]{nowTime, callBackDto.getGmtRefund(), DragonConstant.RefundStatusEnum.STATUS_REFUNDED.getCode(), response.getOutRequestNo()},
DragonConstant.MysqlRedisQueueEnum.DRAGON_REFUND_KEY.getCode()
);
log.debug("SEND MQ UPDATE");
return "success"; return "success";
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -7,6 +7,7 @@ import com.liquidnet.service.base.codec.annotation.DecryptAndVerify; ...@@ -7,6 +7,7 @@ import com.liquidnet.service.base.codec.annotation.DecryptAndVerify;
import com.liquidnet.service.base.codec.vo.EncryptedReq; import com.liquidnet.service.base.codec.vo.EncryptedReq;
import com.liquidnet.service.kylin.dto.param.PayAgainParam; import com.liquidnet.service.kylin.dto.param.PayAgainParam;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderDtoParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam; import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.returns.*; import com.liquidnet.service.kylin.dto.vo.returns.*;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService;
...@@ -69,7 +70,7 @@ public class KylinOrderTicketsController { ...@@ -69,7 +70,7 @@ public class KylinOrderTicketsController {
@PostMapping("syncOrder") @PostMapping("syncOrder")
@ApiOperation("支付回调") @ApiOperation("支付回调")
@ApiResponse(code = 200, message = "接口返回对象参数") @ApiResponse(code = 200, message = "接口返回对象参数")
public String syncOrder(@ModelAttribute @Valid SyncOrderParam syncOrderParam) { public String syncOrder(@ModelAttribute @Valid SyncOrderDtoParam syncOrderParam) {
return orderTicketsOrderService.syncOrder(syncOrderParam); return orderTicketsOrderService.syncOrder(syncOrderParam);
} }
......
...@@ -13,6 +13,7 @@ import com.liquidnet.service.kylin.constant.KylinRedisConst; ...@@ -13,6 +13,7 @@ import com.liquidnet.service.kylin.constant.KylinRedisConst;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.PayAgainParam; import com.liquidnet.service.kylin.dto.param.PayAgainParam;
import com.liquidnet.service.kylin.dto.param.PayOrderParam; import com.liquidnet.service.kylin.dto.param.PayOrderParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderDtoParam;
import com.liquidnet.service.kylin.dto.param.SyncOrderParam; import com.liquidnet.service.kylin.dto.param.SyncOrderParam;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketTimesVo;
import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo; import com.liquidnet.service.kylin.dto.vo.middle.KylinTicketVo;
...@@ -716,18 +717,18 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -716,18 +717,18 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
} }
@Override @Override
public String syncOrder(SyncOrderParam syncOrderParam) { public String syncOrder(SyncOrderDtoParam syncOrderParam) {
try { try {
log.debug("SYNC PARAM = " + syncOrderParam.toString()); log.debug("SYNC PARAM = " + syncOrderParam.toString());
//支付时间 //支付时间
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String lock = "order_lock:" + syncOrderParam.getOrder_code(); String lock = "order_lock:" + syncOrderParam.getData().getOrderCode();
if (!redisLockUtil.tryLock(lock, 1, 5)) { if (!redisLockUtil.tryLock(lock, 1, 5)) {
return "fail";//参数错误 return "fail";//参数错误
} }
String timePay = DateUtil.Formatter.yyyyMMddHHmmss.format(now); String timePay = DateUtil.Formatter.yyyyMMddHHmmss.format(now);
KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getOrder_code())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName()); KylinOrderTicketVo orderTicketData = mongoTemplate.findOne(Query.query(Criteria.where("orderCode").is(syncOrderParam.getData().getOrderCode())), KylinOrderTicketVo.class, KylinOrderTicketVo.class.getSimpleName());
if (orderTicketData == null) { if (orderTicketData == null) {
redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return "fail";//订单不存在 return "fail";//订单不存在
...@@ -745,7 +746,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -745,7 +746,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
} }
} }
if (orderTicketData.getPriceActual().compareTo(syncOrderParam.getPrice()) != 0) { if (orderTicketData.getPriceActual().compareTo(syncOrderParam.getData().getPrice()) != 0) {
redisLockUtil.unlock(lock); redisLockUtil.unlock(lock);
return "fail";//价格不符 return "fail";//价格不符
} }
...@@ -764,24 +765,24 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -764,24 +765,24 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (orderTicketData.getStatus() == 2) { if (orderTicketData.getStatus() == 2) {
orderUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null); orderUtils.resetOrderListVo(orderTicketData.getUserId(), 2, orderTicketData.getOrderTicketsId(), null);
log.error("订单号位 {} 的订单超时支付", syncOrderParam.getOrder_code()); log.error("订单号位 {} 的订单超时支付", syncOrderParam.getData().getOrderCode());
orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId()); orderRefundsCallbackService.refundApply(orderTicketData.getOrderTicketsId());
} else if (orderTicketData.getStatus() == 3 || orderTicketData.getStatus() == 4) { } else if (orderTicketData.getStatus() == 3 || orderTicketData.getStatus() == 4) {
log.error("订单号位 {} 的订单正在退款 或者已退款", syncOrderParam.getOrder_code()); log.error("订单号位 {} 的订单正在退款 或者已退款", syncOrderParam.getData().getOrderCode());
} else { } else {
orderTickets.setOrderTicketsId(orderTicketData.getOrderTicketsId()); orderTickets.setOrderTicketsId(orderTicketData.getOrderTicketsId());
orderTickets.setPaymentType(syncOrderParam.getPayment_type()); orderTickets.setPaymentType(syncOrderParam.getData().getPaymentType());
orderTickets.setPayCode(syncOrderParam.getCode()); orderTickets.setPayCode(syncOrderParam.getCode());
orderTickets.setTimePay(timePay); orderTickets.setTimePay(timePay);
orderTickets.setQrCode(IDGenerator.ticketQrCode(orderTicketData.getOrderTicketsId())); orderTickets.setQrCode(IDGenerator.ticketQrCode(orderTicketData.getOrderTicketsId()));
orderTickets.setUpdatedAt(now); orderTickets.setUpdatedAt(now);
orderTickets.setPaymentId(syncOrderParam.getPayment_id()); orderTickets.setPaymentId(syncOrderParam.getData().getPaymentId());
sqls.add(SqlMapping.get("kylin_order_ticket.synPay")); sqls.add(SqlMapping.get("kylin_order_ticket.synPay"));
sqlsDataA.add(orderTickets.getSynOrderObject(strTime, strTime)); sqlsDataA.add(orderTickets.getSynOrderObject(strTime, strTime));
orderTicketStatus.setOrderId(orderTicketData.getOrderTicketsId()); orderTicketStatus.setOrderId(orderTicketData.getOrderTicketsId());
orderTicketStatus.setStatus(KylinTableStatusConst.ORDER_STATUS1); orderTicketStatus.setStatus(KylinTableStatusConst.ORDER_STATUS1);
orderTicketStatus.setPayStatus(syncOrderParam.getStatus()); orderTicketStatus.setPayStatus(syncOrderParam.getData().getStatus());
orderTicketStatus.setUpdatedAt(orderTickets.getUpdatedAt()); orderTicketStatus.setUpdatedAt(orderTickets.getUpdatedAt());
sqls.add(SqlMapping.get("kylin_order_ticket_status.synPay")); sqls.add(SqlMapping.get("kylin_order_ticket_status.synPay"));
sqlsDataB.add(orderTicketStatus.getSynOrderObject(strTime, strTime)); sqlsDataB.add(orderTicketStatus.getSynOrderObject(strTime, strTime));
......
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