fix(report):修正对于园区的最新报表期数的检测。

This commit is contained in:
徐涛 2022-08-30 10:37:11 +08:00
parent b09b3f4f2d
commit e9a122fcda
2 changed files with 5 additions and 5 deletions

View File

@ -90,7 +90,7 @@ func initializeNewReport(c *gin.Context) {
result.NotAccept("提供的初始化期数格式不正确。") result.NotAccept("提供的初始化期数格式不正确。")
return return
} }
valid, err := service.ReportService.IsNewPeriodValid(userSession.Uid, reportPeriod) valid, err := service.ReportService.IsNewPeriodValid(userSession.Uid, requestParkId, reportPeriod)
if err != nil { if err != nil {
result.Error(http.StatusInternalServerError, err.Error()) result.Error(http.StatusInternalServerError, err.Error())
return return

View File

@ -55,20 +55,20 @@ func (_ReportService) FetchParksWithNewestReport(uid string) ([]model.ParkNewest
return lo.Values(reducedParks), nil return lo.Values(reducedParks), nil
} }
func (_ReportService) IsNewPeriodValid(uid string, period time.Time) (bool, error) { func (_ReportService) IsNewPeriodValid(uid, pid string, period time.Time) (bool, error) {
reports := make([]model.Report, 0) reports := make([]model.Report, 0)
if cachedReport, _ := cache.RetreiveSearch[[]model.Report]("report", "user", uid); cachedReport != nil { if cachedReport, _ := cache.RetreiveSearch[[]model.Report]("report", "user", uid, "park", pid); cachedReport != nil {
reports = *cachedReport reports = *cachedReport
} else { } else {
err := global.DBConn. err := global.DBConn.
Table("report").Alias("r"). Table("report").Alias("r").
Join("INNER", []string{"park", "p"}, "r.park_id=p.id"). Join("INNER", []string{"park", "p"}, "r.park_id=p.id").
Where(builder.Eq{"p.user_id": uid}). Where(builder.Eq{"p.user_id": uid, "r.park_id": pid}).
Find(&reports) Find(&reports)
if err != nil { if err != nil {
return false, nil return false, nil
} }
cache.CacheSearch(reports, []string{"report", "park"}, "park", "user", uid) cache.CacheSearch(reports, []string{"report", "park"}, "park", "user", uid, "park", pid)
} }
// 检查给定的期数在目前的记录中是否已经存在 // 检查给定的期数在目前的记录中是否已经存在
exists := lo.Reduce( exists := lo.Reduce(