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

Commit 9a0873de authored by wangyifan's avatar wangyifan

回调接入业务

parent 52399664
...@@ -4,9 +4,11 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -4,9 +4,11 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbCouponVo; import com.liquidnet.service.goblin.dto.vo.GoblinSqbCouponVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbOrderCreateVo; import com.liquidnet.service.goblin.dto.vo.GoblinSqbOrderCreateVo;
import com.liquidnet.service.goblin.dto.vo.GoblinSqbOrderDetailVo; import com.liquidnet.service.goblin.dto.vo.GoblinSqbOrderDetailVo;
import com.liquidnet.service.goblin.param.shouqianba.callback.CouponCallbackContent;
import com.liquidnet.service.goblin.param.shouqianba.callback.OrderCallbackContent;
import com.liquidnet.service.goblin.param.shouqianba.callback.RefundCallbackContent;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 收钱吧订单服务接口 * 收钱吧订单服务接口
...@@ -24,7 +26,7 @@ public interface IGoblinSqbOrderService { ...@@ -24,7 +26,7 @@ public interface IGoblinSqbOrderService {
* @return 订单创建结果(orderId、acquiringSn、paymentVoucher) * @return 订单创建结果(orderId、acquiringSn、paymentVoucher)
*/ */
ResponseDto<GoblinSqbOrderCreateVo> createOrder(String userId, String spuId, String skuId, ResponseDto<GoblinSqbOrderCreateVo> createOrder(String userId, String spuId, String skuId,
Integer quantity, String performancesId); Integer quantity, String performancesId);
/** /**
* 查询支付状态 * 查询支付状态
...@@ -65,26 +67,23 @@ public interface IGoblinSqbOrderService { ...@@ -65,26 +67,23 @@ public interface IGoblinSqbOrderService {
/** /**
* 支付成功回调(收钱吧主动推送) * 支付成功回调(收钱吧主动推送)
* *
* @param params 回调参数 * @param orderCallbackContent@return "success"
* @return "success"
*/ */
ResponseDto<String> handlePayCallback(Map<String, Object> params); ResponseDto<String> handlePayCallback(OrderCallbackContent orderCallbackContent);
/** /**
* 退款成功回调(收钱吧主动推送) * 退款成功回调(收钱吧主动推送)
* *
* @param params 回调参数 * @param refundCallbackContent@return "success"
* @return "success"
*/ */
ResponseDto<String> handleRefundCallback(Map<String, Object> params); ResponseDto<String> handleRefundCallback(RefundCallbackContent refundCallbackContent);
/** /**
* 券状态变更回调(收钱吧主动推送) * 券状态变更回调(收钱吧主动推送)
* *
* @param params 回调参数 * @param callbackContent@return "success"
* @return "success"
*/ */
ResponseDto<String> handleCouponCallback(Map<String, Object> params); ResponseDto<String> handleCouponCallback(CouponCallbackContent callbackContent);
/** /**
* 演出结束自动退款(定时任务调用) * 演出结束自动退款(定时任务调用)
......
...@@ -7,6 +7,7 @@ import com.liquidnet.service.goblin.param.shouqianba.callback.CouponCallbackCont ...@@ -7,6 +7,7 @@ import com.liquidnet.service.goblin.param.shouqianba.callback.CouponCallbackCont
import com.liquidnet.service.goblin.param.shouqianba.callback.OrderCallbackContent; import com.liquidnet.service.goblin.param.shouqianba.callback.OrderCallbackContent;
import com.liquidnet.service.goblin.param.shouqianba.callback.RefundCallbackContent; import com.liquidnet.service.goblin.param.shouqianba.callback.RefundCallbackContent;
import com.liquidnet.service.goblin.service.IGoblinShouQianBaService; import com.liquidnet.service.goblin.service.IGoblinShouQianBaService;
import com.liquidnet.service.goblin.service.IGoblinSqbOrderService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -25,9 +26,12 @@ public class GoblinShouqianbaController { ...@@ -25,9 +26,12 @@ public class GoblinShouqianbaController {
@Autowired @Autowired
private IGoblinShouQianBaService shouQianBaService; private IGoblinShouQianBaService shouQianBaService;
@Autowired
private IGoblinSqbOrderService sqbOrderService;
@ApiOperation("下单回调") @ApiOperation("下单回调")
@PostMapping("/order/callback") @PostMapping("/order/callback")
public ResponseDto<Boolean> orderCallback(@RequestBody CallbackParams callbackParams) { public ResponseDto<String> orderCallback(@RequestBody CallbackParams callbackParams) {
if (null == callbackParams) { if (null == callbackParams) {
log.error("下单回调参数为空"); log.error("下单回调参数为空");
return ResponseDto.failure("下单回调参数为空"); return ResponseDto.failure("下单回调参数为空");
...@@ -40,14 +44,13 @@ public class GoblinShouqianbaController { ...@@ -40,14 +44,13 @@ public class GoblinShouqianbaController {
OrderCallbackContent orderCallbackContent = JsonUtils.fromJson(callbackParams.getContent(), OrderCallbackContent.class); OrderCallbackContent orderCallbackContent = JsonUtils.fromJson(callbackParams.getContent(), OrderCallbackContent.class);
log.info("下单回调content: {}", callbackParams.getContent()); log.info("下单回调content: {}", callbackParams.getContent());
//TODO 业务 // 业务
return sqbOrderService.handlePayCallback(orderCallbackContent);
return ResponseDto.success();
} }
@ApiOperation("退款回调") @ApiOperation("退款回调")
@PostMapping("/refund/callback") @PostMapping("/refund/callback")
public ResponseDto<Boolean> refundCallback(@RequestBody CallbackParams callbackParams) { public ResponseDto<String> refundCallback(@RequestBody CallbackParams callbackParams) {
if (null == callbackParams) { if (null == callbackParams) {
log.error("退款回调参数为空"); log.error("退款回调参数为空");
return ResponseDto.failure("退款回调参数为空"); return ResponseDto.failure("退款回调参数为空");
...@@ -60,14 +63,13 @@ public class GoblinShouqianbaController { ...@@ -60,14 +63,13 @@ public class GoblinShouqianbaController {
RefundCallbackContent refundCallbackContent = JsonUtils.fromJson(callbackParams.getContent(), RefundCallbackContent.class); RefundCallbackContent refundCallbackContent = JsonUtils.fromJson(callbackParams.getContent(), RefundCallbackContent.class);
log.info("退款回调content: {}", callbackParams.getContent()); log.info("退款回调content: {}", callbackParams.getContent());
//TODO 业务 // 业务
return sqbOrderService.handleRefundCallback(refundCallbackContent);
return ResponseDto.success();
} }
@ApiOperation("券状态回调") @ApiOperation("券状态回调")
@PostMapping("/coupon/callback") @PostMapping("/coupon/callback")
public ResponseDto<Boolean> couponCallback(@RequestBody CallbackParams callbackParams) { public ResponseDto<String> couponCallback(@RequestBody CallbackParams callbackParams) {
if (null == callbackParams) { if (null == callbackParams) {
log.error("券状态回调参数为空"); log.error("券状态回调参数为空");
return ResponseDto.failure("券状态回调参数为空"); return ResponseDto.failure("券状态回调参数为空");
...@@ -80,9 +82,9 @@ public class GoblinShouqianbaController { ...@@ -80,9 +82,9 @@ public class GoblinShouqianbaController {
CouponCallbackContent callbackContent = JsonUtils.fromJson(callbackParams.getContent(), CouponCallbackContent.class); CouponCallbackContent callbackContent = JsonUtils.fromJson(callbackParams.getContent(), CouponCallbackContent.class);
log.info("券状态回调content: {}", callbackParams.getContent()); log.info("券状态回调content: {}", callbackParams.getContent());
//TODO 业务 // 业务
return ResponseDto.success(); return sqbOrderService.handleCouponCallback(callbackContent);
} }
} }
package com.liquidnet.service.goblin.controller;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.service.IGoblinSqbOrderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
/**
* 收钱吧回调 Controller(收钱吧主动推送,无需鉴权)
*/
@Slf4j
@Api(tags = "收钱吧回调")
@RestController
public class GoblinSqbCallbackController {
@Autowired
private IGoblinSqbOrderService goblinSqbOrderService;
/**
* 支付成功回调
* URL: https://testgoblin.zhengzai.tv/goblin/sqb/order/callback
*/
@PostMapping("/goblin/sqb/order/callback")
@ApiOperation("支付成功回调")
public ResponseDto<String> payCallback(@RequestBody Map<String, Object> params) {
log.info("[收钱吧支付回调] 收到推送");
return goblinSqbOrderService.handlePayCallback(params);
}
/**
* 退款成功回调
* URL: https://testgoblin.zhengzai.tv/goblin/sqb/refund/callback
*/
@PostMapping("/goblin/sqb/refund/callback")
@ApiOperation("退款成功回调")
public ResponseDto<String> refundCallback(@RequestBody Map<String, Object> params) {
log.info("[收钱吧退款回调] 收到推送");
return goblinSqbOrderService.handleRefundCallback(params);
}
/**
* 券状态变更回调
* URL: https://testgoblin.zhengzai.tv/goblin/sqb/coupon/callback
*/
@PostMapping("/goblin/sqb/coupon/callback")
@ApiOperation("券状态变更回调")
public ResponseDto<String> couponCallback(@RequestBody Map<String, Object> params) {
log.info("[收钱吧券状态回调] 收到推送");
return goblinSqbOrderService.handleCouponCallback(params);
}
}
...@@ -6,6 +6,9 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -6,6 +6,9 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.*; import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.entity.GoblinSqbPerformanceGoods; import com.liquidnet.service.goblin.entity.GoblinSqbPerformanceGoods;
import com.liquidnet.service.goblin.mapper.GoblinSqbPerformanceGoodsMapper; import com.liquidnet.service.goblin.mapper.GoblinSqbPerformanceGoodsMapper;
import com.liquidnet.service.goblin.param.shouqianba.callback.CouponCallbackContent;
import com.liquidnet.service.goblin.param.shouqianba.callback.OrderCallbackContent;
import com.liquidnet.service.goblin.param.shouqianba.callback.RefundCallbackContent;
import com.liquidnet.service.goblin.param.shouqianba.request.*; import com.liquidnet.service.goblin.param.shouqianba.request.*;
import com.liquidnet.service.goblin.param.shouqianba.response.data.*; import com.liquidnet.service.goblin.param.shouqianba.response.data.*;
import com.liquidnet.service.goblin.service.IGoblinShouQianBaService; import com.liquidnet.service.goblin.service.IGoblinShouQianBaService;
...@@ -20,7 +23,6 @@ import org.springframework.util.CollectionUtils; ...@@ -20,7 +23,6 @@ import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 收钱吧订单服务实现 * 收钱吧订单服务实现
...@@ -506,9 +508,10 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -506,9 +508,10 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
// ================================ 回调处理 ================================ // ================================ 回调处理 ================================
@Override @Override
public ResponseDto<String> handlePayCallback(Map<String, Object> params) { public ResponseDto<String> handlePayCallback(OrderCallbackContent orderCallbackContent) {
log.info("[收钱吧支付回调] 收到回调参数: {}", params); log.info("[收钱吧支付回调] 收到回调参数: {}", orderCallbackContent);
String orderId = getOrderIdFromParams(params); // TODO 可能需要根据收钱吧的orderSn查询正在的orderId
String orderId = orderCallbackContent.getOrderSn();
if (orderId == null) return ResponseDto.failure("缺少订单标识"); if (orderId == null) return ResponseDto.failure("缺少订单标识");
GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId); GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId);
...@@ -525,9 +528,10 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -525,9 +528,10 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
} }
@Override @Override
public ResponseDto<String> handleRefundCallback(Map<String, Object> params) { public ResponseDto<String> handleRefundCallback(RefundCallbackContent refundCallbackContent) {
log.info("[收钱吧退款回调] 收到回调参数: {}", params); log.info("[收钱吧退款回调] 收到回调参数: {}", refundCallbackContent);
String orderId = getOrderIdFromParams(params); // TODO 可能需要根据收钱吧的orderSn查询正在的orderId
String orderId = refundCallbackContent.getOrderSn();
if (orderId == null) return ResponseDto.failure("缺少订单标识"); if (orderId == null) return ResponseDto.failure("缺少订单标识");
GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId); GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId);
...@@ -545,9 +549,9 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -545,9 +549,9 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
} }
@Override @Override
public ResponseDto<String> handleCouponCallback(Map<String, Object> params) { public ResponseDto<String> handleCouponCallback(CouponCallbackContent callbackContent) {
log.info("[收钱吧券状态回调] 收到回调参数: {}", params); log.info("[收钱吧券状态回调] 收到回调参数: {}", callbackContent);
String orderId = getOrderIdFromParams(params); String orderId = callbackContent.getOrderSn();
if (orderId == null) return ResponseDto.failure("缺少订单标识"); if (orderId == null) return ResponseDto.failure("缺少订单标识");
GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId); GoblinSqbOrderVo orderVo = goblinSqbRedisUtils.getSqbOrder(orderId);
...@@ -815,11 +819,11 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService { ...@@ -815,11 +819,11 @@ public class GoblinSqbOrderServiceImpl implements IGoblinSqbOrderService {
return detailVo; return detailVo;
} }
private String getOrderIdFromParams(Map<String, Object> params) { // private String getOrderIdFromParams(Map<String, Object> params) {
String orderId = (String) params.get("orderId"); // String orderId = (String) params.get("orderId");
if (orderId == null) orderId = (String) params.get("acquiringSn"); // if (orderId == null) orderId = (String) params.get("acquiringSn");
return orderId; // return orderId;
} // }
private void syncOrderStatus(String orderId, int status) { private void syncOrderStatus(String orderId, int status) {
GoblinStoreOrderVo storeOrderVo = goblinRedisUtils.getGoblinOrder(orderId); GoblinStoreOrderVo storeOrderVo = goblinRedisUtils.getGoblinOrder(orderId);
......
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