Преглед на файлове

fix:联系人更换客户时,查询阅读记录调整

Roc преди 1 година
родител
ревизия
7581289928
променени са 2 файла, в които са добавени 44 реда и са изтрити 31 реда
  1. 28 0
      models/user_view_history.go
  2. 16 31
      services/company.go

+ 28 - 0
models/user_view_history.go

@@ -452,3 +452,31 @@ func GetPUVByResearchReportIds(reportIds string) (list []*ResearchReportViewPUV,
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 }
+
+//`ficc_view_total` int(9) unsigned DEFAULT '0' COMMENT 'ficc报告的阅读次数',
+//`ficc_last_view_time` datetime DEFAULT NULL COMMENT 'ficc报告最近一次阅读时间',
+//`rai_view_total` int(9) unsigned DEFAULT '0' COMMENT '权益报告的阅读次数',
+//`rai_last_view_time` datetime DEFAULT NULL COMMENT '权益报告的最近一次阅读时间',
+
+// CompanyViewRecord 获取客户ficc和权益的浏览次数/最近浏览时间
+type CompanyViewRecord struct {
+	CompanyId        int       `description:"客户id"`
+	FiccViewTotal    int       `description:"ficc报告的阅读次数"`
+	FiccLastViewTime time.Time `description:"ficc报告最近一次阅读时间"`
+	RaiViewTotal     int       `description:"权益报告的阅读次数"`
+	RaiLastViewTime  time.Time `description:"权益报告最近一次阅读时间"`
+}
+
+// GetUserViewHistoryByCompanyIdList 根据company_id列表获取客户的浏览次数
+func GetUserViewHistoryByCompanyIdList(companyIdList []int) (items []*CompanyViewRecord, err error) {
+	num := len(companyIdList)
+	if num <= 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT
+	a.company_id ,SUM(ficc_view_total) as ficc_view_total,max(ficc_last_view_time) as ficc_last_view_time,SUM(rai_view_total) as rai_view_total,max(rai_last_view_time) as rai_last_view_time
+	FROM wx_user AS a WHERE a.company_id IN ( ` + utils.GetOrmInReplace(num) + ` )  GROUP BY a.company_id`
+	_, err = o.Raw(sql, companyIdList).QueryRows(&items)
+	return
+}

+ 16 - 31
services/company.go

@@ -2098,39 +2098,29 @@ func ModifyCompanyProductLastViewData(companyIdList []int) (err error) {
 		}
 	}
 
-	companyIdStr := ``
-	for _, companyId := range companyIdList {
-		companyIdStr += fmt.Sprint(companyId, ",")
-	}
-	companyIdStr = companyIdStr[:len(companyIdStr)-1]
-
-	companyFiccViewTotalMap, err := GetFiccCountUserViewHistoryByCompanyIds(companyIdStr, mobileList, emailList, mobileCompanyIdMap, emailCompanyIdMap)
+	// 根据companyId列表获取客户公司的阅读情况
+	companyViewRecordList, err := models.GetUserViewHistoryByCompanyIdList(companyIdList)
 	if err != nil {
 		return
 	}
-
-	companyFiccLastViewMap, err := GetFiccLastUserViewHistoryByCompanyIds(companyIdStr, mobileList, emailList, mobileCompanyIdMap, emailCompanyIdMap)
-	if err != nil {
-		return
-	}
-
-	companyRaiViewTotalMap, err := GetRaiCountUserViewHistoryByCompanyIds(companyIdStr)
-	if err != nil {
-		return
-	}
-
-	companyRaiLastViewMap, err := GetRaiLastUserViewHistoryByCompanyIds(companyIdStr)
-	if err != nil {
-		return
+	companyViewRecordMap := make(map[int]*models.CompanyViewRecord)
+	for _, v := range companyViewRecordList {
+		companyViewRecordMap[v.CompanyId] = v
 	}
 
 	for _, companyId := range companyIdList {
+		companyViewRecord, ok := companyViewRecordMap[companyId]
 		//ficc
-		var companyFiccViewTotal int
-		var companyFiccLastView time.Time
-		var companyFiccLastViewStr string
-		companyFiccViewTotal, _ = companyFiccViewTotalMap[companyId]
-		companyFiccLastView, _ = companyFiccLastViewMap[companyId]
+		var companyFiccViewTotal, companyRaiViewTotal int
+		var companyFiccLastView, companyRaiLastView time.Time
+		var companyFiccLastViewStr, companyRaiLastViewStr string
+
+		if ok && companyViewRecord != nil {
+			companyFiccViewTotal = companyViewRecord.FiccViewTotal
+			companyFiccLastView = companyViewRecord.FiccLastViewTime
+			companyRaiViewTotal = companyViewRecord.RaiViewTotal
+			companyRaiLastView = companyViewRecord.RaiLastViewTime
+		}
 
 		if companyFiccLastView.IsZero() {
 			companyFiccLastViewStr = "0000-00-00 00:00:00"
@@ -2140,11 +2130,6 @@ func ModifyCompanyProductLastViewData(companyIdList []int) (err error) {
 		company.ModifyCompanyProductLastViewData(companyId, 1, companyFiccViewTotal, companyFiccLastViewStr)
 
 		//权益
-		var companyRaiViewTotal int
-		var companyRaiLastView time.Time
-		var companyRaiLastViewStr string
-		companyRaiViewTotal, _ = companyRaiViewTotalMap[companyId]
-		companyRaiLastView, _ = companyRaiLastViewMap[companyId]
 		if companyRaiLastView.IsZero() {
 			companyRaiLastViewStr = "0000-00-00 00:00:00"
 		} else {