From 777178cc4505ddbce1bce140f4be123d161ee37e Mon Sep 17 00:00:00 2001 From: Hawking Date: Thu, 20 Apr 2023 22:33:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E5=B8=90=E5=90=8E=E4=B9=9F=E8=83=BD?= =?UTF-8?q?=E5=90=8C=E6=84=8F=E9=80=80=E6=AC=BE=EF=BC=8C=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E9=80=80=E6=AC=BE0=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/AfterServiceRecordController.java | 2 +- .../service/IAfterServiceRecordService.java | 19 +++++++------- .../impl/AfterServiceRecordServiceImpl.java | 26 +++++++++++++------ 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/AfterServiceRecordController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/AfterServiceRecordController.java index e85a6cad..cc95678a 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/AfterServiceRecordController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/AfterServiceRecordController.java @@ -134,7 +134,7 @@ public class AfterServiceRecordController extends BaseController { public AjaxResult editSave(@RequestBody AfterServiceRecord afterServiceRecord) { logger.info("修改售后记录:{}", afterServiceRecord); try { - return toAjax(afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord)); + return afterServiceRecordService.updateAfterServiceRecord(afterServiceRecord); } catch (Exception exception) { logger.error(ExceptionUtils.getStackTrace(exception)); return AjaxResult.error(exception.getMessage()); diff --git a/ghy-order/src/main/java/com/ghy/order/service/IAfterServiceRecordService.java b/ghy-order/src/main/java/com/ghy/order/service/IAfterServiceRecordService.java index 970e1ef8..24132cbf 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/IAfterServiceRecordService.java +++ b/ghy-order/src/main/java/com/ghy/order/service/IAfterServiceRecordService.java @@ -1,23 +1,24 @@ package com.ghy.order.service; -import java.util.List; +import com.ghy.common.core.domain.AjaxResult; import com.ghy.order.domain.AfterServiceRecord; +import java.util.List; + /** * 售后记录Service接口 * * @author clunt * @date 2022-09-25 */ -public interface IAfterServiceRecordService -{ +public interface IAfterServiceRecordService { /** * 查询售后记录 * * @param id 售后记录主键 * @return 售后记录 */ - public AfterServiceRecord selectAfterServiceRecordById(String id); + AfterServiceRecord selectAfterServiceRecordById(String id); /** * 查询售后记录列表 @@ -25,7 +26,7 @@ public interface IAfterServiceRecordService * @param afterServiceRecord 售后记录 * @return 售后记录集合 */ - public List selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord); + List selectAfterServiceRecordList(AfterServiceRecord afterServiceRecord); /** * 新增售后记录 @@ -33,7 +34,7 @@ public interface IAfterServiceRecordService * @param afterServiceRecord 售后记录 * @return 结果 */ - public int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord); + int insertAfterServiceRecord(AfterServiceRecord afterServiceRecord); /** * 修改售后记录 @@ -41,7 +42,7 @@ public interface IAfterServiceRecordService * @param afterServiceRecord 售后记录 * @return 结果 */ - public int updateAfterServiceRecord(AfterServiceRecord afterServiceRecord) throws Exception; + AjaxResult updateAfterServiceRecord(AfterServiceRecord afterServiceRecord) throws Exception; /** * 批量删除售后记录 @@ -49,7 +50,7 @@ public interface IAfterServiceRecordService * @param ids 需要删除的售后记录主键集合 * @return 结果 */ - public int deleteAfterServiceRecordByIds(String ids); + int deleteAfterServiceRecordByIds(String ids); /** * 删除售后记录信息 @@ -57,5 +58,5 @@ public interface IAfterServiceRecordService * @param id 售后记录主键 * @return 结果 */ - public int deleteAfterServiceRecordById(String id); + int deleteAfterServiceRecordById(String id); } diff --git a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java index 21388ed2..20e22b1b 100644 --- a/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java +++ b/ghy-order/src/main/java/com/ghy/order/service/impl/AfterServiceRecordServiceImpl.java @@ -2,6 +2,7 @@ package com.ghy.order.service.impl; import com.alibaba.fastjson.JSONObject; import com.ghy.common.adapay.model.AdapayStatusEnum; +import com.ghy.common.core.domain.AjaxResult; import com.ghy.common.core.text.Convert; import com.ghy.common.enums.PayStatus; import com.ghy.common.enums.RefundType; @@ -126,23 +127,32 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService */ @Override @Transactional(rollbackFor = Exception.class) - public int updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException { + public AjaxResult updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException { AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId()); Assert.notNull(afterServiceRecord, "售后记录不存在!"); if (Long.valueOf(1L).equals(param.getCustomerFinalCheck()) && Long.valueOf(1L).equals(afterServiceRecord.getWorkerFeedbackResult())) { // 客户同意退款 afterServiceRecord.setCustomerFinalCheck(1L); - return agreeRefund(afterServiceRecord); + afterServiceRecord.setRefundApplyTime(new Date()); + OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId()); + // DrawCashTime不为空说明已经发起过分账 + if (orderDetail.getDrawCashTime() != null) { + log.warn("子单[{}]已发起分账,不能退款", afterServiceRecord.getOrderDetailId()); + afterServiceRecord.setOriginalRefund(BigDecimal.ZERO); + afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord); + return AjaxResult.error("本单已划款,师傅/服务人员已到帐或即将到帐,双方达成退款的,请对方线下支付后点“对方已退款”"); + } else { + agreeRefund(afterServiceRecord); + } } else { - return afterServiceRecordMapper.updateAfterServiceRecord(param); + afterServiceRecordMapper.updateAfterServiceRecord(param); } + return AjaxResult.success(); } private int agreeRefund(AfterServiceRecord afterServiceRecord) throws BaseAdaPayException { OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId()); Assert.notNull(orderDetail, "子单不存在!"); - // DrawCashTime不为空说明已经发起过分账 - Assert.isTrue(orderDetail.getDrawCashTime() == null, "子单已发起分账,请联系师傅处理线下售后!"); FinancialDetail financialDetail = financialDetailService.selectByOrderDetailId(afterServiceRecord.getOrderDetailId()); Assert.notNull(financialDetail, "财务子单不存在!"); OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); @@ -190,7 +200,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService financialMasterService.updateFinancialMaster(financialMaster); // 发起支付撤销 - if(payReverse){ + if (payReverse) { payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt); } } else { @@ -201,7 +211,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService financialMasterService.updateFinancialMaster(financialMaster); String reverseAmt = AdapayUtils.bigDecimalToString(refundMoney); // 发起支付撤销 - if(payReverse){ + if (payReverse) { payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt); } } @@ -220,7 +230,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService financialDetailService.updateFinancialDetail(financialDetail); // 发起支付撤销 - if(payReverse){ + if (payReverse) { String reverseAmt = AdapayUtils.bigDecimalToString(financialMaster.getServerMoney()); payReverse(orderMaster.getDeptId(), financialMaster.getPaymentId(), reverseAmt); }