多笔立减金

This commit is contained in:
ziming 2025-12-19 14:38:14 +08:00
parent b841ad3661
commit 05ba50661c
2 changed files with 24 additions and 36 deletions

View File

@ -7,8 +7,6 @@ import (
"fmt" "fmt"
"github.com/go-kratos/kratos/v2/log" "github.com/go-kratos/kratos/v2/log"
"gorm.io/gorm" "gorm.io/gorm"
"strconv"
"strings"
"sync" "sync"
err2 "voucher/api/err" err2 "voucher/api/err"
v1 "voucher/api/v1" v1 "voucher/api/v1"
@ -187,45 +185,34 @@ func (biz *MultiBiz) RetryRunByMultiNotifyDataId(ctx context.Context, multiNotif
func (biz *MultiBiz) run(ctx context.Context, req *bo.WechatVoucherNotifyBo, mnd *bo.MultiNotifyDataBo, order *bo.OrderBo) error { func (biz *MultiBiz) run(ctx context.Context, req *bo.WechatVoucherNotifyBo, mnd *bo.MultiNotifyDataBo, order *bo.OrderBo) error {
if req.PlainText.Status.IsUsed() {
if order.Status.IsUse() {
parts := strings.Split(order.Remark, "_")
l := len(parts)
remark := "核销完成_"
if l == 1 {
remark = "核销完成_2"
}
if l == 2 {
i, err := strconv.Atoi(parts[1])
if err != nil {
return fmt.Errorf("订单再次核销完成修改发生错误 error: %v", err)
}
remark = fmt.Sprintf("核销完成_%d", i+1)
}
if err := biz.OrderRepo.MultiOverUsed(ctx, order.ID, req.PlainText.ConsumeInformation.ConsumeTime, remark); err != nil {
return fmt.Errorf("订单再次核销完成修改发生错误 error: %v", err)
}
} else {
if err := biz.OrderRepo.MultiOverUsed(ctx, order.ID, req.PlainText.ConsumeInformation.ConsumeTime, "核销完成_1"); err != nil {
return fmt.Errorf("订单核销完成修改发生错误 error: %v", err)
}
}
} else {
if err := biz.OrderRepo.MultiLastUsed(ctx, order.ID, req.PlainText.ConsumeInformation.ConsumeTime); err != nil {
return fmt.Errorf("订单核销修改发生错误 error: %v", err)
}
}
nl, err := biz.nlCreate(ctx, req, mnd, order) nl, err := biz.nlCreate(ctx, req, mnd, order)
if err != nil { if err != nil {
return fmt.Errorf("创建通知日志错误 error: %v", err) return fmt.Errorf("创建通知日志错误 error: %v", err)
} }
return biz.Request(ctx, mnd, nl, order) if err = biz.Request(ctx, mnd, nl, order); err != nil {
return fmt.Errorf("请求错误 error: %v", err)
}
if req.PlainText.Status.IsUsed() {
if order.Status.IsUse() {
if err = biz.OrderRepo.MultiOverUsed(ctx, order.ID, req.PlainText.ConsumeInformation.ConsumeTime, "再次核销完成"); err != nil {
return fmt.Errorf("订单再次核销完成修改发生错误 error: %v", err)
}
} else {
if err = biz.OrderRepo.MultiOverUsed(ctx, order.ID, req.PlainText.ConsumeInformation.ConsumeTime, "核销完成"); err != nil {
return fmt.Errorf("订单核销完成修改发生错误 error: %v", err)
}
}
} else {
if err = biz.OrderRepo.MultiLastUsed(ctx, order.ID, req.PlainText.ConsumeInformation.ConsumeTime); err != nil {
return fmt.Errorf("订单核销修改发生错误 error: %v", err)
}
}
return nil
} }
func (biz *MultiBiz) mndCreate(ctx context.Context, ip, source string, req *bo.WechatVoucherNotifyBo, order *bo.OrderBo) (*bo.MultiNotifyDataBo, error) { func (biz *MultiBiz) mndCreate(ctx context.Context, ip, source string, req *bo.WechatVoucherNotifyBo, order *bo.OrderBo) (*bo.MultiNotifyDataBo, error) {

View File

@ -462,6 +462,7 @@ func (p *OrderRepoImpl) MultiLastUsed(ctx context.Context, id uint64, lastUseTim
}). }).
Updates(model.Order{ Updates(model.Order{
Remark: "核销", Remark: "核销",
Status: vo.OrderStatusSuccess.GetValue(),
LastUseTime: &lastUseTime, LastUseTime: &lastUseTime,
UpdateTime: &now, UpdateTime: &now,
}) })