forked from free-lancers/electricity_bill_calc_service
		
	[天神模式]删除符合条件表计完成
This commit is contained in:
		| @@ -20,6 +20,7 @@ func InitializeGmController(router *fiber.App) { | |||||||
| 	router.Delete("/gm/tenement/meter", security.SingularityAuthorize, deleteTenementMeterRelations) | 	router.Delete("/gm/tenement/meter", security.SingularityAuthorize, deleteTenementMeterRelations) | ||||||
| 	router.Delete("/gm/enterprise", security.SingularityAuthorize, deleteEnterprise) | 	router.Delete("/gm/enterprise", security.SingularityAuthorize, deleteEnterprise) | ||||||
| 	router.Delete("/gm/meter/pooling", security.SingularityAuthorize, deleteMeterPoolingRelations) | 	router.Delete("/gm/meter/pooling", security.SingularityAuthorize, deleteMeterPoolingRelations) | ||||||
|  | 	router.Delete("gm/meter", security.SingularityAuthorize, deleteMeters) | ||||||
| } | } | ||||||
|  |  | ||||||
| //用于将参数转化为切片 | //用于将参数转化为切片 | ||||||
| @@ -117,3 +118,15 @@ func deleteMeterPoolingRelations(c *fiber.Ctx) error { | |||||||
| 	return result.Success("指定表计公摊关系已经删除。") | 	return result.Success("指定表计公摊关系已经删除。") | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func deleteMeters(c *fiber.Ctx) error { | ||||||
|  | 	result := response.NewResult(c) | ||||||
|  | 	parkId := c.Query("park") | ||||||
|  | 	mId := getQueryValues(c, "meters") | ||||||
|  | 	GmLog.Info("[天神模式]删除指定园区中的表计", zap.String("park id", parkId)) | ||||||
|  | 	if err := service.GMService.DeleteMeters(parkId, mId); err != nil { | ||||||
|  | 		meterLog.Error("[天神模式]删除指定园区中的表计失败", zap.Error(err)) | ||||||
|  | 		return result.Error(500, "删除指定园区中的表计失败。") | ||||||
|  | 	} | ||||||
|  | 	return result.Success("指定表计已经删除。") | ||||||
|  | } | ||||||
|   | |||||||
| @@ -149,7 +149,7 @@ func (gm _GMService) DeleteEnterprises(uid string) error { | |||||||
| 	for _, pid := range parks { | 	for _, pid := range parks { | ||||||
| 		err = repository.GMRepository.DeleteInvoices(ctx, tx, pid) | 		err = repository.GMRepository.DeleteInvoices(ctx, tx, pid) | ||||||
| 		err = repository.GMRepository.DeleteMeterBinding(ctx, tx, pid, []string{}) | 		err = repository.GMRepository.DeleteMeterBinding(ctx, tx, pid, []string{}) | ||||||
| 		err = repository.GMRepository.DeleteMeterPookings(ctx, tx, pid) | 		err = repository.GMRepository.DeleteMeterPoolings(ctx, tx, pid) | ||||||
| 		err = repository.GMRepository.DeleteTenements(ctx, tx, pid) | 		err = repository.GMRepository.DeleteTenements(ctx, tx, pid) | ||||||
| 		err = repository.GMRepository.DeleteMeters(ctx, tx, pid) | 		err = repository.GMRepository.DeleteMeters(ctx, tx, pid) | ||||||
| 		err = repository.GMRepository.DeleteReports(ctx, tx, pid) | 		err = repository.GMRepository.DeleteReports(ctx, tx, pid) | ||||||
| @@ -197,3 +197,36 @@ func (gm _GMService) DeleteMeterPooling(pId string, mId []string) error { | |||||||
| 	} | 	} | ||||||
| 	return nil | 	return nil | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func (gm _GMService) DeleteMeters(pId string, mId []string) error { | ||||||
|  | 	ctx, cancel := global.TimeoutContext() | ||||||
|  | 	defer cancel() | ||||||
|  | 	tx, err := global.DB.Begin(ctx) | ||||||
|  | 	if err != nil { | ||||||
|  | 		gm.l.Error("开启数据库事务失败。", zap.Error(err)) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if err := repository.GMRepository.DeleteMeterBinding(ctx, tx, pId, []string{}, mId); err != nil { | ||||||
|  | 		gm.l.Error("删除指定园区中的表计和商户的绑定关系", zap.Error(err)) | ||||||
|  | 		tx.Rollback(ctx) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if err := repository.GMRepository.DeleteMeterPoolings(ctx, tx, pId, mId); err != nil { | ||||||
|  | 		gm.l.Error("无法删除指定表记公摊关系。", zap.Error(err)) | ||||||
|  | 		tx.Rollback(ctx) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if err := repository.GMRepository.DeleteMeters(ctx, tx, pId, mId); err != nil { | ||||||
|  | 		gm.l.Error("删除指定园区中符合条件的表计。", zap.Error(err)) | ||||||
|  | 		tx.Rollback(ctx) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err = tx.Commit(ctx) | ||||||
|  | 	if err != nil { | ||||||
|  | 		gm.l.Error("未能成功提交数据库事务。", zap.Error(err)) | ||||||
|  | 		tx.Rollback(ctx) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user