From 8d3ce16ce0cd453f03c432d6e548f344fc50f11d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Thu, 25 Aug 2022 17:32:32 +0800 Subject: [PATCH] =?UTF-8?q?enhance(maintenance):=E4=B8=BA=E9=85=8D?= =?UTF-8?q?=E7=94=B5=E7=BB=B4=E6=8A=A4=E8=B4=B9=E9=83=A8=E5=88=86=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0=E7=BC=93=E5=AD=98=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/maintenance_fee.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/service/maintenance_fee.go b/service/maintenance_fee.go index 6100307..e6e73c7 100644 --- a/service/maintenance_fee.go +++ b/service/maintenance_fee.go @@ -1,9 +1,11 @@ package service import ( + "electricity_bill_calc/cache" "electricity_bill_calc/exceptions" "electricity_bill_calc/global" "electricity_bill_calc/model" + "fmt" "github.com/google/uuid" "xorm.io/builder" @@ -20,11 +22,15 @@ func (_MaintenanceFeeService) ListMaintenanceFees(pid []string) ([]model.Mainten } else { return make([]model.MaintenanceFee, 0), exceptions.NewIllegalArgumentsError("必须给定所要请求的至少一个园区", "park_id") } + if fees, _ := cache.RetreiveSearch[[]model.MaintenanceFee]("maintenance_fee", pid...); fees != nil { + return *fees, nil + } var fees = make([]model.MaintenanceFee, 0) err := global.DBConn.Where(cond).Desc("created_at").Find(&fees) if err != nil { return make([]model.MaintenanceFee, 0), err } + cache.CacheSearch(fees, "maintenance_fee", "maintenance_fee", pid...) return fees, nil } @@ -35,6 +41,7 @@ func (_MaintenanceFeeService) CreateMaintenanceFeeRecord(fee model.MaintenanceFe if err != nil { return err } + cache.AbolishRelation("maintenance_fee") return nil } @@ -47,6 +54,8 @@ func (_MaintenanceFeeService) ModifyMaintenanceFee(fee model.MaintenanceFee) err return err } } + cache.AbolishRelation("maintenance_fee") + cache.AbolishRelation(fmt.Sprintf("maintenance_fee_%s", fee.Id)) return nil } @@ -59,6 +68,8 @@ func (_MaintenanceFeeService) ChangeMaintenanceFeeState(fid string, state bool) return err } } + cache.AbolishRelation("maintenance_fee") + cache.AbolishRelation(fmt.Sprintf("maintenance_fee_%s", fid)) return nil } @@ -71,10 +82,15 @@ func (_MaintenanceFeeService) DeleteMaintenanceFee(fid string) error { return err } } + cache.AbolishRelation("maintenance_fee") + cache.AbolishRelation(fmt.Sprintf("maintenance_fee_%s", fid)) return nil } func (_MaintenanceFeeService) EnsureFeeBelongs(uid, mid string) (bool, error) { + if has, _ := cache.CheckExists("maintenance_fee", mid, uid); has { + return true, nil + } var fee = make([]model.MaintenanceFee, 0) err := global.DBConn. ID(mid).Limit(1).Find(&fee) @@ -93,5 +109,8 @@ func (_MaintenanceFeeService) EnsureFeeBelongs(uid, mid string) (bool, error) { if len(park) == 0 { return false, exceptions.NewNotFoundError("指定维护费所属园区未找到。") } + if park[0].UserId == uid { + cache.CacheExists("maintenance_fee", "maintenance_fee", mid, uid) + } return park[0].UserId == uid, nil }