kobe6258 преди 6 месеца
родител
ревизия
5186d64be5
променени са 4 файла, в които са добавени 46 реда и са изтрити 21 реда
  1. 17 1
      controllers/report/report_controller.go
  2. 15 11
      domian/report/report_service.go
  3. 12 7
      models/report/report.go
  4. 2 2
      service/report/report_service.go

+ 17 - 1
controllers/report/report_controller.go

@@ -83,7 +83,23 @@ func (r *ReportController) List(permissionIds string) {
 			pageRes.Total = r.PageInfo.Total
 		}
 		pageRes.TotalPage = page.TotalPages(pageRes.Total, pageRes.PageSize)
-		list, err := report.GetReportPage(r.PageInfo, reportOrgIds)
+		if len(permissionIdList) > 0 && len(reportOrgIds) == 0 {
+			logger.Info("没有搜索到相关品种的报告,返回空")
+			reports := new(page.PageResult)
+			reports.Data = []reportService.ReportDTO{}
+			reports.Page = pageRes
+			r.SuccessResult("查询报告列表成功", reports, result)
+			return
+		}
+		all := false
+		if len(permissionIdList) == 0 && len(reportOrgIds) > 0 {
+			err = exception.New(exception.UnknownError)
+			r.FailedResult("查询报告列表失败", result)
+		}
+		if len(permissionIdList) == 0 && len(reportOrgIds) == 0 {
+			all = true
+		}
+		list, err := report.GetReportPage(r.PageInfo, reportOrgIds, all)
 		if err != nil {
 			r.FailedResult("分页查询报告列表失败", result)
 			return

+ 15 - 11
domian/report/report_service.go

@@ -180,9 +180,9 @@ func GetReportPageByAnalyst(pageInfo page.PageInfo, analyst string) (list []Repo
 	}
 	return
 }
-func GetReportPageByOrgIds(pageInfo page.PageInfo, orgIds map[string][]int) (list []ReportDTO, err error) {
+func GetReportPageByOrgIds(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bool) (list []ReportDTO, err error) {
 	offset := page.StartIndex(pageInfo.Current, pageInfo.PageSize)
-	reports, err := reportDao.GetReportPageByOrgIds(pageInfo.LatestId, pageInfo.PageSize, offset, orgIds)
+	reports, err := reportDao.GetReportPageByOrgIds(pageInfo.LatestId, pageInfo.PageSize, offset, orgIds, searchAll)
 	if err != nil {
 		logger.Error("分页查询报告列表失败:%v", err)
 		return
@@ -633,27 +633,31 @@ func GetListByCondition[T any](column string, ids []T) (dtoList []ReportDTO, err
 }
 
 func GetTotalPageCountByPermissionIds(permissionIds []int) (total int64, latestId int64, ids map[string][]int) {
-	htIds, err := GetHTReportIdsByPermissionIds(permissionIds)
+	htOrgIds, err := GetHTReportIdsByPermissionIds(permissionIds)
 	if err != nil {
 		logger.Error("品种筛选ht报告id失败:%v", err)
-		htIds = []int{}
+		htOrgIds = []int{}
 	}
-	etaIds, err := GetETAReportIdsByPermissionIds(permissionIds)
+	etaOrgIds, err := GetETAReportIdsByPermissionIds(permissionIds)
 	if err != nil {
 		logger.Error("品种筛选eta报告id失败:%v", err)
-		etaIds = []int{}
+		etaOrgIds = []int{}
+	}
+	total = int64(len(etaOrgIds) + len(htOrgIds))
+	if total == 0 {
+		latestId = 0
+		return
 	}
-	total = int64(len(etaIds) + len(htIds))
 	ids = make(map[string][]int, 2)
-	if len(etaIds) == 0 {
+	if len(etaOrgIds) == 0 {
 		ids["ETA"] = []int{}
 	} else {
-		ids["ETA"] = etaIds
+		ids["ETA"] = etaOrgIds
 	}
-	if len(htIds) == 0 {
+	if len(htOrgIds) == 0 {
 		ids["HT"] = []int{}
 	} else {
-		ids["HT"] = htIds
+		ids["HT"] = htOrgIds
 	}
 	//ids = append(etaIds, htIds...)
 	latestId = reportDao.GetMaxIdByPermissionIds(ids)

+ 12 - 7
models/report/report.go

@@ -196,11 +196,12 @@ func GetListByCondition[T any](column string, values []T) (reports []Report, err
 func GetMaxIdByPermissionIds(orgIds map[string][]int) (maxId int64) {
 	db := models.Main()
 	if len(orgIds["ETA"]) == 0 && len(orgIds["HT"]) == 0 {
-		err := db.Model(&Report{}).Select("MAX(id) id").Where("status = ?", StatusPublish).Scan(&maxId).Error
-		if err != nil {
-			logger.Error("获取报告最大ID失败:%v", err)
-			return 0
-		}
+		//err := db.Model(&Report{}).Select("MAX(id) id").Where("status = ?", StatusPublish).Scan(&maxId).Error
+		//if err != nil {
+		//	logger.Error("获取报告最大ID失败:%v", err)
+		//	return 0
+		//}
+		maxId = 0
 		return
 	}
 	if len(orgIds["ETA"]) == 0 {
@@ -262,10 +263,14 @@ func GetReportPage(latestId int64, limit int, offset int) (list []Report, err er
 	return
 }
 
-func GetReportPageByOrgIds(latestId int64, limit int, offset int, orgIds map[string][]int) (list []Report, err error) {
-	if len(orgIds["ETA"]) == 0 && len(orgIds["HT"]) == 0 {
+func GetReportPageByOrgIds(latestId int64, limit int, offset int, orgIds map[string][]int, searchAll bool) (list []Report, err error) {
+	//有传入品种 但是没有筛选出来的已经过滤掉了,现在orgIds为空只有是
+	if searchAll {
 		return GetReportPage(latestId, limit, offset)
 	}
+	//if len(orgIds["ETA"]) == 0 && len(orgIds["HT"]) == 0 {
+	//
+	//}
 	if latestId < 0 {
 		err = errors.New("非法的id参数")
 		logger.Error("非法的id参数:%d", latestId)

+ 2 - 2
service/report/report_service.go

@@ -149,8 +149,8 @@ func SearchMaxReportId(key string) (total int64, id int64) {
 }
 
 // GetReportPage 分页获取报告列表
-func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int) (list []reportService.ReportDTO, err error) {
-	list, err = reportService.GetReportPageByOrgIds(pageInfo, orgIds)
+func GetReportPage(pageInfo page.PageInfo, orgIds map[string][]int, searchAll bool) (list []reportService.ReportDTO, err error) {
+	list, err = reportService.GetReportPageByOrgIds(pageInfo, orgIds, searchAll)
 	//并发获取研报的标签
 	var wg sync.WaitGroup
 	wg.Add(len(list))