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

Commit f97dfa87 authored by jiangxiulong's avatar jiangxiulong

上报退票信息

parent 2cb529bc
......@@ -78,7 +78,10 @@ public class KylinOrderRefunds implements Serializable, Cloneable{
private Integer status;
/**
* 退款差异: 0申请退款返还库存 1自动退款无法取消退款不返还库存
* 0客服、票务人工申请,可以取消退款,回调再处理库存和券
* 2用户申请普通退款,可以取消退款,回调再处理库存和券
* 3用户申请快递退款,可以取消退款,回调再处理库存和券,需确认收货
* 1超时退款,无法取消退款,直接返还库存和券,回调不再处理库存和券
*/
private Integer type;
......
......@@ -10,10 +10,13 @@ import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.RefundCallbackParam;
import com.liquidnet.service.kylin.dto.param.ticketSystem.STRefundOrderParam;
import com.liquidnet.service.kylin.dto.vo.mongo.*;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderRefundsVo;
import com.liquidnet.service.kylin.dto.vo.ticketSystem.RefundOrderVo;
import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.mapper.*;
import com.liquidnet.service.platform.service.ticketSystem.ITicketSystemService;
import com.liquidnet.service.platform.utils.DataUtils;
import com.liquidnet.service.platform.utils.MongoVoUtils;
import com.mongodb.BasicDBObject;
......@@ -81,6 +84,9 @@ public class KylinRefundsStatusServiceImpl {
@Autowired
private FeignStoneIntegralClient feignStoneIntegralClient;
@Autowired
private ITicketSystemService ticketSystemService;
@Value("${liquidnet.service.candy.url}")
private String candyUrl;
......@@ -128,6 +134,7 @@ public class KylinRefundsStatusServiceImpl {
);
BigDecimal onePrice = priceActual.subtract(priceExpress).divide(BigDecimal.valueOf(allEntitiesCount));//单价
int refundNumber = 0;
List<RefundOrderVo> refundOrderVos = new ArrayList<>();
for (String entitiesId : orderTicketEntitiesIdsArr) {
KylinOrderTicketEntities EntitiesInfo = kylinOrderTicketEntitiesMapper.selectOne(//已退完成的
Wrappers.lambdaQuery(KylinOrderTicketEntities.class)
......@@ -175,6 +182,13 @@ public class KylinRefundsStatusServiceImpl {
);
dataUtils.delOrderTicketEntitiesRedis(entitiesId);
RefundOrderVo refundOrderVo = new RefundOrderVo();
refundOrderVo.setTicketOrderId(entitiesId);
refundOrderVo.setSessionCode(dataUtils.getSessionCode(EntitiesInfo.getTimeId()));
refundOrderVo.setTicketId(EntitiesInfo.getTicketId());
refundOrderVo.setRefundAmount(String.valueOf(refundEntitiesInfo.getRefundPrice()));
refundOrderVos.add(refundOrderVo);
}
// 订单表
......@@ -235,7 +249,7 @@ public class KylinRefundsStatusServiceImpl {
log.info("refundCallback数据库更新res: [update1={},update2={},update3={}]", update1, update2, update3);
if(null != refundInfo.getRefundCode() && !refundInfo.getRefundCode().isEmpty()) {
if (null != refundInfo.getRefundCode() && !refundInfo.getRefundCode().isEmpty()) {
log.info("refundCallback已退过不处理库存等: [refundAt={}, orderRefundCode={}, refundCode={}]", refundInfo.getRefundAt(), refundInfo.getOrderRefundCode(), refundInfo.getRefundCode());
return true;
}
......@@ -253,8 +267,8 @@ public class KylinRefundsStatusServiceImpl {
dataUtils.changeBuyInfo(orderInfo.getUserId(), entitiesInfo.getEnterIdCode(), orderRelations.getPerformanceId(), entitiesInfo.getTicketId(), -1);
}
}
// 退所有优惠券 提前购优惠券不退
if (newStatus == KylinTableStatusConst.ORDER_STATUS4) {
// 退所有优惠券 提前购优惠券不退
KylinPerformanceVo performanceVo = dataUtils.getPerformanceVo(orderRelations.getPerformanceId());
if (performanceVo.getIsRefundVoucher() > 0) {
ArrayList<KylinOrderCoupons> orderCoupon = dataUtils.getOrderCoupon(orderTicketsId);
......@@ -274,17 +288,34 @@ public class KylinRefundsStatusServiceImpl {
String returnData = HttpUtil.postRaw(candyUrl + "/candy-coupon/useBack", jsonString, null);
log.info("订单退款回调退券结果:[returnData={}]", returnData);
} catch (Exception e) {
log.info("订单退款回调退券异常:[errorMsg={}, e={}]", e.getMessage(), e);
log.error("订单退款回调退券异常:[refundId={}, errorMsg={}, e={}]", refundInfo.getRefundId(), e.getMessage(), e);
}
}
}
// 上报退票信息
try {
String accessToken = ticketSystemService.getAccessToken();
STRefundOrderParam stRefundOrderParam = STRefundOrderParam.getNew();
stRefundOrderParam.setRefundOrderId(refundInfo.getOrderRefundsId());
stRefundOrderParam.setOrderId(refundInfo.getOrderTicketsId());
stRefundOrderParam.setReason("按需退款");
stRefundOrderParam.setRefundOrderTime(LocalDateTime.now());
stRefundOrderParam.setTicketOrderList(refundOrderVos);
boolean refundOrder = ticketSystemService.refundOrder(accessToken, stRefundOrderParam);
log.info("订单退款回调上报退票信息结果:[refundId={}, result={}]", refundInfo.getRefundId(), refundOrder);
if (!refundOrder) {
log.error("订单退款回调上报退票信息失败:[refundId={}, result={}]", refundInfo.getRefundId(), refundOrder);
}
} catch (Exception e) {
log.error("订单退款回调上报退票信息异常:[refundId={}, errorMsg={}, e={}]", refundInfo.getRefundId(), e.getMessage(), e);
}
}
// 退积分
try {
ResponseDto<String> de2111 = feignStoneIntegralClient.de2111(orderInfo.getUserId(), refundCallbackParam.getRefundPrice().setScale(0, BigDecimal.ROUND_DOWN).intValue(), "演出订单退款:".concat(orderInfo.getPerformanceTitle()).concat(":").concat(orderInfo.getOrderCode().substring(orderInfo.getOrderCode().length() - 10)));
log.info("订单退款回调退积分结果:[getCode={}, getData={}]", de2111.getCode(), de2111.getData());
} catch (Exception e) {
log.info("订单退款回调退积分异常:[errorMsg={}, e={}]", e.getMessage(), e);
log.error("订单退款回调退积分异常:[refundId={}, errorMsg={}, e={}]", refundInfo.getRefundId(), e.getMessage(), e);
}
}
......
......@@ -419,4 +419,9 @@ public class DataUtils {
public Object delTimeLine(String performances) {
return mongoTemplate.remove(Query.query(Criteria.where("performance").is(performances)), KylinTimePerformanceVo.class, KylinTimePerformanceVo.class.getSimpleName());
}
//获取SessionCode
public String getSessionCode(String ticketTimeId) {
return (String) redisDataSourceUtil.getRedisKylinUtil().get(KylinRedisConst.TIMES_SESSION_CODE.concat(ticketTimeId));
}
}
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