forked from free-lancers/electricity_bill_calc_service
[天神模式]删除指定的园区完成
This commit is contained in:
@@ -44,3 +44,44 @@ func (gm _GMService) DeleteTenements(pid string, tenements []string) error {
|
||||
tx.Commit(ctx)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (gm _GMService) DeleteParks(parks []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)
|
||||
}
|
||||
for _, pid := range parks {
|
||||
//删除invoices
|
||||
err = repository.GMRepository.DeleteInvoices(ctx, tx, pid)
|
||||
//删除meter_binding
|
||||
err = repository.GMRepository.DeleteMeterBinding(ctx, tx, pid, []string{})
|
||||
//删除meter_pookings
|
||||
err = repository.GMRepository.DeleteMeterPookings(ctx, tx, pid)
|
||||
//删除tenements
|
||||
err = repository.GMRepository.DeleteTenements(ctx, tx, pid, []string{})
|
||||
//删除meters
|
||||
err = repository.GMRepository.DeleteMeters(ctx, tx, pid)
|
||||
//删除reports
|
||||
err = repository.GMRepository.DeleteReports(ctx, tx, pid)
|
||||
//删除buildings
|
||||
err = repository.GMRepository.DeleteBuildings(ctx, tx, pid)
|
||||
if err != nil {
|
||||
gm.l.Error("删除关联表出错。", zap.Error(err))
|
||||
break
|
||||
return err
|
||||
}
|
||||
}
|
||||
err = repository.GMRepository.DeleteParks(ctx, tx, parks)
|
||||
if err != nil {
|
||||
gm.l.Error("指定园区删除失败。", zap.Error(err))
|
||||
return err
|
||||
}
|
||||
tx.Commit(ctx)
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user