zhangchuanxing 1 semana atrás
pai
commit
e266863c87

+ 50 - 18
controllers/company.go

@@ -14,6 +14,7 @@ import (
 	"hongze/hz_crm_api/models/company_user"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/models/response"
+	"hongze/hz_crm_api/models/roadshow"
 	statisticModels "hongze/hz_crm_api/models/statistic_report"
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services"
@@ -9083,7 +9084,7 @@ func (this *CompanyController) RoadShowList() {
 		englishCompany = 1
 	}
 	var err error
-	roadShowList, err := company.GetRoadShowList(companyIdInt, englishCompany)
+	roadShowList, err := company.GetRoadShowListNuion(companyIdInt, englishCompany)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -9100,28 +9101,59 @@ func (this *CompanyController) RoadShowList() {
 	//	roadShowTotalMap[roadShowTotal.CompanyId] = roadShowTotal.Total
 	//}
 
+	//获取活动下关联的多个销售信息
+	var rsActivityIds []int
+	for _, v := range roadShowList {
+		if v.RsType == 2 {
+			rsActivityIds = append(rsActivityIds, v.RsCalendarId)
+		}
+	}
+	mapSeller := make(map[int][]string)
+	if len(rsActivityIds) > 0 {
+		//获取对应的多个销售信息
+		listSeller, err := roadshow.GetRsActivitySellerListByActivityIds(rsActivityIds)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取数据失败,GetRsActivitySellerList,Err:" + err.Error()
+			return
+		}
+		for _, v := range listSeller {
+			mapSeller[v.RsActivityId] = append(mapSeller[v.RsActivityId], v.SellerName)
+		}
+	}
+
 	resp := make([]company.RoadShowListResp, len(roadShowList))
 	for i, calendar := range roadShowList {
 		resp[i].SysUserRealName = calendar.SysUserRealName
-		resp[i].RoadshowType = calendar.RoadshowType
-		//线上为平台,线下为省市
-		if calendar.RoadshowType == "线上" {
-			resp[i].RoadshowPlatform = calendar.RoadshowPlatform
+
+		if calendar.RsType == 1 {
+			resp[i].RoadshowType = calendar.RoadshowType
+			//线上为平台,线下为省市
+			if calendar.RoadshowType == "线上" {
+				resp[i].RoadshowPlatform = calendar.RoadshowPlatform
+			} else {
+				resp[i].RoadshowPlatform = calendar.Province + calendar.City
+			}
+			researchers, err := company.GetRoadShowResearchers(calendar.RsCalendarId)
+			if err != nil && err.Error() != utils.ErrNoRow() {
+				br.Msg = "获取研究员信息失败"
+				br.ErrMsg = "获取研究员信息失败,Err:" + err.Error()
+				return
+			}
+			var researcherList []string
+			for _, researcher := range researchers {
+				researcherList = append(researcherList, *researcher)
+			}
+			researcher := strings.Join(researcherList, ",")
+			resp[i].Researchers = researcher
 		} else {
-			resp[i].RoadshowPlatform = calendar.Province + calendar.City
-		}
-		researchers, err := company.GetRoadShowResearchers(calendar.RsCalendarId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取研究员信息失败"
-			br.ErrMsg = "获取研究员信息失败,Err:" + err.Error()
-			return
-		}
-		var researcherList []string
-		for _, researcher := range researchers {
-			researcherList = append(researcherList, *researcher)
+			resp[i].RoadshowType = "线下"
+			if calendar.RoadshowPlatform == "" {
+				resp[i].RoadshowPlatform = "--"
+			}
+			researcher := strings.Join(mapSeller[calendar.RsCalendarId], ",")
+			resp[i].Researchers = researcher
 		}
-		researcher := strings.Join(researcherList, ",")
-		resp[i].Researchers = researcher
 		resp[i].RoadShowTime = calendar.EndDate.Format("2006.01.02")
 	}
 

+ 3 - 0
controllers/company_seller.go

@@ -7648,6 +7648,9 @@ func (this *CompanySellerController) ActivityFiccList() {
 			teamGroupId[g.GroupId] = g.ParentId
 			continue
 		}
+		if strings.Contains(g.GroupName, "离职") {
+			continue
+		}
 
 		// 大组
 		list = append(list, system.RoadshowGroups{

+ 50 - 0
models/company/company.go

@@ -1675,6 +1675,7 @@ type RoadShowCalendar struct {
 	ActivityCategory string `description:"活动类别"`
 	IsSynced         int    `description:"是否与上海同步 0:未同步 1:已同步"`
 	EndDate          time.Time
+	RsType           int `description:"路演身份类型,1研究员,2销售"`
 }
 
 func GetRoadShowList(companyId, englishCompany int) (items []*RoadShowCalendar, err error) {
@@ -1694,6 +1695,55 @@ WHERE
 	_, err = o.Raw(sql, companyId, englishCompany).QueryRows(&items)
 	return
 }
+func GetRoadShowListNuion(companyId, englishCompany int) (items []*RoadShowCalendar, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			a.rs_calendar_id,
+			a.roadshow_type,
+			a.roadshow_platform,
+			a.sys_user_real_name,
+			a.province,
+			a.city,
+			b.end_date,
+			a.create_time,
+			1 as rs_type
+		FROM
+			rs_calendar AS a
+			INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id = b.rs_calendar_id 
+		WHERE
+			a.source = 0 
+			AND a.company_id = ?  
+			AND b.STATUS = 2 
+			AND a.english_company =?  
+			AND NOW()> DATE_FORMAT( CONCAT( end_date, " ", end_time ), '%Y-%m-%d %H:%i:%S' ) 
+		GROUP BY
+			rs_calendar_id UNION ALL
+		SELECT
+			a.rs_activity_id AS rs_calendar_id,
+			a.roadshow_type,
+			a.roadshow_platform,
+			a.sys_user_real_name,
+			'' AS province,
+			'' AS city,
+			b.end_date,
+			a.create_time,
+			2 as rs_type
+		FROM
+			rs_activity AS a
+			INNER JOIN rs_activity_seller AS b ON a.rs_activity_id = b.rs_activity_id 
+		WHERE
+			1 = 1 
+			AND a.company_id = ? 
+			AND b.STATUS = 2 
+			AND a.english_company =? 
+			AND NOW()> DATE_FORMAT( CONCAT( end_date, " ", end_time ), '%Y-%m-%d %H:%i:%S' ) 
+		GROUP BY
+			a.rs_activity_id 
+		ORDER BY
+	create_time DESC `
+	_, err = o.Raw(sql, companyId, englishCompany, companyId, englishCompany).QueryRows(&items)
+	return
+}
 
 type RoadShowListResp struct {
 	SysUserRealName  string `description:"对接销售"`

+ 3 - 2
services/wechat_send_msg.go

@@ -1891,7 +1891,7 @@ func SendWxMsgWithRoadshowSellerActivity(keyword1, keyword2, keyword3, keyword4
 	defer func() {
 		if err != nil {
 			fmt.Println("err:", err)
-			go alarm_msg.SendAlarmMsg("客户研选行业转正时(王芳审批通过),模板消息提醒汪洋,Err:"+err.Error()+";msg:"+msg, 3)
+			go alarm_msg.SendAlarmMsg("销售创建或取消活动的时候,推送模板消息失败,SendWxMsgWithRoadshowSellerActivityErr:"+err.Error()+";msg:"+msg, 3)
 		}
 		if msg != "" {
 			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
@@ -1908,7 +1908,7 @@ func SendWxMsgWithRoadshowSellerActivity(keyword1, keyword2, keyword3, keyword4
 	sendInfo.Keyword2 = keyword2
 	sendInfo.Keyword3 = keyword3
 	sendInfo.Keyword4 = keyword4
-	sendInfo.TemplateId = utils.WxMsgTemplateIdWithRoadshowActivityPending
+	sendInfo.TemplateId = utils.WxMsgTemplateIdWithRoadshowPending
 	//if wxAppPath != "" && utils.RunMode == "release" {
 	//	sendInfo.RedirectUrl = wxAppPath
 	//}
@@ -1916,6 +1916,7 @@ func SendWxMsgWithRoadshowSellerActivity(keyword1, keyword2, keyword3, keyword4
 	sendInfo.Resource = wxAppPath
 	sendInfo.SendType = utils.TEMPLATE_MSG_ACTIVITY_APPOINTMENT
 	sendInfo.OpenIdArr = openIdArr
+	//fmt.Println(sendInfo)
 
 	err = SendTemplateMsg(sendInfo)
 	return