|
@@ -1,6 +1,7 @@
|
|
|
package entity
|
|
|
|
|
|
import (
|
|
|
+ "app.yhyue.com/moapp/jybase/redis"
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
"jy/src/jfw/modules/bigmember/src/config"
|
|
@@ -219,6 +220,7 @@ func (pwp *PortraitProjectScreen) CommonPare(isWinner bool) (mustQueryArr []stri
|
|
|
}
|
|
|
|
|
|
//按照当前年份,往前推4年,共5个年份可选
|
|
|
+ //无权已用户
|
|
|
sTime, eTime := pwp.Screen.PareTimeSelect(isWinner) //采购单位不校验权限
|
|
|
if isWinner {
|
|
|
mustQueryArr = append(mustQueryArr, fmt.Sprintf(`{"term":{"entidlist":"%s"}}`, pwp.Screen.Ent))
|
|
@@ -232,7 +234,7 @@ func (pwp *PortraitProjectScreen) CommonPare(isWinner bool) (mustQueryArr []stri
|
|
|
|
|
|
// GetWinnerListSearch 获取企业画像中标信息数据
|
|
|
// 会员展示1-4页表格数据,免费用户前三条
|
|
|
-func (pwp *PortraitProjectScreen) GetWinnerListSearch() (list *[]map[string]interface{}, total int64, err error) {
|
|
|
+func (pwp *PortraitProjectScreen) GetWinnerListSearch() (list *[]map[string]interface{}, total int64, updateTime int64, err error) {
|
|
|
if pwp.Screen.Ent == "" {
|
|
|
err = fmt.Errorf("企业名称异常")
|
|
|
return
|
|
@@ -240,6 +242,11 @@ func (pwp *PortraitProjectScreen) GetWinnerListSearch() (list *[]map[string]inte
|
|
|
mustQueryArr := pwp.CommonPare(true)
|
|
|
pwp.PageNum = qutil.If(pwp.PageNum == 0, 1, pwp.PageNum).(int) //默认第一页
|
|
|
pwp.PageSize = qutil.If(pwp.PageSize == 0, 10, pwp.PageSize).(int) //默认每页10条
|
|
|
+
|
|
|
+ if !pwp.Screen.HasPower || pwp.Free {
|
|
|
+ return pwp.FreePortraitNews(mustQueryArr, true)
|
|
|
+ }
|
|
|
+
|
|
|
//仅第一页查询总量
|
|
|
if pwp.PageNum == 1 || pwp.IsExport {
|
|
|
total = elastic.Count(biddingIndex, biddingType, fmt.Sprintf(NewMustSearch, strings.Join(mustQueryArr, ","), ""))
|
|
@@ -272,9 +279,9 @@ func (pwp *PortraitProjectScreen) GetWinnerListSearch() (list *[]map[string]inte
|
|
|
}
|
|
|
|
|
|
// GetWinnerList 获取企业画像中标信息数据
|
|
|
-func (pwp *PortraitProjectScreen) GetWinnerList() (list []map[string]interface{}, total int64, err error) {
|
|
|
+func (pwp *PortraitProjectScreen) GetWinnerList() (list []map[string]interface{}, total int64, updateTime int64, err error) {
|
|
|
var newData *[]map[string]interface{}
|
|
|
- newData, total, err = pwp.GetWinnerListSearch()
|
|
|
+ newData, total, updateTime, err = pwp.GetWinnerListSearch()
|
|
|
if newData == nil || len(*newData) == 0 {
|
|
|
return
|
|
|
}
|
|
@@ -314,7 +321,7 @@ func (pwp *PortraitProjectScreen) GetWinnerList() (list []map[string]interface{}
|
|
|
// GetWinnerListIds 画像中标单位动态数据导出
|
|
|
func (pwp *PortraitProjectScreen) GetWinnerListIds() (ids []string, err error) {
|
|
|
var newData *[]map[string]interface{}
|
|
|
- newData, _, err = pwp.GetWinnerListSearch()
|
|
|
+ newData, _, _, err = pwp.GetWinnerListSearch()
|
|
|
if newData == nil || len(*newData) == 0 {
|
|
|
err = fmt.Errorf("未找到相关数据")
|
|
|
return
|
|
@@ -349,7 +356,7 @@ func GetNewBiddingCount(winnerId, buyer string) int64 {
|
|
|
}
|
|
|
|
|
|
// GetBuyerListSearch 采购单位中标动态查询
|
|
|
-func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]interface{}, total int64, err error) {
|
|
|
+func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]interface{}, total int64, updateTime int64, err error) {
|
|
|
if pwp.Screen.Ent == "" {
|
|
|
err = fmt.Errorf("企业名称异常")
|
|
|
return
|
|
@@ -358,9 +365,12 @@ func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]inter
|
|
|
if pwp.Screen.HasPower {
|
|
|
pwp.PageNum = qutil.If(pwp.PageNum == 0, 1, pwp.PageNum).(int) //默认第一页
|
|
|
pwp.PageSize = qutil.If(pwp.PageSize == 0, 5, pwp.PageSize).(int) //默认每页10条
|
|
|
- } else { //免费用户可以查看三条
|
|
|
- pwp.PageNum = 1
|
|
|
- pwp.PageSize = 5
|
|
|
+ //} else { //免费用户可以查看三条
|
|
|
+ // pwp.PageNum = 1
|
|
|
+ // pwp.PageSize = 5
|
|
|
+ }
|
|
|
+ if !pwp.Screen.HasPower || pwp.Free {
|
|
|
+ return pwp.FreePortraitNews(mustQueryArr, false)
|
|
|
}
|
|
|
|
|
|
//仅第一页查询总量(非数据导出)
|
|
@@ -384,27 +394,73 @@ func (pwp *PortraitProjectScreen) GetBuyerListSearch() (list *[]map[string]inter
|
|
|
//log.Printf("PortraitWinnerProject GetList Sql %s\n", listQuery)
|
|
|
list = elastic.Get(biddingIndex, biddingIndex, listQuery)
|
|
|
} else { // 数据导出分批查询
|
|
|
- if total > 5 {
|
|
|
- if pwp.Screen.HasPower {
|
|
|
- if pwp.Free {
|
|
|
- total = 5
|
|
|
- }
|
|
|
- } else { //免费用户可以查看三条
|
|
|
- total = 5
|
|
|
- }
|
|
|
- }
|
|
|
+ //if total > 5 {
|
|
|
+ // if pwp.Screen.HasPower {
|
|
|
+ // if pwp.Free {
|
|
|
+ // total = 5
|
|
|
+ // }
|
|
|
+ // } else { //免费用户可以查看三条
|
|
|
+ // total = 5
|
|
|
+ // }
|
|
|
+ //}
|
|
|
listQuery := fmt.Sprintf(NewMustSearch, strings.Join(mustQueryArr, ","), `,"_source":["_id"],"sort":{"publishtime":"desc"}`)
|
|
|
list = getBatchSearchRes(biddingIndex, biddingIndex, listQuery, total)
|
|
|
}
|
|
|
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)
|
|
|
+ redisData := make(map[string]interface{})
|
|
|
+ var dataArr []map[string]interface{}
|
|
|
+ if rBytes, err := redis.GetBytes("other", redisKey); err == nil && len(*rBytes) != 0 {
|
|
|
+ _ = json.Unmarshal(*rBytes, &redisData)
|
|
|
+ rData, _ := redisData["list"].([]interface{})
|
|
|
+ dataArr = qutil.ObjArrToMapArr(rData)
|
|
|
+ total = qutil.Int64All(redisData["total"])
|
|
|
+ updateTime = qutil.Int64All(redisData["updateTime"])
|
|
|
+ } 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"`
|
|
|
+ }
|
|
|
+ mustQueryArrStr := strings.Join(mustQueryArr, ",")
|
|
|
+ total = elastic.Count(biddingIndex, biddingIndex, fmt.Sprintf(NewMustSearch, mustQueryArrStr, ""))
|
|
|
+ isTrue := true
|
|
|
+ if total > 0 {
|
|
|
+ listQuery := fmt.Sprintf(NewMustSearch, mustQueryArrStr, fmt.Sprintf(`,"_source":[%s],"sort":{%s},"from":0,"size":%d`, fields, `"publishtime":"desc","id":"desc"`, config.Config.PortraitCount))
|
|
|
+ list := elastic.Get(biddingIndex, biddingIndex, listQuery)
|
|
|
+ if list != nil && len(*list) > 0 {
|
|
|
+ dataArr = *list
|
|
|
+ } else {
|
|
|
+ log.Printf("画像动态数据获取异常,ent:%s,total:%d,sql:%s", pwp.Screen.Ent, total, listQuery)
|
|
|
+ isTrue = false
|
|
|
+ total = 0
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if isTrue {
|
|
|
+ go func() {
|
|
|
+ redis.Put("other", redisKey, map[string]interface{}{
|
|
|
+ "list": dataArr,
|
|
|
+ "total": total,
|
|
|
+ "updateTime": updateTime,
|
|
|
+ }, 24*3600*config.Config.PortraitDynamicTime)
|
|
|
+ }()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ data = &dataArr
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// GetBuyerList 获取采购单位采购信息数据
|
|
|
-// 会员展示1-4页表格数据,免费用户前三条
|
|
|
-func (pwp *PortraitProjectScreen) GetBuyerList() (list []map[string]interface{}, total int64, err error) {
|
|
|
+// 会员展示1-4页表格数据,免费用户前三十条
|
|
|
+func (pwp *PortraitProjectScreen) GetBuyerList() (list []map[string]interface{}, total int64, updateTime int64, err error) {
|
|
|
var newData *[]map[string]interface{}
|
|
|
//查询
|
|
|
- newData, total, err = pwp.GetBuyerListSearch()
|
|
|
+ newData, total, updateTime, err = pwp.GetBuyerListSearch()
|
|
|
if newData == nil || len(*newData) == 0 {
|
|
|
return
|
|
|
}
|
|
@@ -444,7 +500,7 @@ func (pwp *PortraitProjectScreen) GetBuyerList() (list []map[string]interface{},
|
|
|
func (pwp *PortraitProjectScreen) GetBuyerListIds() (ids []string, err error) {
|
|
|
var newData *[]map[string]interface{}
|
|
|
//查询
|
|
|
- newData, _, err = pwp.GetBuyerListSearch()
|
|
|
+ newData, _, _, err = pwp.GetBuyerListSearch()
|
|
|
if newData == nil || len(*newData) == 0 {
|
|
|
err = fmt.Errorf("未查询到相关数据")
|
|
|
return
|