|
|
@@ -922,6 +922,81 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R refundOrderMoney(Long orderId, LiveAfterSales liveAfterSales) {
|
|
|
+ LiveOrder order = baseMapper.selectLiveOrderByOrderId(String.valueOf(orderId));
|
|
|
+ if(order.getStatus()==-2){
|
|
|
+ return R.error("已退款");
|
|
|
+ }
|
|
|
+ if(StringUtils.isNotEmpty(order.getExtendOrderId())){
|
|
|
+ ErpRefundUpdateRequest request=new ErpRefundUpdateRequest();
|
|
|
+ request.setTid(order.getOrderCode());
|
|
|
+ request.setOid(order.getOrderCode());
|
|
|
+ request.setRefund_state(1);
|
|
|
+ request.setOrderStatus(order.getStatus());
|
|
|
+
|
|
|
+ // 根据仓库code找erp
|
|
|
+ if(StringUtils.isNotBlank(order.getStoreHouseCode())){
|
|
|
+ String erp = fsWarehousesMapper.selectErpByCode(order.getStoreHouseCode());
|
|
|
+ ErpContextHolder.setErpType(erp);
|
|
|
+ }
|
|
|
+ BaseResponse response=erpOrderService.refundUpdateLive(request);
|
|
|
+ if(ObjectUtil.isNull(response) || !response.getSuccess()){
|
|
|
+ log.error("调用erp退款接口失败! {}",JSON.toJSONString(response));
|
|
|
+ throw new CustomException("调用erp退款接口失败:"+response.getErrorDesc());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ order.setStatus(-2);
|
|
|
+ order.setRefundMoney(order.getPayMoney());
|
|
|
+ order.setRefundStatus(String.valueOf(OrderInfoEnum.REFUND_STATUS_2.getValue()));
|
|
|
+ baseMapper.updateLiveOrder(order);
|
|
|
+
|
|
|
+ //退库存
|
|
|
+ //获取订单下的商品
|
|
|
+ List<LiveOrderItem> orderItemVOS=liveOrderItemMapper.selectLiveOrderItemByOrderId(order.getOrderId());
|
|
|
+ for(LiveOrderItem vo:orderItemVOS){
|
|
|
+ if(vo.getIsAfterSales()==1){
|
|
|
+ fsStoreProductService.incProductStock(vo.getNum(), vo.getProductId(), vo.getProductAttrValueId());
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(order.getPayType().equals(3)){
|
|
|
+ //货到付款
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ //将钱退还给用户
|
|
|
+ List<LiveOrderPayment> payments=liveOrderPaymentMapper.selectLiveOrderPaymentByPay(5,order.getOrderId());
|
|
|
+ if(payments!=null){
|
|
|
+ for(LiveOrderPayment payment:payments){
|
|
|
+ PaymentHandler best = PaymentHandlerHolder.findBest(payment.getPayMode());
|
|
|
+ if(ObjectUtil.isNull(best)){
|
|
|
+ throw new CustomException("支付类型异常!");
|
|
|
+ }
|
|
|
+ PayProcessContext payProcessContext = new PayProcessContext();
|
|
|
+ payProcessContext.setOrderId(orderId);
|
|
|
+ payProcessContext.setPaymentId(payment.getPaymentId());
|
|
|
+ payProcessContext.setPayCode(payment.getPayCode());
|
|
|
+ payProcessContext.setUserId(Long.valueOf(order.getUserId()));
|
|
|
+ payProcessContext.setOrderPrefix("refundLive-");
|
|
|
+ best.refundLiveOrder(payProcessContext);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ liveOrderLogsService.create(order.getOrderId(), OrderLogEnum.REFUND_ORDER_SUCCESS.getValue(),
|
|
|
+ OrderLogEnum.REFUND_ORDER_SUCCESS.getDesc());
|
|
|
+ //减去公司收入
|
|
|
+ if(order.getCompanyId()!=null&&order.getCompanyId()>0&&order.getTuiMoneyStatus()!=null&&order.getTuiMoneyStatus()==1){
|
|
|
+ companyService.subLiveCompanyMoney(order);
|
|
|
+ }
|
|
|
+ if(order.getTuiUserId()!=null&&order.getTuiUserId()>0){
|
|
|
+ userService.subLiveTuiMoney(order);
|
|
|
+ }
|
|
|
+
|
|
|
+ liveAfterSales.setStatus(4);
|
|
|
+ liveAfterSales.setSalesStatus(3);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<LiveOrder> selectUpdateExpress() {
|
|
|
return baseMapper.selectUpdateExpress();
|