f
This commit is contained in:
@@ -179,21 +179,27 @@ func (l *AdminRefundOrderLogic) handleYunYinSignPayRefund(order *model.Order, re
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "AdminRefundOrder, 云印签支付服务未启用")
|
||||
}
|
||||
|
||||
// 查询云印签订单获取参与方ID
|
||||
// 查询云印签订单获取参与方ID(如果存在)
|
||||
var participateId int64
|
||||
yunyinOrder, err := l.svcCtx.YunyinSignPayOrderModel.FindOneByOrderId(l.ctx, order.Id)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "AdminRefundOrder, 查询云印签订单失败, 订单ID: %s, 错误: %v", order.Id, err)
|
||||
}
|
||||
|
||||
// 获取参与方ID(ParticipantId 是 string 类型,需要转换为 int64)
|
||||
var participateId int64
|
||||
if yunyinOrder.ParticipantId != "" {
|
||||
// 尝试将字符串转换为int64
|
||||
if _, parseErr := fmt.Sscanf(yunyinOrder.ParticipantId, "%d", &participateId); parseErr != nil {
|
||||
logx.Errorf("解析参与方ID失败,订单ID: %s, ParticipantId: %s, 错误: %v", order.Id, yunyinOrder.ParticipantId, parseErr)
|
||||
// 如果解析失败,participateId 保持为 0,使用订单号退款
|
||||
// 如果查询不到云印签订单记录,可能是历史订单或数据不一致,使用订单号退款
|
||||
if errors.Is(err, model.ErrNotFound) {
|
||||
logx.Infof("未找到云印签订单记录,将使用订单号退款,订单ID: %s, 订单号: %s", order.Id, order.OrderNo)
|
||||
participateId = 0 // 使用订单号退款
|
||||
} else {
|
||||
logx.Infof("成功解析参与方ID,订单ID: %s, ParticipantId: %s, participateId: %d", order.Id, yunyinOrder.ParticipantId, participateId)
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "AdminRefundOrder, 查询云印签订单失败, 订单ID: %s, 错误: %v", order.Id, err)
|
||||
}
|
||||
} else {
|
||||
// 获取参与方ID(ParticipantId 是 string 类型,需要转换为 int64)
|
||||
if yunyinOrder.ParticipantId != "" {
|
||||
// 尝试将字符串转换为int64
|
||||
if _, parseErr := fmt.Sscanf(yunyinOrder.ParticipantId, "%d", &participateId); parseErr != nil {
|
||||
logx.Errorf("解析参与方ID失败,订单ID: %s, ParticipantId: %s, 错误: %v", order.Id, yunyinOrder.ParticipantId, parseErr)
|
||||
// 如果解析失败,participateId 保持为 0,使用订单号退款
|
||||
} else {
|
||||
logx.Infof("成功解析参与方ID,订单ID: %s, ParticipantId: %s, participateId: %d", order.Id, yunyinOrder.ParticipantId, participateId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -223,10 +229,12 @@ func (l *AdminRefundOrderLogic) handleYunYinSignPayRefund(order *model.Order, re
|
||||
var orderStatus string
|
||||
if isFullRefund {
|
||||
orderStatus = model.OrderStatusRefunded
|
||||
// 更新云印签订单表的支付状态为已退款(2)
|
||||
yunyinOrder.PayStatus = 2
|
||||
if _, updateErr := l.svcCtx.YunyinSignPayOrderModel.Update(l.ctx, nil, yunyinOrder); updateErr != nil {
|
||||
logx.Errorf("更新云印签订单状态失败: %v", updateErr)
|
||||
// 如果存在云印签订单记录,更新支付状态为已退款(2)
|
||||
if yunyinOrder != nil {
|
||||
yunyinOrder.PayStatus = 2
|
||||
if _, updateErr := l.svcCtx.YunyinSignPayOrderModel.Update(l.ctx, nil, yunyinOrder); updateErr != nil {
|
||||
logx.Errorf("更新云印签订单状态失败: %v", updateErr)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// 部分退款保持已支付状态
|
||||
|
||||
Reference in New Issue
Block a user