浏览代码

fix:商机管理采购单位画像动态无权限展示修改

duxin 1 年之前
父节点
当前提交
8cf482ee59

+ 1 - 1
entniche_new/src/entity/portrait.go

@@ -183,7 +183,7 @@ func (this *Portrait) WinnerPortraitData(entId string) (map[string]interface{},
 }
 }
 
 
 // 采购单位画像-查询最新项目动态
 // 采购单位画像-查询最新项目动态
-func (this *Portrait) GetBuyerNewMsg(pwp *PortraitProjectScreen) ([]map[string]interface{}, int64, error) {
+func (this *Portrait) GetBuyerNewMsg(pwp *PortraitProjectScreen) ([]map[string]interface{}, int64, int64, error) {
 	return pwp.GetBuyerList()
 	return pwp.GetBuyerList()
 }
 }
 
 

+ 62 - 8
entniche_new/src/entity/portrait_screen.go

@@ -1,6 +1,7 @@
 package entity
 package entity
 
 
 import (
 import (
+	"app.yhyue.com/moapp/jybase/redis"
 	"encoding/json"
 	"encoding/json"
 	"entniche_new/src/config"
 	"entniche_new/src/config"
 	"fmt"
 	"fmt"
@@ -269,7 +270,7 @@ func GetWinnerNewProjectCount(entId string) int64 {
 }
 }
 
 
 // GetBuyerListSearch 采购单位中标动态查询
 // GetBuyerListSearch 采购单位中标动态查询
-func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]interface{}, total int64, err error) {
+func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]interface{}, total, updateTime int64, err error) {
 	if pwp.Screen.Ent == "" {
 	if pwp.Screen.Ent == "" {
 		err = fmt.Errorf("企业名称异常")
 		err = fmt.Errorf("企业名称异常")
 		return
 		return
@@ -280,11 +281,13 @@ func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]inter
 	if pwp.Screen.HasPower {
 	if pwp.Screen.HasPower {
 		pwp.PageNum = qutil.If(pwp.PageNum == 0, 1, pwp.PageNum).(int)     //默认第一页
 		pwp.PageNum = qutil.If(pwp.PageNum == 0, 1, pwp.PageNum).(int)     //默认第一页
 		pwp.PageSize = qutil.If(pwp.PageSize == 0, 10, pwp.PageSize).(int) //默认每页10条
 		pwp.PageSize = qutil.If(pwp.PageSize == 0, 10, pwp.PageSize).(int) //默认每页10条
-	} else { //免费用户可以查看三条
-		pwp.PageNum = 1
-		pwp.PageSize = 5
+		//} else { //免费用户可以查看三条
+		//	pwp.PageNum = 1
+		//	pwp.PageSize = 5
+	}
+	if !pwp.Screen.HasPower {
+		return pwp.FreePortraitNews(mustQueryArr, false)
 	}
 	}
-
 	//仅第一页查询总量(非数据导出)
 	//仅第一页查询总量(非数据导出)
 	if pwp.PageNum == 1 || pwp.IsExport {
 	if pwp.PageNum == 1 || pwp.IsExport {
 		total = elastic.Count(biddingIndex, biddingIndex, fmt.Sprintf(NewMustSearch, strings.Join(mustQueryArr, ","), ""))
 		total = elastic.Count(biddingIndex, biddingIndex, fmt.Sprintf(NewMustSearch, strings.Join(mustQueryArr, ","), ""))
@@ -315,12 +318,63 @@ func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]inter
 	return
 	return
 }
 }
 
 
+func (pwp *PortraitProjectScreen) FreePortraitNews(mustQueryArr []string, isWinner bool) (data *[]map[string]interface{}, total int64, updateTime int64, err error) {
+	redisKey := fmt.Sprintf("free_portrait_list_%s", pwp.Screen.Ent)
+	var redisData map[string]interface{}
+	if rBytes, err := redis.GetBytes("other", redisKey); err == nil && len(*rBytes) != 0 {
+		_ = json.Unmarshal(*rBytes, &redisData)
+		dataArr, _ := redisData["data"].([]map[string]interface{})
+		data = &dataArr
+		total, _ = redisData["total"].(int64)
+		updateTime, _ = redisData["updateTime"].(int64)
+	} else {
+		var fields string
+		updateTime = time.Now().Unix()
+		if isWinner {
+			fields = `"_id","projectname","bidamount","budget","title","publishtime","subtype","toptype","area","bidopentime","buyer"`
+		} else {
+			fields = `"bidstatus","_id","title","subtype","projectname","publishtime","area","bidamount","budget","bidopentime","s_winner","entidlist"`
+		}
+		listQuery := fmt.Sprintf(NewMustSearch, strings.Join(mustQueryArr, ","), fmt.Sprintf(`,"_source":[%s],"sort":{%s},"from":0,"size":30`, fields, `"publishtime":"desc","id":"desc"`))
+		total = elastic.Count(biddingIndex, biddingIndex, listQuery)
+		if total > 0 {
+			list := elastic.Get(biddingIndex, biddingIndex, listQuery)
+			if list != nil && len(*list) > 0 {
+				data = list
+			}
+		}
+	}
+	go func() {
+		redis.Put("other", redisKey, map[string]interface{}{
+			"data":       data,
+			"total":      total,
+			"updateTime": updateTime,
+		}, 24*3600*config.Config.PortraitDynamicTime)
+	}()
+	return
+}
+
+func redisTime() float64 {
+	currentTime := time.Now()
+
+	currentWeekday := currentTime.Weekday()
+	daysUntilMonday := time.Monday - currentWeekday
+	if daysUntilMonday < 0 {
+		daysUntilMonday += 7
+	}
+	nextMonday := currentTime.AddDate(0, 0, int(daysUntilMonday))
+
+	nextMondayMidnight := time.Date(nextMonday.Year(), nextMonday.Month(), nextMonday.Day(), 0, 0, 0, 0, nextMonday.Location())
+
+	return nextMondayMidnight.Sub(currentTime).Seconds()
+}
+
 // GetBuyerList 获取采购单位采购信息数据
 // GetBuyerList 获取采购单位采购信息数据
 // 会员展示1-4页表格数据,免费用户前三条
 // 会员展示1-4页表格数据,免费用户前三条
-func (pwp *PortraitProjectScreen) GetBuyerList() (list []map[string]interface{}, total int64, err error) {
+func (pwp *PortraitProjectScreen) GetBuyerList() (list []map[string]interface{}, total, updateTime int64, err error) {
 	var newData *[]map[string]interface{}
 	var newData *[]map[string]interface{}
 	//查询
 	//查询
-	newData, total, err = pwp.GetBuyerListSearch()
+	newData, total, updateTime, err = pwp.GetBuyerListSearch()
 	if newData == nil || len(*newData) == 0 {
 	if newData == nil || len(*newData) == 0 {
 		return
 		return
 	}
 	}
@@ -406,7 +460,7 @@ func (pwp *PortraitProjectScreen) CommonPare(isWinner bool) (mustQueryArr []stri
 func (pwp *PortraitProjectScreen) GetBuyerListIds() (ids []string, err error) {
 func (pwp *PortraitProjectScreen) GetBuyerListIds() (ids []string, err error) {
 	var newData *[]map[string]interface{}
 	var newData *[]map[string]interface{}
 	//查询
 	//查询
-	newData, _, err = pwp.GetBuyerListSearch()
+	newData, _, _, err = pwp.GetBuyerListSearch()
 	if newData == nil || len(*newData) == 0 {
 	if newData == nil || len(*newData) == 0 {
 		err = fmt.Errorf("未查询到相关数据")
 		err = fmt.Errorf("未查询到相关数据")
 		return
 		return

+ 4 - 7
entniche_new/src/service/portrait/subvipPortraitAction.go

@@ -41,17 +41,13 @@ func (this *EntPortrait) BuyerNewMsg() {
 		pageSize, _ := this.GetInteger("pageSize")
 		pageSize, _ := this.GetInteger("pageSize")
 		////cepm, power, err := entitys.CreateSubVipPortraitManager(userId, "buyerPortrait", buyer, false)
 		////cepm, power, err := entitys.CreateSubVipPortraitManager(userId, "buyerPortrait", buyer, false)
 		cepm, hasPower, err := entity.CreatePortraitManager(this.Session())
 		cepm, hasPower, err := entity.CreatePortraitManager(this.Session())
-		if err != nil {
-			return nil, err
-		}
-
 		err = entity.SubVipPortraitTimesCheck(Mysql, buyer, userId)
 		err = entity.SubVipPortraitTimesCheck(Mysql, buyer, userId)
 		if err != nil {
 		if err != nil {
 			hasPower = false
 			hasPower = false
 		}
 		}
 
 
 		//免费用户仅可查看三条记录
 		//免费用户仅可查看三条记录
-		rData, total, err := cepm.GetBuyerNewMsg(&entity.PortraitProjectScreen{
+		rData, total, updateTime, err := cepm.GetBuyerNewMsg(&entity.PortraitProjectScreen{
 			Screen: &entity.PortraitScreen{
 			Screen: &entity.PortraitScreen{
 				Ent:        buyer,
 				Ent:        buyer,
 				Match:      this.GetString("match"),
 				Match:      this.GetString("match"),
@@ -69,8 +65,9 @@ func (this *EntPortrait) BuyerNewMsg() {
 			return nil, err
 			return nil, err
 		}
 		}
 		return map[string]interface{}{
 		return map[string]interface{}{
-			"list":  rData,
-			"count": total,
+			"list":       rData,
+			"count":      total,
+			"updateTime": updateTime,
 		}, nil
 		}, nil
 	}()
 	}()
 	if errMsg != nil {
 	if errMsg != nil {