修改售后处理 以及主单售后纠纷查询
This commit is contained in:
parent
c733349a9e
commit
bc96277f86
|
|
@ -2088,8 +2088,15 @@ public class OrderMasterController extends BaseController {
|
|||
public TableDataInfo list(OrderMaster orderMaster) {
|
||||
// 检查是否是售后纠纷查询
|
||||
if (orderMaster.getOrderStatusName() != null && "售后纠纷".equals(orderMaster.getOrderStatusName())) {
|
||||
// 直接使用afterServiceStatus字段查询售后纠纷订单
|
||||
orderMaster.setAfterServiceStatus(1);
|
||||
// 通过查询AfterServiceRecord表中customerFinalCheck=0的记录获取售后纠纷的主单ID
|
||||
List<Long> disputeOrderMasterIds = getDisputeOrderMasterIds();
|
||||
if (disputeOrderMasterIds.isEmpty()) {
|
||||
// 如果没有售后纠纷记录,返回空结果
|
||||
return getDataTable(new ArrayList<>());
|
||||
}
|
||||
// 将售后纠纷的主单ID设置到查询条件中
|
||||
String ids = disputeOrderMasterIds.stream().map(String::valueOf).collect(Collectors.joining(","));
|
||||
orderMaster.setOrderMasterIds(ids);
|
||||
orderMaster.setOrderStatus(null); // 清除orderStatus条件,避免冲突
|
||||
} else if (orderMaster.getSearchAfterList() != null && orderMaster.getSearchAfterList()) {
|
||||
// 保持原有的售后查询逻辑
|
||||
|
|
@ -2963,4 +2970,46 @@ public class OrderMasterController extends BaseController {
|
|||
|
||||
return shop;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取售后纠纷的主单ID列表
|
||||
* 通过查询AfterServiceRecord表中customerFinalCheck=0的记录
|
||||
*
|
||||
* @return 售后纠纷的主单ID列表
|
||||
*/
|
||||
private List<Long> getDisputeOrderMasterIds() {
|
||||
try {
|
||||
// 创建查询条件:customerFinalCheck = 0 表示售后纠纷
|
||||
AfterServiceRecord queryParam = new AfterServiceRecord();
|
||||
queryParam.setCustomerFinalCheck(0L);
|
||||
|
||||
// 查询售后纠纷记录
|
||||
List<AfterServiceRecord> disputeRecords = afterServiceRecordService.selectAfterServiceRecordList(queryParam);
|
||||
|
||||
if (disputeRecords.isEmpty()) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
// 获取售后记录对应的订单详情ID
|
||||
List<Long> orderDetailIds = disputeRecords.stream()
|
||||
.map(AfterServiceRecord::getOrderDetailId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 通过订单详情ID获取对应的主单ID
|
||||
Set<Long> orderMasterIds = new HashSet<>();
|
||||
for (Long orderDetailId : orderDetailIds) {
|
||||
OrderDetail orderDetail = orderDetailService.selectById(orderDetailId);
|
||||
if (orderDetail != null && orderDetail.getOrderMasterId() != null) {
|
||||
orderMasterIds.add(orderDetail.getOrderMasterId());
|
||||
}
|
||||
}
|
||||
|
||||
return new ArrayList<>(orderMasterIds);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("获取售后纠纷主单ID列表失败", e);
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -701,7 +701,7 @@
|
|||
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="callDetail(\'' + row.orderMasterId + '\')"><i class="fa fa-info"></i>拨号详情</a> ');
|
||||
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="orderDetailReject(\'' + row.id + '\')"></i>师傅退单</a> ');
|
||||
// actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="orderMasterReject(\'' + row.orderMasterId + '\')"></i>商家退单</a> ');
|
||||
<!-- actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showOrderWorker(\'' + row.id + '\')"></i>指派</a> ');-->
|
||||
// actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showOrderWorker(\'' + row.id + '\')"></i>指派</a> ');
|
||||
if (row.payStatus == 0) {
|
||||
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showPayQrcode(\'' + row.id + '\')"></i>付款</a> ');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -416,6 +416,8 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
(afterServiceRecord.getWorkerFeedbackResult().equals(0L) || afterServiceRecord.getWorkerFeedbackResult().equals(1L)))) {
|
||||
afterServiceRecord.setRedoCompleteTime(null);
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
afterServiceRecord.setCustomerFinalCheck(0L);
|
||||
|
||||
|
|
@ -432,6 +434,16 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
if (param.getCustomerDisagreeReason() != null) {
|
||||
afterServiceRecord.setCustomerDisagreeReason(param.getCustomerDisagreeReason());
|
||||
}
|
||||
try {
|
||||
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
||||
if (orderMaster != null) {
|
||||
orderMaster.setAfterServiceStatus(1);
|
||||
orderMasterService.updateOrderMaster(orderMaster);
|
||||
log.info("客户不同意处理方案,已将主单[{}]标记为售后纠纷状态", orderMaster.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新主单售后纠纷状态失败,主单ID:{}", orderDetail.getOrderMasterId(), e);
|
||||
}
|
||||
|
||||
}
|
||||
afterServiceRecord.setRefundApplyTime(new Date());
|
||||
|
|
@ -456,6 +468,17 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
if (afterServiceRecord.getCustomerFinalCheck().equals(0L)) {
|
||||
return AjaxResult.success("客户不同意师傅方案,进入售后纠纷处理。");
|
||||
}
|
||||
// 新增:如果师傅拒绝(workerFeedbackResult=2)且客户同意,则不执行退款流程
|
||||
if (afterServiceRecord.getWorkerFeedbackResult() != null && afterServiceRecord.getWorkerFeedbackResult().equals(0L) && one.equals(param.getCustomerFinalCheck())) {
|
||||
log.info("师傅拒绝且客户同意,不执行退款流程,售后记录ID:{}", afterServiceRecord.getId());
|
||||
afterServiceRecord.setRefundApplyTime(new Date());
|
||||
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
|
||||
return AjaxResult.success("客户同意师傅拒绝方案,售后流程结束,不执行退款");
|
||||
}
|
||||
|
||||
// DrawCashTime不为空说明已经发起过分账
|
||||
if (drawCash) {
|
||||
log.warn("子单[{}]已发起分账,不能退款", afterServiceRecord.getOrderDetailId());
|
||||
|
|
@ -675,6 +698,18 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
afterServiceRecord.setRefund(param.getRefund());
|
||||
}
|
||||
|
||||
// 客户不同意时,将对应主单的afterServiceStatus字段设置为1(售后纠纷状态)
|
||||
try {
|
||||
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
|
||||
if (orderMaster != null) {
|
||||
orderMaster.setAfterServiceStatus(1);
|
||||
orderMasterService.updateOrderMaster(orderMaster);
|
||||
log.info("客户不同意处理方案,已将主单[{}]标记为售后纠纷状态", orderMaster.getId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新主单售后纠纷状态失败,主单ID:{}", orderDetail.getOrderMasterId(), e);
|
||||
}
|
||||
|
||||
log.info("商品售后-客户不同意处理方案");
|
||||
}
|
||||
|
||||
|
|
@ -700,6 +735,16 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
} catch (Exception e) {
|
||||
log.error("商品售后通知发送失败", e);
|
||||
}
|
||||
if (afterServiceRecord.getCustomerFinalCheck().equals(0L)) {
|
||||
return AjaxResult.success("客户不同意师傅方案,进入售后纠纷处理。");
|
||||
}
|
||||
// 新增:如果师傅拒绝(workerFeedbackResult=2)且客户同意,则不执行退款流程
|
||||
if (afterServiceRecord.getWorkerFeedbackResult() != null && afterServiceRecord.getWorkerFeedbackResult().equals(0L) && one.equals(param.getCustomerFinalCheck())) {
|
||||
log.info("商品售后-师傅拒绝且客户同意,不执行退款流程,售后记录ID:{}", afterServiceRecord.getId());
|
||||
afterServiceRecord.setRefundApplyTime(new Date());
|
||||
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
|
||||
return AjaxResult.success("客户同意师傅拒绝方案,售后流程结束,不执行退款");
|
||||
}
|
||||
|
||||
// DrawCashTime不为空说明已经发起过分账
|
||||
if (drawCash) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue