From 83754b9d2c1c4e296f4d49d7d9dd1ff0983cac7c Mon Sep 17 00:00:00 2001 From: "kuang.yife" Date: Wed, 26 Apr 2023 22:52:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8Be+=E7=A1=AE=E8=AE=A4=E5=8F=91?= =?UTF-8?q?=E8=B5=B7=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/OrderDetailController.java | 5 +++++ .../service/IAfterServiceRecordService.java | 2 ++ .../impl/AfterServiceRecordServiceImpl.java | 19 +++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java index 17e37f75..4f333af4 100644 --- a/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java +++ b/ghy-admin/src/main/java/com/ghy/web/controller/order/OrderDetailController.java @@ -770,6 +770,11 @@ public class OrderDetailController extends BaseController { @Transactional(rollbackFor = Exception.class) public AjaxResult applyFinishOrder(@RequestBody OrderProcessRequest request) { logger.info("师傅发起完单,orderDetailId={}", request.getOrderDetailId()); + // 判断是否有未完成的售后记录,如果有则不允许完单 + AfterServiceRecord unfinishedByOrderDetailId = afterServiceRecordService.getUnfinishedByOrderDetailId(request.getOrderDetailId()); + if(unfinishedByOrderDetailId != null){ + return AjaxResult.error("存在未处理完的售后,不允许申请完单!"); + } // 判断工单状态是否为服务中以及是否已支付 OrderDetail orderDetail = orderDetailService.selectById(request.getOrderDetailId()); OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); 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 24132cbf..8aa93a55 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 @@ -44,6 +44,8 @@ public interface IAfterServiceRecordService { */ AjaxResult updateAfterServiceRecord(AfterServiceRecord afterServiceRecord) throws Exception; + public AfterServiceRecord getUnfinishedByOrderDetailId(Long orderDetailId); + /** * 批量删除售后记录 * 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 2d7d0836..d6edd010 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 @@ -4,6 +4,7 @@ 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.OrderStatus; import com.ghy.common.enums.PayStatus; import com.ghy.common.enums.RefundType; import com.ghy.common.exception.base.BaseException; @@ -119,6 +120,10 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService return afterServiceRecordMapper.unfinished(orderDetailId); } + public AfterServiceRecord getUnfinishedByOrderDetailId(Long orderDetailId) { + return afterServiceRecordMapper.unfinished(orderDetailId); + } + /** * 修改售后记录 * @@ -129,6 +134,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService @Transactional(rollbackFor = Exception.class) public AjaxResult updateAfterServiceRecord(AfterServiceRecord param) throws BaseAdaPayException { Long one = 1L; + Long two = 2L; AfterServiceRecord afterServiceRecord = this.selectAfterServiceRecordById(param.getId()); Assert.notNull(afterServiceRecord, "售后记录不存在!"); OrderDetail orderDetail = orderDetailService.selectById(afterServiceRecord.getOrderDetailId()); @@ -152,6 +158,19 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService afterServiceRecordMapper.updateAfterServiceRecord(param); return drawCash ? AjaxResult.error("本单银联已确认货款结算完毕(订单支付完成),款项已到达或即将到达您所绑定帐户,需同意退款的同意后您线下与客户另行操作,系统无法提供原路返回退款!") : AjaxResult.success(); } else { + if(two.equals(param.getCustomerFinalCheck())){ + // 客户不同意师傅的意见,如果订单是确认中,则需要将订单改为服务中 + if(orderDetail.getOrderStatus() == OrderStatus.FINISH_CHECK.code() && orderDetail.getDrawCashTime()!= null ){ + orderDetail.setOrderStatus(OrderStatus.SERVER.code()); + orderDetailService.updateOrderDetail(orderDetail); + // 如果发现是唯一子单,则需要将主单也更新为服务中 + OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId()); + if(orderMaster.getOrderStatus() == OrderStatus.FINISH_CHECK.code()){ + orderMaster.setOrderStatus(OrderStatus.SERVER.code()); + orderMasterService.updateOrderMaster(orderMaster); + } + } + } afterServiceRecordMapper.updateAfterServiceRecord(param); } return AjaxResult.success();