forked from free-lancers/electricity_bill_calc_service
[天神模式]删除指定商户完成
This commit is contained in:
46
service/god_mode.go
Normal file
46
service/god_mode.go
Normal 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
|
||||
}
|
Reference in New Issue
Block a user