diff --git a/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java b/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java index 36314a6..4ee8782 100644 --- a/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java +++ b/crmeb-admin/src/main/java/com/zbkj/admin/controller/extend/TestController.java @@ -40,6 +40,9 @@ public class TestController { private StoreOrderRefundService storeOrderRefundService; @Autowired private WechatNewService wechatNewService; + + @Autowired + private OrderTaskService orderTaskService; @PostMapping("/aa") String createDelivery(@RequestBody MallDelivery mallDelivery){ StoreOrder storeOrder = storeOrderDao.selectOne(new LambdaQueryWrapper().eq(StoreOrder::getOrderId, mallDelivery.getPlatformCode())); @@ -53,8 +56,8 @@ public class TestController { String bb(@RequestBody MallDelivery mallDelivery){ StoreOrder storeOrder = storeOrderDao.selectOne(new LambdaQueryWrapper().eq(StoreOrder::getOrderId, mallDelivery.getPlatformCode())); + orderTaskService.refundApply(); - wechatNewService.payRefundQuery(storeOrder); return ""; } diff --git a/crmeb-admin/src/main/resources/logback-spring.xml b/crmeb-admin/src/main/resources/logback-spring.xml index 096ca90..dffc1d4 100644 --- a/crmeb-admin/src/main/resources/logback-spring.xml +++ b/crmeb-admin/src/main/resources/logback-spring.xml @@ -254,7 +254,7 @@ - INFO + DEBUG diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/CallbackServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/CallbackServiceImpl.java index a764410..c06a845 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/CallbackServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/CallbackServiceImpl.java @@ -530,6 +530,7 @@ public class CallbackServiceImpl implements CallbackService { logger.warn("微信退款订单已确认成功==>" + refundRecord.getColumns() + ", rawData==>" + xmlInfo + ", data==>" + notifyRecord); return refundRecord.getStr("returnXml"); } + storeOrder.setAfterSalesStatus("已退款"); storeOrder.setRefundStatus(2); boolean update = storeOrderService.updateById(storeOrder); if (update) { diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderPayServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderPayServiceImpl.java index 680fab1..65eb7c3 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderPayServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderPayServiceImpl.java @@ -14,6 +14,7 @@ import com.alipay.api.domain.AlipayTradeWapPayModel; import com.alipay.api.request.AlipayTradeAppPayRequest; import com.alipay.api.request.AlipayTradeWapPayRequest; import com.alipay.api.response.AlipayTradeAppPayResponse; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zbkj.common.constants.*; import com.zbkj.common.exception.CrmebException; import com.zbkj.common.model.combination.StoreCombination; @@ -39,6 +40,7 @@ import com.zbkj.common.utils.CrmebDateUtil; import com.zbkj.common.utils.RedisUtil; import com.zbkj.common.utils.WxPayUtil; import com.zbkj.common.vo.*; +import com.zbkj.service.dao.StoreOrderInfoDao; import com.zbkj.service.delete.OrderUtils; import com.zbkj.service.service.*; import lombok.Data; @@ -111,7 +113,8 @@ public class OrderPayServiceImpl implements OrderPayService { @Autowired private OrderUtils orderUtils; - + @Autowired + private StoreOrderInfoDao storeOrderInfoDao; //订单类 private StoreOrder order; diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java index bcbbce4..ba989ae 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/OrderTaskServiceImpl.java @@ -29,6 +29,7 @@ import com.zbkj.service.dao.UserAddressDao; import com.zbkj.service.pojo.TradeOrderItemCreateReqDTO; import com.zbkj.service.service.*; import com.zbkj.service.util.RedisLockUtil; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -55,6 +56,7 @@ import java.util.stream.Collectors; * +---------------------------------------------------------------------- */ @Service +@Slf4j public class OrderTaskServiceImpl implements OrderTaskService { //日志 private static final Logger logger = LoggerFactory.getLogger(OrderTaskServiceImpl.class); @@ -165,7 +167,7 @@ public class OrderTaskServiceImpl implements OrderTaskService { redisLock.lock(Constants.ORDER_LOCK + storeOrder.getOrderId(),5); if (!lock) { logger.error("订单未获取到锁orderNo = " + orderId); - continue; + throw new CrmebException("单号被锁,orderNo = " + orderId); } // boolean result = storeOrderTaskService.refundApply(storeOrder); boolean result = storeOrderTaskService.refundOrder(storeOrder); @@ -174,8 +176,8 @@ public class OrderTaskServiceImpl implements OrderTaskService { redisUtil.lPush(redisKey, orderId); } } catch (Exception e) { + log.error("订单退款错误:" , e); retryService.systemErrNc("订单退款错误:" + e); - logger.error("订单退款错误:" + e.getMessage()); redisUtil.lPush(redisKey, orderId); } } diff --git a/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java b/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java index d00ed14..3b2bf94 100644 --- a/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java +++ b/crmeb-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java @@ -567,6 +567,9 @@ public class StoreOrderServiceImpl extends ServiceImpl 0) { - try { - storeOrderRefundService.refund(request, storeOrder); - } catch (Exception e) { - e.printStackTrace(); - throw new CrmebException("微信申请退款失败!"); - } - } - if (storeOrder.getPayType().equals(Constants.PAY_TYPE_ALI_PAY) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) { - try { - aliPayService.refund(request, storeOrder); - } catch (Exception e) { - e.printStackTrace(); - throw new CrmebException("支付宝申请退款失败!"); - } - } +// if (storeOrder.getPayType().equals(Constants.PAY_TYPE_WE_CHAT) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) { +// try { +// storeOrderRefundService.refund(request, storeOrder); +// } catch (Exception e) { +// e.printStackTrace(); +// throw new CrmebException("微信申请退款失败!"); +// } +// } +// if (storeOrder.getPayType().equals(Constants.PAY_TYPE_ALI_PAY) && request.getAmount().compareTo(BigDecimal.ZERO) > 0) { +// try { +// aliPayService.refund(request, storeOrder); +// } catch (Exception e) { +// e.printStackTrace(); +// throw new CrmebException("支付宝申请退款失败!"); +// } +// } //修改订单退款状态 storeOrder.setRefundStatus(3); @@ -619,7 +622,7 @@ public class StoreOrderServiceImpl extends ServiceImpl addIntegralList = integralRecordList.stream().filter(e -> ObjectUtil.isNull(e.getId())).collect(Collectors.toList()); List updateIntegralList = integralRecordList.stream().filter(e -> ObjectUtil.isNotNull(e.getId())).collect(Collectors.toList()); - StoreOrder tempOrder = new StoreOrder(); - tempOrder.setId(storeOrder.getId()); - tempOrder.setRefundStatus(2); + // 佣金处理:只处理冻结期佣金 // 查询佣金记录 List brokerageRecordList = CollUtil.newArrayList(); @@ -389,16 +391,15 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService { return Boolean.FALSE; } /* }*/ - String mdbRefundNo = createAfterSale(storeOrder, user); - if (StrUtil.isNotBlank(mdbRefundNo)) { - storeOrder.setAfterSalesStatus("已退款"); - storeOrder.setRefundStatus(2); - storeOrder.setMdbRefundNo(mdbRefundNo); - }else { - logger.error("买单吧查询创建/退款查询失败,订单号:{} " ,storeOrder.getOrderId()); + boolean mdbRefundNo = createAfterSale(storeOrder, user); + if (!mdbRefundNo) { + logger.error("查询创建/退款查询失败,订单号:{} " ,storeOrder.getOrderId()); return Boolean.FALSE; } Boolean execute = transactionTemplate.execute(e -> { + storeOrder.setAfterSalesStatus("已退款"); + storeOrder.setRefundStatus(2); + storeOrderService.updateById(storeOrder); //写订单日志 storeOrderStatusService.saveRefund(storeOrder.getId(), storeOrder.getRefundPrice(), "成功"); @@ -428,7 +429,7 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService { throw new CrmebException("回滚库存失败"); } - storeOrderService.updateById(tempOrder); + // 拼团状态处理 if (storeOrder.getCombinationId() > 0) { @@ -458,12 +459,22 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService { return execute; } - private String createAfterSale(StoreOrder storeOrder, User user) { - // WxRefundResponseVo wxRefundResponseVo = wechatNewService.payRefundQuery(storeOrder); -// StoreOrderRefundRequest request = new StoreOrderRefundRequest(); -// request.setAmount(storeOrder.getRefundPrice()); -// storeOrderRefundService.refund(request, storeOrder); - return null; + private boolean createAfterSale(StoreOrder storeOrder, User user) { + WxRefundQueryResponseVo vo=null; + try { + vo =wechatNewService.payRefundQuery(storeOrder); + }catch(Exception e){ + log.error("查询创建/退款查询失败,订单号:{} " ,storeOrder.getOrderId()); + } + log.info("查询创建/退款查询结果:{}" , JSON.toJSONString(vo)); + if (vo==null || !"SUCCESS".equals(vo.getRefundStatus0())){ + StoreOrderRefundRequest request = new StoreOrderRefundRequest(); + request.setAmount(storeOrder.getRefundPrice()); + storeOrderRefundService.refund(request, storeOrder); + //创建申请退款后继续返回false 等下次定时任务扫描 重新查询退款成功状态返回true + return false; + } + return true; } /**