From 8f126cfda0f98a6774f284f0546ceb57cf885f7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Tue, 16 Aug 2022 00:11:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor(park):=E5=90=88=E5=B9=B6=E5=9B=AD?= =?UTF-8?q?=E5=8C=BA=E7=9A=84Service=E5=92=8CRepository=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controller/park.go | 9 ++++----- repository/park.go | 41 ----------------------------------------- service/park.go | 28 ++++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 46 deletions(-) delete mode 100644 repository/park.go diff --git a/controller/park.go b/controller/park.go index f441842..ed7a1e0 100644 --- a/controller/park.go +++ b/controller/park.go @@ -2,7 +2,6 @@ package controller import ( "electricity_bill_calc/model" - "electricity_bill_calc/repository" "electricity_bill_calc/response" "electricity_bill_calc/security" "electricity_bill_calc/service" @@ -46,7 +45,7 @@ func listAllParksUnderSessionUser(c *gin.Context) { result.Failure(http.StatusInternalServerError, "内部缓存错误,需要重新登录。") return } - parks, err := repository.ParkRepo.ListAllParkBelongsTo(userSession.Uid) + parks, err := service.ParkService.ListAllParkBelongsTo(userSession.Uid) if err != nil { result.Error(http.StatusInternalServerError, err.Error()) return @@ -57,7 +56,7 @@ func listAllParksUnderSessionUser(c *gin.Context) { func listAllParksUnderSpecificUser(c *gin.Context) { result := response.NewResult(c) requestUserId := c.Param("uid") - parks, err := repository.ParkRepo.ListAllParkBelongsTo(requestUserId) + parks, err := service.ParkService.ListAllParkBelongsTo(requestUserId) if err != nil { result.Error(http.StatusInternalServerError, err.Error()) return @@ -122,7 +121,7 @@ func modifyPark(c *gin.Context) { requestParkId := c.Param("pid") formData := new(_ParkInfoFormData) c.BindJSON(formData) - park, err := repository.ParkRepo.FetchParkDetail(requestParkId) + park, err := service.ParkService.FetchParkDetail(requestParkId) if err != nil { result.Error(http.StatusInternalServerError, err.Error()) return @@ -155,7 +154,7 @@ func fetchParkDetail(c *gin.Context) { return } requestParkId := c.Param("pid") - park, err := repository.ParkRepo.FetchParkDetail(requestParkId) + park, err := service.ParkService.FetchParkDetail(requestParkId) if err != nil { result.Error(http.StatusInternalServerError, err.Error()) return diff --git a/repository/park.go b/repository/park.go deleted file mode 100644 index d9cf45c..0000000 --- a/repository/park.go +++ /dev/null @@ -1,41 +0,0 @@ -package repository - -import ( - "electricity_bill_calc/exceptions" - "electricity_bill_calc/global" - "electricity_bill_calc/model" - - "xorm.io/builder" -) - -type _ParkRepository struct{} - -var ParkRepo _ParkRepository - -func (_ParkRepository) ListAllParkBelongsTo(uid string) ([]model.Park, error) { - parks := make([]model.Park, 0) - err := global.DBConn. - Where(builder.Eq{"user_id": uid}). - NoAutoCondition(). - Find(&parks) - if err != nil { - return make([]model.Park, 0), err - } - return parks, nil -} - -func (_ParkRepository) FetchParkDetail(pid string) (*model.Park, error) { - var park = &model.Park{} - has, err := global.DBConn.ID(pid).NoAutoCondition().Get(park) - if err != nil { - return nil, err - } - if !has { - return nil, exceptions.NewNotFoundError("未找到符合条件的园区记录。") - } - return park, nil -} - -func (_ParkRepository) EnsurePark(uid, pid string) (bool, error) { - return global.DBConn.Table(&model.Park{}).Where(builder.Eq{"user_id": uid, "id": pid}).Exist() -} diff --git a/service/park.go b/service/park.go index 5f4bf45..7367c94 100644 --- a/service/park.go +++ b/service/park.go @@ -63,3 +63,31 @@ func (_ParkService) DeletePark(uid, pid string) error { } return nil } + +func (_ParkService) ListAllParkBelongsTo(uid string) ([]model.Park, error) { + parks := make([]model.Park, 0) + err := global.DBConn. + Where(builder.Eq{"user_id": uid}). + NoAutoCondition(). + Find(&parks) + if err != nil { + return make([]model.Park, 0), err + } + return parks, nil +} + +func (_ParkService) FetchParkDetail(pid string) (*model.Park, error) { + var park = &model.Park{} + has, err := global.DBConn.ID(pid).NoAutoCondition().Get(park) + if err != nil { + return nil, err + } + if !has { + return nil, exceptions.NewNotFoundError("未找到符合条件的园区记录。") + } + return park, nil +} + +func (_ParkService) EnsurePark(uid, pid string) (bool, error) { + return global.DBConn.Table(&model.Park{}).Where(builder.Eq{"user_id": uid, "id": pid}).Exist() +}