This commit is contained in:
2026-01-16 18:23:43 +08:00
parent 1417804b66
commit 9f509924b3
8 changed files with 393 additions and 142 deletions

View File

@@ -17,6 +17,7 @@ import (
"strings"
"time"
"github.com/Masterminds/squirrel"
"github.com/google/uuid"
"github.com/pkg/errors"
"github.com/redis/go-redis/v9"
@@ -140,8 +141,21 @@ func (l *PaymentLogic) Payment(req *types.PaymentReq) (resp *types.PaymentResp,
// 查询用户是否有未完成的签署(待签署且待支付)
var yunYinSignPayResult *service.CreateYunYinSignPayOrderResult
unfinishedOrder, findUnfinishedErr := l.svcCtx.YunyinSignPayOrderModel.FindUnfinishedByUserId(l.ctx, userID)
if findUnfinishedErr == nil && unfinishedOrder != nil {
// 使用 SelectBuilder 查询未完成的签署订单del_state 由系统自动处理)
unfinishedBuilder := l.svcCtx.YunyinSignPayOrderModel.SelectBuilder().
Where(squirrel.Eq{
"user_id": userID,
"sign_status": 0, // 待签署
"pay_status": 0, // 待支付
}).
OrderBy("create_time DESC").
Limit(1)
unfinishedOrders, findUnfinishedErr := l.svcCtx.YunyinSignPayOrderModel.FindAll(l.ctx, unfinishedBuilder, "")
var unfinishedOrder *model.YunyinSignPayOrder
if findUnfinishedErr == nil && len(unfinishedOrders) > 0 {
unfinishedOrder = unfinishedOrders[0]
}
if unfinishedOrder != nil {
// 复用未完成的签署,只获取新的支付链接
logx.Infof("复用未完成的云印签签署任务ID: %s, 参与者ID: %s", unfinishedOrder.TaskId, unfinishedOrder.ParticipantId)
@@ -382,7 +396,7 @@ func (l *PaymentLogic) QueryOrderPayment(req *types.PaymentReq, session sqlx.Ses
Version: 0,
}
_, insertYunYinErr := l.svcCtx.YunyinSignPayOrderModel.InsertWithSession(l.ctx, session, &yunyinSignPayOrder)
_, insertYunYinErr := l.svcCtx.YunyinSignPayOrderModel.Insert(l.ctx, session, &yunyinSignPayOrder)
if insertYunYinErr != nil {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR), "生成订单, 保存云印签订单失败: %+v", insertYunYinErr)
}