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

Commit 67216da7 authored by wangyifan's avatar wangyifan

收钱吧退款

parent cfc1022d
...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.service.impl; ...@@ -3,6 +3,7 @@ package com.liquidnet.service.goblin.service.impl;
import com.liquidnet.common.third.sqb.biz.SqbBiz; import com.liquidnet.common.third.sqb.biz.SqbBiz;
import com.liquidnet.common.third.sqb.param.request.CommonRequest; import com.liquidnet.common.third.sqb.param.request.CommonRequest;
import com.liquidnet.common.third.sqb.param.request.CouponQueryRequest; import com.liquidnet.common.third.sqb.param.request.CouponQueryRequest;
import com.liquidnet.common.third.sqb.param.request.CouponRefundRequest;
import com.liquidnet.common.third.sqb.param.response.data.CouponQueryData; import com.liquidnet.common.third.sqb.param.response.data.CouponQueryData;
import com.liquidnet.common.third.sqb.param.response.data.CouponRefundData; import com.liquidnet.common.third.sqb.param.response.data.CouponRefundData;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
...@@ -114,12 +115,26 @@ public class GoblinSqbServiceImpl implements IGoblinSqbService { ...@@ -114,12 +115,26 @@ public class GoblinSqbServiceImpl implements IGoblinSqbService {
goblinSqbRedisUtils.setSqbOrder(orderId, orderVo); goblinSqbRedisUtils.setSqbOrder(orderId, orderVo);
syncOrderStatus(orderId, 4); syncOrderStatus(orderId, 4);
GoblinStoreOrderVo goblinStoreOrderVo = goblinRedisUtils.getGoblinOrder(orderId);
if (null == goblinStoreOrderVo) {
log.error("[收钱吧] 现场商品退款失败, orderId: {}, userId: {}", orderId, userId);
return ResponseDto.failure("退款失败");
}
List<GoblinOrderSkuVo> orderSkuVos = new ArrayList<>();
for (String skuVoId : goblinStoreOrderVo.getOrderSkuVoIds()) {
GoblinOrderSkuVo goblinOrderSkuVo = goblinRedisUtils.getGoblinOrderSkuVo(skuVoId);
if (null != goblinOrderSkuVo) {
orderSkuVos.add(goblinOrderSkuVo);
}
}
try { try {
CouponRefundData refundData = sqbBiz.refundCoupon(orderVo.getSqbOrderSn(), CouponRefundData refundData = sqbBiz.refundCoupon(orderVo.getSqbOrderSn(),
orderVo.getSqbOrderSignature(), orderVo.getSqbOrderSignature(),
orderVo.getAmount(), orderVo.getAmount(),
(byte) 2, // 2-按金额退款 (byte) 2, // 2-按金额退款
new ArrayList<>(), // TODO 需要构建退款商品 buildRefundItem(orderSkuVos), // 需要构建退款商品
reason, reason,
buildRequestId(IDGenerator.nextSnowId()) buildRequestId(IDGenerator.nextSnowId())
); );
...@@ -155,6 +170,28 @@ public class GoblinSqbServiceImpl implements IGoblinSqbService { ...@@ -155,6 +170,28 @@ public class GoblinSqbServiceImpl implements IGoblinSqbService {
} }
} }
private List<CouponRefundRequest.RefundItem> buildRefundItem(List<GoblinOrderSkuVo> orderSkuVos) {
List<CouponRefundRequest.RefundItem> refundItems = new ArrayList<>();
for (GoblinOrderSkuVo orderSkuVo : orderSkuVos) {
GoblinSqbGoodsExtVo sqbGoodsExt = goblinSqbRedisUtils.getSqbGoodsExt(orderSkuVo.getSpuId(), orderSkuVo.getSkuId());
if (sqbGoodsExt == null) {
log.error("[buildRefundItem] 收钱吧扩展参数为空, spuId: {}, skuId: {}", orderSkuVo.getSpuId(), orderSkuVo.getSkuId());
continue;
}
CouponRefundRequest.RefundItem item = new CouponRefundRequest.RefundItem();
item.setSpuId(sqbGoodsExt.getSqbSpuId());
item.setSkuId(sqbGoodsExt.getSqbSkuId());
item.setTitle(orderSkuVo.getSkuName());
item.setImg(orderSkuVo.getSkuImage());
item.setQuantity(String.valueOf(orderSkuVo.getNum()));
item.setType((byte) 0);
refundItems.add(item);
}
return refundItems;
}
// ================================ 同步核销状态 ================================ // ================================ 同步核销状态 ================================
@Override @Override
......
...@@ -109,4 +109,21 @@ public class GoblinSqbRedisUtils { ...@@ -109,4 +109,21 @@ public class GoblinSqbRedisUtils {
String redisKey = GoblinRedisConst.SQB_GOBLIN_GOODS_EXT_KEY.concat(spuId).concat(":").concat(skuId); String redisKey = GoblinRedisConst.SQB_GOBLIN_GOODS_EXT_KEY.concat(spuId).concat(":").concat(skuId);
redisUtil.set(redisKey, sqbGoodsExtVo); redisUtil.set(redisKey, sqbGoodsExtVo);
} }
/**
* 获取正在商品获取收钱吧相关信息缓存
*
* @param spuId
* @param skuId
* @return
*/
public GoblinSqbGoodsExtVo getSqbGoodsExt(String spuId, String skuId) {
String redisKey = GoblinRedisConst.SQB_GOBLIN_GOODS_EXT_KEY.concat(spuId).concat(":").concat(skuId);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
return null;
} else {
return (GoblinSqbGoodsExtVo) obj;
}
}
} }
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