f
This commit is contained in:
@@ -124,7 +124,7 @@ func (l *AdminReviewBankCardWithdrawalLogic) approveWithdrawal(ctx context.Conte
|
|||||||
return l.approveAlipayWithdrawal(ctx, session, record)
|
return l.approveAlipayWithdrawal(ctx, session, record)
|
||||||
} else {
|
} else {
|
||||||
// 银行卡提现:直接更新状态为成功(线下转账)
|
// 银行卡提现:直接更新状态为成功(线下转账)
|
||||||
return l.approveBankCardWithdrawal(ctx, session, record)
|
return l.approveBankCardWithdrawal(ctx, session, record, taxRate)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,7 +186,7 @@ func (l *AdminReviewBankCardWithdrawalLogic) approveAlipayWithdrawal(ctx context
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 确认银行卡提现
|
// 确认银行卡提现
|
||||||
func (l *AdminReviewBankCardWithdrawalLogic) approveBankCardWithdrawal(ctx context.Context, session sqlx.Session, record *model.AgentWithdrawal) error {
|
func (l *AdminReviewBankCardWithdrawalLogic) approveBankCardWithdrawal(ctx context.Context, session sqlx.Session, record *model.AgentWithdrawal, taxRate float64) error {
|
||||||
// 更新提现记录状态为成功
|
// 更新提现记录状态为成功
|
||||||
record.Status = StatusSuccess
|
record.Status = StatusSuccess
|
||||||
record.Remark = sql.NullString{String: "管理员确认提现", Valid: true}
|
record.Remark = sql.NullString{String: "管理员确认提现", Valid: true}
|
||||||
@@ -233,10 +233,13 @@ func (l *AdminReviewBankCardWithdrawalLogic) approveBankCardWithdrawal(ctx conte
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
|
// 注意:由于在 applyReviewTaxRate 中已经更新过 tax 记录(version 已经递增)
|
||||||
|
// 这里只需要更新 tax_status 和 tax_time,不需要再次调用 UpdateWithVersion
|
||||||
|
// 使用普通 Update 方法避免乐观锁冲突
|
||||||
if taxModel.TaxStatus == model.TaxStatusPending {
|
if taxModel.TaxStatus == model.TaxStatusPending {
|
||||||
taxModel.TaxStatus = model.TaxStatusSuccess // 扣税状态 = 成功
|
taxModel.TaxStatus = model.TaxStatusSuccess // 扣税状态 = 成功
|
||||||
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
||||||
if err := l.svcCtx.AgentWithdrawalTaxModel.UpdateWithVersion(ctx, session, taxModel); err != nil {
|
if _, err := l.svcCtx.AgentWithdrawalTaxModel.Update(ctx, session, taxModel); err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -304,10 +307,12 @@ func (l *AdminReviewBankCardWithdrawalLogic) rejectWithdrawal(ctx context.Contex
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
|
// 注意:由于在 applyReviewTaxRate 中已经更新过 tax 记录(version 已经递增)
|
||||||
|
// 这里只需要更新 tax_status 和 tax_time,使用普通 Update 方法避免乐观锁冲突
|
||||||
if taxModel.TaxStatus == model.TaxStatusPending {
|
if taxModel.TaxStatus == model.TaxStatusPending {
|
||||||
taxModel.TaxStatus = model.TaxStatusFailed // 扣税状态 = 失败
|
taxModel.TaxStatus = model.TaxStatusFailed // 扣税状态 = 失败
|
||||||
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
||||||
if err := l.svcCtx.AgentWithdrawalTaxModel.UpdateWithVersion(ctx, session, taxModel); err != nil {
|
if _, err := l.svcCtx.AgentWithdrawalTaxModel.Update(ctx, session, taxModel); err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -364,10 +369,12 @@ func (l *AdminReviewBankCardWithdrawalLogic) completeWithdrawalSuccess(ctx conte
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
|
// 注意:由于在 applyReviewTaxRate 中已经更新过 tax 记录(version 已经递增)
|
||||||
|
// 这里只需要更新 tax_status 和 tax_time,使用普通 Update 方法避免乐观锁冲突
|
||||||
if taxModel.TaxStatus == model.TaxStatusPending {
|
if taxModel.TaxStatus == model.TaxStatusPending {
|
||||||
taxModel.TaxStatus = model.TaxStatusSuccess // 扣税状态 = 成功
|
taxModel.TaxStatus = model.TaxStatusSuccess // 扣税状态 = 成功
|
||||||
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
||||||
if err := l.svcCtx.AgentWithdrawalTaxModel.UpdateWithVersion(ctx, session, taxModel); err != nil {
|
if _, err := l.svcCtx.AgentWithdrawalTaxModel.Update(ctx, session, taxModel); err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -435,10 +442,12 @@ func (l *AdminReviewBankCardWithdrawalLogic) completeWithdrawalFailure(ctx conte
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "查询扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
|
// 注意:由于在 applyReviewTaxRate 中已经更新过 tax 记录(version 已经递增)
|
||||||
|
// 这里只需要更新 tax_status 和 tax_time,使用普通 Update 方法避免乐观锁冲突
|
||||||
if taxModel.TaxStatus == model.TaxStatusPending {
|
if taxModel.TaxStatus == model.TaxStatusPending {
|
||||||
taxModel.TaxStatus = model.TaxStatusFailed // 扣税状态 = 失败
|
taxModel.TaxStatus = model.TaxStatusFailed // 扣税状态 = 失败
|
||||||
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
taxModel.TaxTime = sql.NullTime{Time: time.Now(), Valid: true}
|
||||||
if err := l.svcCtx.AgentWithdrawalTaxModel.UpdateWithVersion(ctx, session, taxModel); err != nil {
|
if _, err := l.svcCtx.AgentWithdrawalTaxModel.Update(ctx, session, taxModel); err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
return errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "更新扣税记录失败: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user