删除指定的企业用户完成

This commit is contained in:
2023-07-31 09:41:45 +08:00
parent b84c51b18e
commit c36bfff05a
3 changed files with 120 additions and 8 deletions

View File

@@ -61,8 +61,8 @@ func (gm _GMService) DeleteParks(parks []string) error {
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)
//删除meter_poolings
err = repository.GMRepository.DeleteMeterPoolings(ctx, tx, pid)
//删除tenements
err = repository.GMRepository.DeleteTenements(ctx, tx, pid, []string{})
//删除meters
@@ -128,3 +128,50 @@ func (gm _GMService) DeleteTenementMeterRelations(pId string, tId []string, mId
}
return nil
}
func (gm _GMService) DeleteEnterprises(uid 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)
}
parks, err := repository.GMRepository.ListAllParkIdsInUser(ctx, tx, uid)
if err != nil {
gm.l.Error("查询园区错误", zap.Error(err))
tx.Rollback(ctx)
return err
}
for _, pid := range parks {
err = repository.GMRepository.DeleteInvoices(ctx, tx, pid)
err = repository.GMRepository.DeleteMeterBinding(ctx, tx, pid, []string{})
err = repository.GMRepository.DeleteMeterPookings(ctx, tx, pid)
err = repository.GMRepository.DeleteTenements(ctx, tx, pid)
err = repository.GMRepository.DeleteMeters(ctx, tx, pid)
err = repository.GMRepository.DeleteReports(ctx, tx, pid)
err = repository.GMRepository.DeleteBuildings(ctx, tx, pid)
if err != nil {
gm.l.Error("删除用户下关联出错", zap.Error(err))
return err
}
}
err = repository.GMRepository.DeleteParks(ctx, tx, parks)
if err != nil {
gm.l.Error("删除用户关联园区错误", zap.Error(err))
tx.Rollback(ctx)
return err
}
err = repository.GMRepository.DeleteUsers(ctx, tx, uid)
if err != nil {
gm.l.Error("删除用户信息出错", zap.Error(err))
tx.Rollback(ctx)
return err
}
return nil
}