增加新字段代表退款时的支付状态

This commit is contained in:
cb 2025-11-06 12:15:56 +08:00
parent bc9d50bf0c
commit 34d71c1fd0
7 changed files with 79 additions and 5 deletions

View File

@ -1734,6 +1734,7 @@ public class OrderController extends BaseController {
orderListResponse.setExpectTimeEndFront(master.getExpectTimeEnd());
orderListResponse.setOrderStatus(master.getOrderStatus());
orderListResponse.setPayStatus(master.getPayStatus());
orderListResponse.setRefundPayStatus(master.getRefundPayStatus());
orderListResponse.setPayType(master.getPayType());
orderListResponse.setOrderMasterCode(master.getCode());
orderListResponse.setStandardList(standardList);
@ -1899,6 +1900,7 @@ public class OrderController extends BaseController {
}
orderListResponse.setShowAfterServiceRecord(showAfterServiceRecord);
// 编辑返回属性
orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus());
orderListResponse.setGoodsBrand(orderMaster.getGoodsBrand());
orderListResponse.setGoodsSpecification(orderMaster.getGoodsSpecification());
orderListResponse.setOrderDetailId(detail.getId());
@ -2151,6 +2153,7 @@ public class OrderController extends BaseController {
// 编辑返回属性
orderListResponse.setRefundPayStatus(master.getRefundPayStatus());
orderListResponse.setServiceCancelled(master.getServiceCancelled());
orderListResponse.setAfterPlatformServiceStatus(master.getAfterServiceStatus());
orderListResponse.setShowInMonitor(master.getShowInMonitor());
@ -2407,6 +2410,7 @@ public class OrderController extends BaseController {
// 编辑返回属性
orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus());
orderListResponse.setAfterPlatformServiceStatus(detail.getAfterServiceStatus());
orderListResponse.setWorkerRemark(detail.getWorkerRemark());
orderListResponse.setGoods(goods);

View File

@ -587,6 +587,7 @@ public class OrderDetailController extends BaseController {
orderListResponse.setCustomerPhone(org.apache.commons.lang3.StringUtils.isNotEmpty(orderMaster.getPhone()) ? orderMaster.getPhone() : customerAddress.getPhone());
orderListResponse.setOrderStatus(detail.getOrderStatus());
orderListResponse.setPayStatus(orderMaster.getPayStatus());
orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus());
orderListResponse.setPayType(orderMaster.getPayType());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(StringUtils.isNotEmpty(orderMaster.getAddress()) ? orderMaster.getAddress() : completeAddress);
@ -879,6 +880,7 @@ public class OrderDetailController extends BaseController {
orderListResponse.setServiceShopId(serviceShop != null ? serviceShop.getShopId() : null);
// 编辑返回属性
orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus());
orderListResponse.setAfterPlatformServiceStatus(detail.getAfterServiceStatus());
orderListResponse.setShareAccountCountdownEndTime(detail.getShareAccountCountdownEndTime());
orderListResponse.setShareAccountCountdownDuration(detail.getShareAccountCountdownDuration());

View File

@ -1021,7 +1021,7 @@ public class OrderMasterController extends BaseController {
}
List<OrderMaster> list = orderMasterService.selectOrderMasterList(orderMaster);
Long count=orderMasterService.selectOrderMasterCount(orderMaster);
logger.info("初始 list数量:{},总数{}", list.size(),count);
// 处理orderType为0的情况额外查询原师傅ID相关的订单并添加到list中
OrderMaster origiOrderMaster = new OrderMaster();
@ -1085,7 +1085,7 @@ public class OrderMasterController extends BaseController {
List<Goods> goodsList = goodsService.selectByIds(goodsIds);
goodsList.forEach(goods -> goodsMap.put(goods.getGoodsId(), goods));
}
logger.info("list:数量{}", list.size());
list.forEach(master -> {
// 子单
List<OrderDetail> detailList = orderDetailService.selectByOrderMasterId(master.getId());
@ -1280,6 +1280,7 @@ public class OrderMasterController extends BaseController {
orderListResponse.setExpectTimeEndFront(master.getExpectTimeEnd());
orderListResponse.setOrderStatus(master.getOrderStatus());
orderListResponse.setPayStatus(financialMaster.getPayStatus());
orderListResponse.setRefundPayStatus(master.getRefundPayStatus());
orderListResponse.setPayType(master.getPayType());
orderListResponse.setOrderMasterCode(master.getCode());
orderListResponse.setStandardList(standardList);
@ -1720,8 +1721,10 @@ public class OrderMasterController extends BaseController {
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
if (orderMaster != null) {
orderMaster.setAfterServiceStatus(2);
// 设置退款支付状态为已支付因为执行了退款逻辑
orderMaster.setRefundPayStatus(1);
orderMasterService.updateOrderMaster(orderMaster);
logger.info("已将主单[{}]售后状态设置为已完成", orderMaster.getId());
logger.info("已将主单[{}]售后状态设置为已完成,退款支付状态设置为已支付", orderMaster.getId());
}
}
@ -2073,6 +2076,7 @@ public class OrderMasterController extends BaseController {
: customerAddress.getPhone());
orderListResponse.setOrderStatus(orderMaster.getOrderStatus());
orderListResponse.setPayStatus(goodsPayStatus!=null?goodsPayStatus:orderMaster.getPayStatus());
orderListResponse.setRefundPayStatus(orderMaster.getRefundPayStatus());
orderListResponse.setPayType(orderMaster.getPayType());
orderListResponse.setStandardList(standardList);
orderListResponse.setAddress(completeAddress);
@ -2712,6 +2716,13 @@ public class OrderMasterController extends BaseController {
// 检查支付状态只有已支付的订单才需要退款
if (financialMaster.getPayStatus() == null || financialMaster.getPayStatus() != 1) {
logger.info("商品主单未支付无需退款goodsOrderMasterId={}, payStatus={}", goodsOrderMasterId, financialMaster.getPayStatus());
// 设置退款支付状态为未支付
OrderMaster orderMaster = orderMasterService.selectById(goodsOrderMasterId);
if (orderMaster != null) {
orderMaster.setRefundPayStatus(0);
orderMasterService.updateOrderMaster(orderMaster);
logger.info("商品主单无需退款设置退款支付状态为未支付goodsOrderMasterId={}", goodsOrderMasterId);
}
return AjaxResult.success("商品主单退单成功,无需退款(未支付)");
}
@ -2747,6 +2758,14 @@ public class OrderMasterController extends BaseController {
financialDetailService.updateFinancialDetail(detail);
}
// 设置退款支付状态为已支付
OrderMaster orderMaster = orderMasterService.selectById(goodsOrderMasterId);
if (orderMaster != null) {
orderMaster.setRefundPayStatus(1);
orderMasterService.updateOrderMaster(orderMaster);
logger.info("退款成功设置退款支付状态为已支付goodsOrderMasterId={}", goodsOrderMasterId);
}
logger.info("退款成功reverseId={}, goodsOrderMasterId={}", reverseId, goodsOrderMasterId);
return AjaxResult.success("商品主单退单退款成功退款ID" + reverseId);
} else {

View File

@ -91,6 +91,11 @@ public class OrderListResponse {
private Integer payStatus;
/**
* 退款支付状态0=未支付1=已支付
*/
private Integer refundPayStatus;
private Integer payType;
private BigDecimal totalMoney;

View File

@ -373,4 +373,10 @@ public class OrderMaster extends BaseEntity {
* 是否排除商品订单标识用于Service层过滤逻辑
*/
private Boolean excludeGoodsOrder;
/**
* 退款时是否已支付0=未支付1=已支付
*/
@Excel(name = "退款时是否已支付", cellType = Excel.ColumnType.NUMERIC, readConverterExp = "0=未支付,1=已支付")
private Integer refundPayStatus;
}

View File

@ -929,6 +929,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
// 是否已付款,用于判断是否需要退款
boolean payReverse = PayStatus.PAID.getCode().equals(financialMaster.getPayStatus());
log.info("当前订单是否已支付: {}", payReverse);
// 设置退款时支付状态已支付=1未支付=0
if (payReverse) {
orderMaster.setRefundPayStatus(1);
} else {
orderMaster.setRefundPayStatus(0);
}
orderMasterService.updateOrderMaster(orderMaster);
// 申请退款金额
BigDecimal refundMoney=BigDecimal.ZERO;
if (ObjectUtils.isNotEmpty(afterServiceRecord.getPlatformRefund())) {
@ -1106,6 +1114,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
log.warn("子单[{}]已发起分账,不能自动退款", afterServiceRecord.getOrderDetailId());
afterServiceRecord.setOriginalRefund(BigDecimal.ZERO);
afterServiceRecordMapper.updateAfterServiceRecord(afterServiceRecord);
// 设置主单退款支付状态为未支付因为无需退款
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
if (orderMaster != null) {
orderMaster.setRefundPayStatus(0);
orderMasterService.updateOrderMaster(orderMaster);
log.info("子单已分账无法退款设置主单退款支付状态为未支付orderMasterId={}", orderMaster.getId());
}
return;
}
@ -1117,6 +1133,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
if (afterServiceRecord.getWorkerReceiveConfirm() == null || afterServiceRecord.getWorkerReceiveConfirm() != 1) {
log.info("商品售后非即时退款师傅未确认收货暂不执行退款售后记录ID{},同意方式:{},收货确认:{}",
afterServiceRecord.getId(), afterServiceRecord.getWorkerAgreeType(), afterServiceRecord.getWorkerReceiveConfirm());
// 设置主单退款支付状态为未支付因为暂不执行退款
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
if (orderMaster != null) {
orderMaster.setRefundPayStatus(0);
orderMasterService.updateOrderMaster(orderMaster);
log.info("商品售后师傅未确认收货暂不执行退款设置主单退款支付状态为未支付orderMasterId={}", orderMaster.getId());
}
return;
}
} else if (afterServiceRecord.getWorkerAgreeType() != null && afterServiceRecord.getWorkerAgreeType() == 1) {
@ -1124,6 +1148,14 @@ public class AfterServiceRecordServiceImpl implements IAfterServiceRecordService
if (afterServiceRecord.getCustomerFinalCheck() == null || afterServiceRecord.getCustomerFinalCheck() != 1) {
log.info("商品售后即时退款客户未同意暂不执行退款售后记录ID{},客户确认:{}",
afterServiceRecord.getId(), afterServiceRecord.getCustomerFinalCheck());
// 设置主单退款支付状态为未支付因为暂不执行退款
OrderMaster orderMaster = orderMasterService.selectById(orderDetail.getOrderMasterId());
if (orderMaster != null) {
orderMaster.setRefundPayStatus(0);
orderMasterService.updateOrderMaster(orderMaster);
log.info("商品售后客户未同意暂不执行退款设置主单退款支付状态为未支付orderMasterId={}", orderMaster.getId());
}
return;
}
}

View File

@ -75,6 +75,7 @@
<result property="shareAccountCountdownDuration" column="share_account_countdown_duration"/>
<result property="showInMonitor" column="show_in_monitor"/>
<result property="serviceCancelled" column="service_cancelled"/>
<result property="refundPayStatus" column="refund_pay_status"/>
</resultMap>
@ -147,7 +148,8 @@
share_account_countdown_end_time,
share_account_countdown_duration,
show_in_monitor,
service_cancelled
service_cancelled,
refund_pay_status
FROM order_master
</sql>
<sql id="selectOrderMasterMoreInfo">
@ -219,7 +221,8 @@
om.share_account_countdown_end_time,
om.share_account_countdown_duration,
om.show_in_monitor,
om.service_cancelled
om.service_cancelled,
om.refund_pay_status
FROM order_master om
LEFT JOIN customer_address ca ON ca.customer_address_id = om.address_id
LEFT JOIN goods g ON g.goods_id = om.goods_id
@ -581,6 +584,7 @@
<if test="shareAccountCountdownEndTime != null">share_account_countdown_end_time = #{shareAccountCountdownEndTime},</if>
<if test="shareAccountCountdownDuration != null">share_account_countdown_duration = #{shareAccountCountdownDuration},</if>
<if test="serviceCancelled != null">service_cancelled = #{serviceCancelled},</if>
<if test="refundPayStatus != null">refund_pay_status = #{refundPayStatus},</if>
update_time = SYSDATE()
</set>
WHERE id = #{id}
@ -655,6 +659,7 @@
<if test="workerRemark != null">worker_remark,</if>
<if test="shareAccountCountdownEndTime != null">share_account_countdown_end_time,</if>
<if test="shareAccountCountdownDuration != null">share_account_countdown_duration,</if>
<if test="refundPayStatus != null">refund_pay_status,</if>
service_cancelled,
create_time,
update_time
@ -712,6 +717,7 @@
<if test="workerRemark != null">#{workerRemark},</if>
<if test="shareAccountCountdownEndTime != null">#{shareAccountCountdownEndTime},</if>
<if test="shareAccountCountdownDuration != null">#{shareAccountCountdownDuration},</if>
<if test="refundPayStatus != null">#{refundPayStatus},</if>
0,
SYSDATE(),
SYSDATE()