[天神模式]删除指定商户完成

This commit is contained in:
2023-07-27 14:01:45 +08:00
parent 5866882c2d
commit 1099a7c335
4 changed files with 157 additions and 0 deletions

46
service/god_mode.go Normal file
View File

@@ -0,0 +1,46 @@
package service
import (
"electricity_bill_calc/global"
"electricity_bill_calc/logger"
"electricity_bill_calc/repository"
"fmt"
"github.com/doug-martin/goqu/v9"
"go.uber.org/zap"
)
type _GMService struct {
l *zap.Logger
gm goqu.DialectWrapper
}
var GMService = _GMService{
logger.Named("Service", "GM"),
goqu.Dialect("postgres"),
}
func (gm _GMService) DeleteTenements(pid string, tenements []string) error {
var err error
ctx, cancel := global.TimeoutContext()
defer cancel()
tx, err := global.DB.Begin(ctx)
if err != nil {
gm.l.Error("未能启动数据库事务", zap.Error(err))
return fmt.Errorf("未能启动数据库事务,%w", err)
}
err = repository.GMRepository.DeleteMeterBinding(ctx, tx, pid, tenements)
if err != nil {
tx.Rollback(ctx)
return err
}
err = repository.GMRepository.DeleteTenements(ctx, tx, pid, tenements)
if err != nil {
tx.Rollback(ctx)
return err
}
tx.Commit(ctx)
return nil
}