fix platform workflow integrity and permissions

This commit is contained in:
david
2026-07-29 14:03:10 +08:00
parent afd9dbdeb5
commit d4799cd320
44 changed files with 797 additions and 224 deletions

View File

@@ -43,7 +43,7 @@ func listWalletPage[T any](ctx *gin.Context) {
var list []T
var total int64
model := new(T)
query := common.ApplyKeywordFilter(ctx, impl.DBService.Model(model), model)
query := common.ApplyKeywordFilter(ctx, common.ActiveRecords(impl.DBService.Model(model)), model)
if err := query.Count(&total).Error; err != nil {
infra.Response.Error(ctx, err)
return
@@ -133,7 +133,7 @@ func GetOrCreateOwnerWallet(ctx *gin.Context) {
return err
}
candidate := models.WalletBasic{
Entity: models.Entity{Identity: models.NewIdentity(), Status: common.StatusEnable, Version: 1},
Entity: models.Entity{Identity: models.NewIdentity(), Status: common.StatusEnable},
OwnerType: ownerType, OwnerID: ownerID, OwnerIdentity: ownerIdentity,
}
if err := tx.Clauses(clause.OnConflict{DoNothing: true}).Create(&candidate).Error; err != nil {
@@ -227,7 +227,7 @@ func RechargeWalletBasic(ctx *gin.Context) {
}
now := time.Now()
record = models.WalletRecord{
Entity: models.Entity{Identity: models.NewIdentity(), Status: common.StatusPosted, Version: 1},
Entity: models.Entity{Identity: models.NewIdentity(), Status: common.StatusPosted},
WalletBasicID: wallet.ID, RecordNo: models.NewIdentity(), RequestNo: request.RequestNo,
Direction: "income", TradeType: "recharge", Amount: request.Amount,
BalanceAfter: wallet.Balance, WithdrawalBalanceAfter: wallet.WithdrawalBalance,
@@ -239,6 +239,15 @@ func RechargeWalletBasic(ctx *gin.Context) {
return tx.Create(&record).Error
})
if err != nil {
if lookupErr := impl.DBService.Where("request_no = ?", request.RequestNo).First(&record).Error; lookupErr == nil {
response, responseErr := common.PublicResourceResponse(record)
if responseErr != nil {
infra.Response.Error(ctx, responseErr)
return
}
infra.Response.Success(ctx, response)
return
}
common.RespondRecordError(ctx, err)
return
}