增加子单的售后纠纷处理
This commit is contained in:
parent
7878cc61c1
commit
e9ab52cb7e
|
|
@ -1527,6 +1527,59 @@ public class OrderDetailController extends BaseController {
|
|||
return AjaxResult.success(orderDetailService.afterDetailOrderCount(orderDetail));
|
||||
}
|
||||
|
||||
@GetMapping("/after/dispute/count")
|
||||
@ResponseBody
|
||||
public AjaxResult countAfterDisputeList(OrderDetail orderDetail) {
|
||||
try {
|
||||
logger.info("查询子单售后纠纷数量");
|
||||
|
||||
// 设置查询条件:售后纠纷状态
|
||||
orderDetail.setAfterServiceStatus(1);
|
||||
|
||||
// 设置部门权限
|
||||
if (this.getSysUser().getDept().getParentId() != 101) {
|
||||
orderDetail.setDeptId(this.getSysUser().getDept().getParentId());
|
||||
}
|
||||
|
||||
return AjaxResult.success(orderDetailService.countOrderDetailList(orderDetail));
|
||||
} catch (Exception e) {
|
||||
logger.error("查询子单售后纠纷数量异常", e);
|
||||
return AjaxResult.error("查询售后纠纷数量失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/after/records/byDetailId")
|
||||
@ResponseBody
|
||||
public AjaxResult getAfterServiceRecordsByDetailId(Long orderDetailId) {
|
||||
try {
|
||||
logger.info("查询子单[{}]的售后纠纷记录", orderDetailId);
|
||||
|
||||
// 直接查询该子单的售后纠纷记录
|
||||
AfterServiceRecord queryRecord = new AfterServiceRecord();
|
||||
queryRecord.setOrderDetailId(orderDetailId);
|
||||
queryRecord.setCustomerFinalCheck(0L); // 客户不同意
|
||||
queryRecord.setExcludeAfterServiceFinished(Boolean.TRUE); // 排除已完成的售后
|
||||
|
||||
List<AfterServiceRecord> disputeRecords = afterServiceRecordService.selectAfterServiceRecordList(queryRecord);
|
||||
|
||||
logger.info("子单[{}]找到{}条售后纠纷记录", orderDetailId, disputeRecords.size());
|
||||
|
||||
// 为每个售后记录添加子单信息
|
||||
OrderDetail detail = orderDetailService.selectById(orderDetailId);
|
||||
if (detail != null) {
|
||||
disputeRecords.forEach(record -> {
|
||||
record.setOrderDetailCode(detail.getCode());
|
||||
});
|
||||
}
|
||||
|
||||
return AjaxResult.success(disputeRecords);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("查询子单[{}]售后纠纷记录异常", orderDetailId, e);
|
||||
return AjaxResult.error("查询售后纠纷记录失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@Operation(summary = "获取当天订单统计数据", method = "GET")
|
||||
@GetMapping(path = "/statistics/now", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@
|
|||
</a>
|
||||
<a class="btn btn-default btn-outline" onclick="selectConditionBtn(this, {orderStatusName : '售后纠纷', orderStatus: -1})">
|
||||
售后纠纷
|
||||
(<span>0</span>)
|
||||
(<span id="afterServiceDisputeNum">0</span>)
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex-board">
|
||||
|
|
@ -553,6 +553,20 @@
|
|||
}
|
||||
}
|
||||
})
|
||||
|
||||
// 售后纠纷数量统计
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
dataType:"json",
|
||||
url: prefix + '/after/dispute/count',
|
||||
success: function (result) {
|
||||
if (result.code == web_status.SUCCESS) {
|
||||
$('#afterServiceDisputeNum').text(result.data);
|
||||
} else {
|
||||
$.modal.msgError("售后纠纷数量加载错误,请重试!")
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
function changeOrderMode(orderMode) {
|
||||
|
|
|
|||
|
|
@ -534,7 +534,7 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
boolean payReverse = PayStatus.PAID.getCode().equals(financialMaster.getPayStatus());
|
||||
log.info("当前订单是否已支付: {}", payReverse);
|
||||
// 申请退款金额
|
||||
BigDecimal refundMoney;
|
||||
BigDecimal refundMoney=BigDecimal.ZERO;
|
||||
if (ObjectUtils.isNotEmpty(afterServiceRecord.getAgreedRefund())) {
|
||||
refundMoney = afterServiceRecord.getAgreedRefund();
|
||||
} else {
|
||||
|
|
@ -547,6 +547,9 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
if (isMaster) {
|
||||
// 如果这是大师傅的子单 退款金额最大可以等于主单服务金额
|
||||
// 判断退款金额 >= 主单服务金额
|
||||
if (refundMoney==null){
|
||||
refundMoney=BigDecimal.ZERO;
|
||||
}
|
||||
boolean refundAll = refundMoney.compareTo(financialMaster.getServerMoney()) > -1;
|
||||
log.info("refundAll: {}", refundAll);
|
||||
List<OrderDetail> orderDetails = orderDetailService.selectByOrderMasterId(orderMaster.getId());
|
||||
|
|
@ -876,11 +879,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
*/
|
||||
private void updateAfterServiceStatus(Long orderDetailId, Integer afterServiceStatus) {
|
||||
try {
|
||||
log.info("开始更新售后状态,子单ID:{},售后状态:{}", orderDetailId, afterServiceStatus);
|
||||
|
||||
// 更新子单售后状态
|
||||
OrderDetail orderDetail = new OrderDetail();
|
||||
orderDetail.setId(orderDetailId);
|
||||
orderDetail.setAfterServiceStatus(afterServiceStatus);
|
||||
orderDetailService.updateOrderDetail(orderDetail);
|
||||
int updateResult = orderDetailService.updateOrderDetail(orderDetail);
|
||||
log.info("子单售后状态更新结果:{}", updateResult);
|
||||
|
||||
// 获取主单ID并更新主单售后状态
|
||||
OrderDetail detail = orderDetailService.selectById(orderDetailId);
|
||||
|
|
@ -888,10 +894,13 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
|
|||
OrderMaster orderMaster = new OrderMaster();
|
||||
orderMaster.setId(detail.getOrderMasterId());
|
||||
orderMaster.setAfterServiceStatus(afterServiceStatus);
|
||||
orderMasterService.updateOrderMaster(orderMaster);
|
||||
int masterUpdateResult = orderMasterService.updateOrderMaster(orderMaster);
|
||||
log.info("主单售后状态更新结果:{}", masterUpdateResult);
|
||||
|
||||
log.info("更新售后状态成功,子单ID:{},主单ID:{},售后状态:{}",
|
||||
orderDetailId, detail.getOrderMasterId(), afterServiceStatus);
|
||||
} else {
|
||||
log.warn("未找到子单或主单ID为空,子单ID:{}", orderDetailId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新售后状态失败,子单ID:{},售后状态:{}", orderDetailId, afterServiceStatus, e);
|
||||
|
|
|
|||
|
|
@ -80,7 +80,8 @@
|
|||
return_reason,
|
||||
return_reason_detail,
|
||||
return_images,
|
||||
worker_remark
|
||||
worker_remark,
|
||||
after_service_status
|
||||
FROM order_detail
|
||||
</sql>
|
||||
|
||||
|
|
@ -120,7 +121,8 @@
|
|||
od.return_reason,
|
||||
od.return_reason_detail,
|
||||
od.return_images,
|
||||
od.worker_remark
|
||||
od.worker_remark,
|
||||
od.after_service_status
|
||||
FROM order_detail od
|
||||
LEFT JOIN order_master om ON om.id = od.order_master_id
|
||||
LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id
|
||||
|
|
@ -323,6 +325,9 @@
|
|||
<if test="orderDetailIds != null">
|
||||
AND od.id in ( ${orderDetailIds} )
|
||||
</if>
|
||||
<if test="afterServiceStatus != null">
|
||||
AND od.after_service_status = #{afterServiceStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by od.create_time
|
||||
<trim suffixOverrides=",">
|
||||
|
|
@ -394,6 +399,7 @@
|
|||
<if test="returnReasonDetail != null">return_reason_detail = #{returnReasonDetail},</if>
|
||||
<if test="returnImages != null">return_images = #{returnImages},</if>
|
||||
<if test="workerRemark != null">worker_remark = #{workerRemark},</if>
|
||||
<if test="afterServiceStatus != null">after_service_status = #{afterServiceStatus},</if>
|
||||
update_time = SYSDATE()
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
|
|
|
|||
|
|
@ -517,6 +517,7 @@
|
|||
<if test="returnReasonDetail != null">return_reason_detail = #{returnReasonDetail},</if>
|
||||
<if test="returnImages != null">return_images = #{returnImages},</if>
|
||||
<if test="workerRemark != null">worker_remark = #{workerRemark},</if>
|
||||
<if test="afterServiceStatus != null">after_service_status = #{afterServiceStatus},</if>
|
||||
update_time = SYSDATE()
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
|
|
|
|||
Loading…
Reference in New Issue