浏览代码

搜索bug

xiexiaoyuan 3 年之前
父节点
当前提交
c11adea65b

+ 34 - 0
cache/company/company.go

@@ -0,0 +1,34 @@
+package company
+
+import (
+	"context"
+	jsoniter "github.com/json-iterator/go"
+	"hongze/hongze_yb/global"
+	model "hongze/hongze_yb/models/tables/company"
+	"hongze/hongze_yb/utils"
+	"strconv"
+	"time"
+)
+
+// GetByCompanyId 根据客户id获取信息
+func GetByCompanyId(companyId int64) (item *model.Company, err error) {
+	cacheKey := utils.HONGZEYB_ + "company:GetByCompanyId:" + strconv.Itoa(int(companyId))
+	companyInfo, _ := global.Redis.Get(context.TODO(), cacheKey).Result()
+	if companyInfo != "" {
+		err = jsoniter.UnmarshalFromString(companyInfo, &item)
+		if err != nil {
+			return
+		}
+		item.CompanyID = uint64(companyId)
+		return
+	}
+	item, err = model.GetByCompanyId(companyId)
+	if err == nil && item.CompanyID > 0 {
+		companyInfo, err = jsoniter.MarshalToString(item)
+		if err != nil {
+			return
+		}
+		_ = global.Redis.SetEX(context.TODO(), cacheKey, companyInfo, 2*time.Hour)
+	}
+	return
+}

+ 7 - 2
models/tables/rddp/classify/query.go

@@ -36,7 +36,10 @@ func GetSecondIdsByClassifyNames(names []string) (ids []int, err error) {
 
 // GetParentList 查询所有一级分类
 func GetParentList() (list []*Classify, err error) {
-	err = global.MYSQL["rddp"].Model(Classify{}).Where("parent_id = 0 and classify_name != '权益研报' AND is_show = 1").Order("sort asc, id asc").Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).
+		Select("id, classify_name").
+		Where("parent_id = 0 and classify_name != '权益研报' AND is_show = 1").
+		Order("sort asc, id asc").Scan(&list).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}
@@ -54,7 +57,9 @@ func GetByClassifyId(id int) (item *Classify, err error) {
 
 // GetListByPid 根据分类名称查找专栏列表
 func GetListByPid(pid int) (list []*Classify, err error) {
-	err = global.MYSQL["rddp"].Model(Classify{}).Where("parent_id = ? AND is_show = 1 ", pid).Order("sort asc, id asc").Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(Classify{}).
+		Select("id, classify_name, parent_id, report_author, author_descript, home_img_url").
+		Where("parent_id = ? AND is_show = 1 ", pid).Order("sort asc, id asc").Scan(&list).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}

+ 3 - 2
models/tables/rddp/report/query.go

@@ -119,7 +119,7 @@ func GetLatestDay() (item *Report, err error) {
 }
 
 // GetLatestReportsByClassifyIdFirst 查询当前一级分类下,二级分类中,最新的报告
-func GetLatestReportsByClassifyIdFirst(classifyIdFirst int) (reportList []*Report, err error) {
+func GetLatestReportsByClassifyIdFirst(classifyIdFirst int, classifyIdSeconds []int) (reportList []*Report, err error) {
 	sql := `SELECT
 	max( publish_time ) as publish_time,
 	classify_id_first,
@@ -133,9 +133,10 @@ FROM
 WHERE
 	state = 2 
 	AND classify_id_first = ?
+    AND classify_id_second IN ?
 GROUP BY
 	classify_id_second`
-	err = global.MYSQL["rddp"].Raw(sql, classifyIdFirst).Scan(&reportList).Error
+	err = global.MYSQL["rddp"].Raw(sql, classifyIdFirst, classifyIdSeconds).Scan(&reportList).Error
 	return
 }
 

+ 2 - 1
services/company/permission.go

@@ -3,6 +3,7 @@ package company
 import (
 	"errors"
 	"fmt"
+	companyCache "hongze/hongze_yb/cache/company"
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/tables/admin"
@@ -315,7 +316,7 @@ func GetCheckPermission(companyId int64, userId int, permissionIdList []int) (ok
 		}
 
 		//客户信息
-		companyInfo, tmpErr := company.GetByCompanyId(companyId)
+		companyInfo, tmpErr := companyCache.GetByCompanyId(companyId)
 		if tmpErr != nil {
 			// 没有开通ficc的客户
 			if tmpErr == utils.ErrNoRow {

+ 5 - 1
services/report/classify.go

@@ -47,9 +47,13 @@ func GetClassListByClassifyId(user user.UserInfo, classifyIdFirst int) (list []*
 		err = errors.New("二级分类查询出错")
 		return
 	}
+	var secondIds []int
+	for _, v := range classifyList {
+		secondIds = append(secondIds,v.Id)
+	}
 
 	//查询二级分类中最新的报告ID
-	reportList, err := report.GetLatestReportsByClassifyIdFirst(classifyIdFirst)
+	reportList, err := report.GetLatestReportsByClassifyIdFirst(classifyIdFirst, secondIds)
 	if err != nil && err != utils.ErrNoRow {
 		errMsg = err.Error()
 		err = errors.New("报告查询出错")

+ 1 - 0
services/report/report.go

@@ -801,6 +801,7 @@ func SearchReport(user user.UserInfo, keyWord string, pageIndex, pageSize int)(r
 				return
 			}
 			temp.ReportId = reportItem.ReportId
+			temp.ReportChapterId = reportItem.ReportChapterId
 			temp.ClassifyIdFirst = reportItem.ClassifyIdFirst
 			temp.ClassifyNameFirst = reportItem.ClassifyNameFirst
 			temp.ClassifyIdSecond = reportItem.ClassifyIdSecond

+ 2 - 2
services/report/report_view_record.go

@@ -3,8 +3,8 @@ package report
 import (
 	"errors"
 	"fmt"
+	companyCache "hongze/hongze_yb/cache/company"
 	"hongze/hongze_yb/global"
-	"hongze/hongze_yb/models/tables/company"
 	"hongze/hongze_yb/models/tables/rddp/report_view_record"
 	"hongze/hongze_yb/services/user"
 	"time"
@@ -27,7 +27,7 @@ func AddViewRecord(params ...interface{}) {
 	reportId := params[1].(int)
 	classifyName := params[2]
 	reportChapterId := params[3].(int)
-	companyInfo, err := company.GetByCompanyId(userInfo.CompanyID)
+	companyInfo, err := companyCache.GetByCompanyId(userInfo.CompanyID)
 	if err != nil {
 		return
 	}