Browse Source

周报月报查询修改

WH01243 1 year ago
parent
commit
f31c6f3036

+ 22 - 7
src/jfw/modules/bigmember/src/entity/report.go

@@ -9,7 +9,9 @@ import (
 )
 
 const (
-	TableMemberReportProject = "member_report_project" // 大会员周报月报-项目明细表
+	TableMemberReportProject    = "member_report_project" // 大会员周报月报-项目明细表
+	From                        = "yyszsyy"
+	TableMemberReportProjectYys = "member_report_project_yys" // 大会员周报月报-项目明细表
 )
 
 type ReportProjectInfoParam struct {
@@ -24,6 +26,7 @@ type ReportProjectInfoParam struct {
 	End        int                 `json:"end"`        // 结束时间
 	PageSize   int                 `json:"pageSize"`   // 默认每页10条
 	PageNum    int                 `json:"pageNum"`    // 默认当前第一页
+	Form       string              `json:"form"`       // 来源
 }
 
 // GetReportProjectInfo 周报/月报查询项目明细
@@ -103,7 +106,11 @@ func GetReportProjectInfo(param *ReportProjectInfoParam, positionId int64) (data
 	}
 	q += strings.Join(qstr, " and ")
 	// 查询数量
-	CountQuery := fmt.Sprintf("select count(1) from %s where position_id=? and start_time>=? and end_time<=? %s ", TableMemberReportProject, q)
+	table := TableMemberReportProject
+	if param.Form == From {
+		table = TableMemberReportProjectYys
+	}
+	CountQuery := fmt.Sprintf("select count(1) from %s where position_id=? and start_time>=? and end_time<=? %s ", table, q)
 	total = db.Base.CountBySql(CountQuery, values...)
 	if total == 0 {
 		return data, 0
@@ -112,7 +119,7 @@ func GetReportProjectInfo(param *ReportProjectInfoParam, positionId int64) (data
 	if param.Sort == 1 {
 		orderby = " (if(bidamount >0,bidamount,budget)) desc,id desc"
 	}
-	query := fmt.Sprintf("select * from %s where position_id=? and start_time>=? and end_time<=? %s  order by  %s   limit %d,%d", TableMemberReportProject, q, orderby, (param.PageNum-1)*param.PageSize, param.PageSize)
+	query := fmt.Sprintf("select * from %s where position_id=? and start_time>=? and end_time<=? %s  order by  %s   limit %d,%d", table, q, orderby, (param.PageNum-1)*param.PageSize, param.PageSize)
 	rs := db.Base.SelectBySql(query, values...)
 	if rs != nil && len(*rs) > 0 {
 		data = *rs
@@ -153,8 +160,12 @@ func ReportProjectInfoFormat(data []map[string]interface{}) []map[string]interfa
 }
 
 // ReportGetArea 周报月报获取当前订阅地区
-func ReportGetArea(positionId, start, end int64) map[string]interface{} {
-	q := "SELECT area,group_concat(distinct(city)) as city from " + TableMemberReportProject + " where position_id =? and start_time >=? and end_time<=? and area!='全国' group by area;"
+func ReportGetArea(positionId, start, end int64, from string) map[string]interface{} {
+	table := TableMemberReportProject
+	if from == From {
+		table = TableMemberReportProjectYys
+	}
+	q := "SELECT area,group_concat(distinct(city)) as city from " + table + " where position_id =? and start_time >=? and end_time<=? and area!='全国' group by area;"
 	rs := db.Base.SelectBySql(q, positionId, start, end)
 	areaMap := map[string]interface{}{}
 	if rs != nil && len(*rs) > 0 {
@@ -177,9 +188,13 @@ func ReportGetArea(positionId, start, end int64) map[string]interface{} {
 }
 
 // ReportGetBuyerClass 周报月报获取当前采购单位类型
-func ReportGetBuyerClass(positionId, start, end int64) []string {
+func ReportGetBuyerClass(positionId, start, end int64, from string) []string {
 	buyerClass := []string{}
-	q := "select distinct(buyerclass) from " + TableMemberReportProject + " where position_id =? and start_time >=? and end_time<=?  order by buyerclass "
+	table := TableMemberReportProject
+	if from == From {
+		table = TableMemberReportProjectYys
+	}
+	q := "select distinct(buyerclass) from " + table + " where position_id =? and start_time >=? and end_time<=?  order by buyerclass "
 	rs := db.Base.SelectBySql(q, positionId, start, end)
 	if rs != nil && len(*rs) > 0 {
 		for i := 0; i < len(*rs); i++ {

+ 58 - 33
src/jfw/modules/bigmember/src/service/report/report.go

@@ -57,8 +57,10 @@ func (s BarCharts) Swap(i, j int) {
 const (
 	oneday                                       = 86400
 	pushspace_experience_member_statistic        = "pushspace_experience_member_statistic"
-	pushspace_experience_member_statistic_winner = "pushspace_experience_member_statistic_winner"
+	From                                         = "yyszsyy"
 	pushspace_member_statistic                   = "pushspace_member_statistic"
+	pushspace_member_statistic_yys               = "pushspace_member_statistic_yys"
+	pushspace_experience_member_statistic_winner = "pushspace_experience_member_statistic_winner"
 	pushspace_member_statistic_winner            = "pushspace_member_statistic_winner"
 	C_User                                       = "user"
 	C_Entniche_Rule                              = "entniche_rule"
@@ -69,6 +71,7 @@ func (r *Report) Index() {
 		return
 	}
 	ym := r.GetString("ym")
+	from := r.GetString("from")
 	result := M{}
 	userId, qk, qv := getQuery(r.Session())
 	if qk == "" || qv == nil {
@@ -95,7 +98,11 @@ func (r *Report) Index() {
 		R.InvalidReqParam(r.ResponseWriter, r.Request, "ym")
 		return
 	}
-	list, ok := Mgo.Find(pushspace_member_statistic, query, `{"startdate":-1}`, `{"startdate":1,"enddate":1,"pushcount":1,"pushtime":1,"unread":1}`, false, -1, -1)
+	table := pushspace_member_statistic
+	if from == From {
+		table = pushspace_member_statistic_yys
+	}
+	list, ok := Mgo.Find(table, query, `{"startdate":-1}`, `{"startdate":1,"enddate":1,"pushcount":1,"pushtime":1,"unread":1}`, false, -1, -1)
 	array := []map[string]interface{}{}
 	if ok && list != nil {
 		for _, v := range *list {
@@ -110,34 +117,38 @@ func (r *Report) Index() {
 	}
 	result["list"] = array
 	result["subscribe"] = false
-	o_mb := &map[string]interface{}{}
-	user := config.Compatible.Select(userId, `{"o_member_jy":1,"i_member_status":1,"s_member_mainid":1,"i_member_sub_status":1}`)
-	if user != nil {
-		if s_member_mainid := qutil.ObjToString((*user)["s_member_mainid"]); s_member_mainid != "" && qutil.IntAll((*user)["i_member_sub_status"]) == 1 && qutil.IntAll((*user)["i_member_status"]) > 0 {
-			user, ok = Mgo.FindById("user", s_member_mainid, `{"o_member_jy":1}`)
+	if from != From {
+		o_mb := &map[string]interface{}{}
+		user := config.Compatible.Select(userId, `{"o_member_jy":1,"i_member_status":1,"s_member_mainid":1,"i_member_sub_status":1}`)
+		if user != nil {
+			if s_member_mainid := qutil.ObjToString((*user)["s_member_mainid"]); s_member_mainid != "" && qutil.IntAll((*user)["i_member_sub_status"]) == 1 && qutil.IntAll((*user)["i_member_status"]) > 0 {
+				user, ok = Mgo.FindById("user", s_member_mainid, `{"o_member_jy":1}`)
+			}
 		}
-	}
-	if ok && o_mb != nil {
-		o_member_jy, _ := (*o_mb)["o_member_jy"].(map[string]interface{})
-		if o_member_jy["a_infotype"] != nil || o_member_jy["o_area"] != nil || o_member_jy["a_buyerclass"] != nil {
-			result["subscribe"] = true
-		} else {
-			a_items, _ := o_member_jy["a_items"].([]interface{})
-		L:
-			for _, a_item := range a_items {
-				itemMap, _ := a_item.(map[string]interface{})
-				a_keys, _ := itemMap["a_key"].([]interface{})
-				for _, a_key := range a_keys {
-					keyMap, _ := a_key.(map[string]interface{})
-					keys, _ := keyMap["key"].([]interface{})
-					for _, key := range keys {
-						if strings.TrimSpace(qutil.ObjToString(key)) != "" {
-							result["subscribe"] = true
-							break L
+		if ok && o_mb != nil {
+			o_member_jy, _ := (*o_mb)["o_member_jy"].(map[string]interface{})
+			if o_member_jy["a_infotype"] != nil || o_member_jy["o_area"] != nil || o_member_jy["a_buyerclass"] != nil {
+				result["subscribe"] = true
+			} else {
+				a_items, _ := o_member_jy["a_items"].([]interface{})
+			L:
+				for _, a_item := range a_items {
+					itemMap, _ := a_item.(map[string]interface{})
+					a_keys, _ := itemMap["a_key"].([]interface{})
+					for _, a_key := range a_keys {
+						keyMap, _ := a_key.(map[string]interface{})
+						keys, _ := keyMap["key"].([]interface{})
+						for _, key := range keys {
+							if strings.TrimSpace(qutil.ObjToString(key)) != "" {
+								result["subscribe"] = true
+								break L
+							}
 						}
 					}
 				}
 			}
+		} else {
+			result["subscribe"] = true
 		}
 	}
 	r.ServeJson(Result{
@@ -150,12 +161,13 @@ func (r *Report) Detail() {
 	}
 	start, _ := r.GetInt("start")
 	end, _ := r.GetInt("end")
+	from := r.GetString("from")
 	var m M
 	userId, qk, qv := getQuery(r.Session())
 	if qk == "" || qv == nil {
 		return
 	}
-	coll, coll_winner := getColl(r.Header("referer"), r.GetString("type"))
+	coll, coll_winner := getColl(r.Header("referer"), r.GetString("type"), from)
 	// userId, _, _ = MainUserId(userId, "", 0)
 	if end-start == 518400 { //周
 		m = weekResult(qk, qv, start, end, coll, coll_winner)
@@ -184,9 +196,9 @@ func (r *Report) Detail() {
 		positionId = mainPositionId
 	}
 	// 省份
-	m["area"] = entity.ReportGetArea(positionId, start, end)
+	m["area"] = entity.ReportGetArea(positionId, start, end, from)
 	// 采购单位类型
-	m["buyerClass"] = entity.ReportGetBuyerClass(positionId, start, end)
+	m["buyerClass"] = entity.ReportGetBuyerClass(positionId, start, end, from)
 	m["isNewData"] = isNewData
 	r.ServeJson(Result{
 		Data: m,
@@ -518,11 +530,15 @@ func (r *Report) Tip() {
 	if qk == "" || qv == nil {
 		return
 	}
-	unread := Mgo.Count(pushspace_member_statistic, map[string]interface{}{
+	table := pushspace_member_statistic
+	if from == From {
+		table = pushspace_member_statistic_yys
+	}
+	unread := Mgo.Count(table, map[string]interface{}{
 		qk:       qv,
 		"unread": 1,
 	})
-	list, ok := Mgo.Find(pushspace_member_statistic, map[string]interface{}{
+	list, ok := Mgo.Find(table, map[string]interface{}{
 		qk:    qv,
 		"tip": 1,
 	}, `{"enddate":-1}`, `{"_id":0,"type":1,"startdate":1,"enddate":1,"pushcount":1}`, false, 0, 1)
@@ -586,8 +602,13 @@ func (r *Report) Starttime() {
 	if qk == "" || qv == nil {
 		return
 	}
+	from := r.GetString("from")
+	table := pushspace_member_statistic
+	if from == From {
+		table = pushspace_member_statistic_yys
+	}
 	week_start, month_start := 0, 0
-	week_list, _ := Mgo.Find(pushspace_member_statistic, map[string]interface{}{
+	week_list, _ := Mgo.Find(table, map[string]interface{}{
 		qk:     qv,
 		"type": 2,
 	}, `{"enddate":1}`, `{"enddate":1,"dateym":1}`, false, 0, 1)
@@ -598,7 +619,7 @@ func (r *Report) Starttime() {
 		}
 	}
 	//
-	month_list, _ := Mgo.Find(pushspace_member_statistic, map[string]interface{}{
+	month_list, _ := Mgo.Find(table, map[string]interface{}{
 		qk:     qv,
 		"type": 3,
 	}, `{"enddate":1}`, `{"enddate":1,"dateym":1}`, false, 0, 1)
@@ -616,10 +637,14 @@ func (r *Report) Starttime() {
 	})
 }
 
-func getColl(referer, t string) (string, string) {
+func getColl(referer, t, from string) (string, string) {
 	if t == "free" || strings.Contains(referer, "t=wx_experience") || strings.Contains(referer, "t=app_experience") {
+
 		return pushspace_experience_member_statistic, pushspace_experience_member_statistic_winner
 	} else {
+		if from == From {
+			return pushspace_member_statistic_yys, pushspace_member_statistic_winner
+		}
 		return pushspace_member_statistic, pushspace_member_statistic_winner
 	}
 }