Browse Source

no message

xingzai 2 years ago
parent
commit
184ea66489
2 changed files with 133 additions and 74 deletions
  1. 124 72
      services/activity_meeting.go
  2. 9 2
      services/task.go

+ 124 - 72
services/activity_meeting.go

@@ -1,6 +1,7 @@
 package services
 
 import (
+	"context"
 	"errors"
 	"fmt"
 	"hongze/hongze_cygx/models"
@@ -10,37 +11,30 @@ import (
 	"time"
 )
 
-// GroupingActivityToJmcj建立与进门财经的活动关联
-func GroupingActivityToJmcj() {
-
-}
-
-// GroupingActivityHzToJmcj 通过弘则的名称匹配进门财经的活动
-func GroupingActivityHzToJmcj() {
-
-}
-
 //func init() {
-//	var activityIds []int
-//	activityIds = append(activityIds, 3115)
-//	AddCygxActivityRestrictSignupByAdminNew(activityIds)
+//	fmt.Println(strings.Contains("渠道新声第583期运动服饰渠道调研更新反馈", "运动服饰渠道调研更新反馈"))
+//	fmt.Println(len("反馈"))
+//	GroupingActivityToJmcj()
+//	GetActivityMeetingByJmcj()
 //}
 
-// GroupingActivityJmcjToHz 通过进门财经的匹配弘则的活动
-func GroupingActivityJmcjToHz() (err error) {
+// GroupingActivityToJmcj 建立与进门财经的活动关联
+func GroupingActivityToJmcj(cont context.Context) (err error) {
+	//func GroupingActivityToJmcj() (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
-			go utils.SendAlarmMsg("通过进门财经的匹配弘则的活动", 2)
+			go utils.SendAlarmMsg("建立与进门财经的活动关联失败"+err.Error(), 2)
 		}
 	}()
-	dateTime := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	dateTime := time.Now().AddDate(0, 0, -7).Format(utils.FormatDate)
 	dateNow := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
 	startDate := dateTime + " 00:00:00"
 	endDate := dateNow + " 23:59:59"
 	var condition string
 	var pars []interface{}
 	condition = " AND roadshow_begin_time BETWEEN ? AND ? "
+	//condition += " AND roadshow_id = 95871  "
 	pars = append(pars, startDate, endDate)
 	condition += ` GROUP BY roadshow_id `
 	listJmcj, e := models.GetJmcjRoadshowDataList(condition, pars)
@@ -48,9 +42,10 @@ func GroupingActivityJmcjToHz() (err error) {
 		err = errors.New("GetJmcjRoadshowDataList, Err: " + e.Error())
 		return
 	}
-
+	textLen := 15
 	pars = make([]interface{}, 0)
-	condition = " AND activity_time BETWEEN ? AND ? AND publish_status = 1 "
+	condition = " AND activity_time BETWEEN ? AND ? AND publish_status = 1  AND jmcj_activity_id = '' "
+	//condition += " AND activity_id = 1339   "
 	pars = append(pars, startDate, endDate)
 	listHz, e := models.GetActivityListByCondition(condition, pars)
 	if e != nil {
@@ -61,21 +56,72 @@ func GroupingActivityJmcjToHz() (err error) {
 	mapGroupActivityid := make(map[int]string)
 	//通过进门财经匹配弘则
 	for _, vJmcj := range listJmcj {
-		var roadshowTitle string
+		var roadshowTitle, roadshowTitle1, roadshowTitle2, roadshowTitle3, roadshowTitle4 string
 		roadshowTitle = vJmcj.RoadshowTitle
-		roadshowTitle = strings.Replace(roadshowTitle, "【", "", -1)
-		roadshowTitle = strings.Replace(roadshowTitle, "】", "", -1)
 		roadshowTitle = strings.Replace(roadshowTitle, " ", "", -1)
-		roadshowTitle = strings.Replace(roadshowTitle, "-", "", -1)
-		roadshowTitle = strings.Replace(roadshowTitle, ":", "", -1)
-		nameSlice := strings.Split(roadshowTitle, "|")
-		if len(nameSlice) >= 1 {
-			roadshowTitle = nameSlice[len(nameSlice)-1]
-			vJmcj.RoadshowBeginTime = utils.TimeRemoveHms2(vJmcj.RoadshowBeginTime)
-			for _, vHz := range listHz {
-				//如果同一时间标题匹配就建立匹配关系
-				if vJmcj.RoadshowBeginTime == utils.TimeRemoveHms2(vHz.ActivityTime) && (strings.Contains(vHz.ActivityNameTask, roadshowTitle) || strings.Contains(vHz.JmcjRoadshowTitle, roadshowTitle)) {
+		roadshowBeginTime := utils.TimeRemoveHms2(vJmcj.RoadshowBeginTime)
+		nameSlice1 := strings.Split(roadshowTitle, "|")
+		nameSlice2 := strings.Split(roadshowTitle, ":")
+		nameSlice3 := strings.Split(roadshowTitle, "】")
+		nameSlice4 := strings.Split(roadshowTitle, "-")
+		if len(nameSlice1) >= 1 {
+			roadshowTitle1 = nameSlice1[len(nameSlice1)-1]
+		}
+		if len(nameSlice2) >= 1 {
+			roadshowTitle2 = nameSlice2[len(nameSlice2)-1]
+		}
+		if len(nameSlice3) >= 1 {
+			roadshowTitle3 = nameSlice3[len(nameSlice3)-1]
+		}
+		if len(nameSlice4) >= 1 {
+			roadshowTitle4 = nameSlice4[len(nameSlice4)-1]
+		}
+
+		if roadshowTitle == "" {
+			continue
+		}
+		//fmt.Println(roadshowTitle1)
+		//fmt.Println(roadshowTitle2)
+		//fmt.Println(roadshowTitle3)
+		//fmt.Println(roadshowTitle4)
+
+		for _, vHz := range listHz {
+			//如果同一时间标题匹配就建立匹配关系
+			if roadshowBeginTime == utils.TimeRemoveHms2(vHz.ActivityTime) {
+				if strings.Contains(vHz.ActivityNameTask, roadshowTitle) || strings.Contains(vHz.JmcjRoadshowTitle, roadshowTitle) {
+					mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+					break
+				}
+
+				//去掉空格标识,完全等于时候的匹配
+				if strings.Replace(vHz.ActivityName, " ", "", -1) == strings.Replace(vJmcj.RoadshowTitle, " ", "", -1) {
 					mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+					break
+				}
+
+				if len(roadshowTitle1) > textLen {
+					if strings.Contains(vHz.ActivityNameTask, roadshowTitle1) || strings.Contains(vHz.JmcjRoadshowTitle, roadshowTitle1) {
+						mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+						break
+					}
+				}
+				if len(roadshowTitle2) > textLen {
+					if strings.Contains(vHz.ActivityNameTask, roadshowTitle2) || strings.Contains(vHz.JmcjRoadshowTitle, roadshowTitle2) {
+						mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+						break
+					}
+				}
+				if len(roadshowTitle3) > textLen {
+					if strings.Contains(vHz.ActivityNameTask, roadshowTitle3) || strings.Contains(vHz.JmcjRoadshowTitle, roadshowTitle3) {
+						mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+						break
+					}
+				}
+				if len(roadshowTitle4) > textLen {
+					if strings.Contains(vHz.ActivityNameTask, roadshowTitle4) || strings.Contains(vHz.JmcjRoadshowTitle, roadshowTitle4) {
+						mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+						break
+					}
 				}
 			}
 		}
@@ -91,11 +137,20 @@ func GroupingActivityJmcjToHz() (err error) {
 		nameSlice := strings.Split(roadshowTitle, "】")
 		if len(nameSlice) >= 1 {
 			roadshowTitle = nameSlice[len(nameSlice)-1]
-			vHz.ActivityTime = utils.TimeRemoveHms2(vHz.ActivityTime)
-			for _, vJmcj := range listJmcj {
-				//如果同一时间标题匹配就建立匹配关系
-				if vHz.ActivityTime == utils.TimeRemoveHms2(vJmcj.RoadshowBeginTime) && strings.Contains(vJmcj.RoadshowTitle, roadshowTitle) {
-					mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+			if len(roadshowTitle) > textLen {
+				vHz.ActivityTime = utils.TimeRemoveHms2(vHz.ActivityTime)
+				for _, vJmcj := range listJmcj {
+					//如果同一时间标题匹配就建立匹配关系
+					if vHz.ActivityTime == utils.TimeRemoveHms2(vJmcj.RoadshowBeginTime) {
+						if strings.Contains(vJmcj.RoadshowTitle, roadshowTitle) {
+							mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+							break
+						}
+						if strings.Contains(vJmcj.RoadshowTitle, vHz.JmcjRoadshowTitle) && vHz.JmcjRoadshowTitle != "" {
+							mapGroupActivityid[vHz.ActivityId] = vJmcj.RoadshowId
+							break
+						}
+					}
 				}
 			}
 		}
@@ -107,11 +162,13 @@ func GroupingActivityJmcjToHz() (err error) {
 			err = errors.New("UpdateJmcjActivityIdGroup, Err: " + e.Error())
 		}
 	}
+
 	return
 
 }
 
-func GetActivityMeetingByJmcj() (err error) {
+// GetActivityMeetingByJmcj 同步进门财经到会信息,并处理爽约记录
+func GetActivityMeetingByJmcj(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -131,7 +188,7 @@ func GetActivityMeetingByJmcj() (err error) {
 	for _, v := range sliceValue {
 		mapActivityIdlLongTime[v] = v
 	}
-	dateTime := time.Now().AddDate(0, 0, -1).Format(utils.FormatDate)
+	dateTime := time.Now().AddDate(0, 0, 14).Format(utils.FormatDate)
 	dateNow := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
 	startDate := dateTime + " 00:00:00"
 	endDate := dateNow + " 23:59:59"
@@ -156,7 +213,7 @@ func GetActivityMeetingByJmcj() (err error) {
 		mapGroupActivityid[v.JmcjActivityId] = v.ActivityId
 		mapGroupActivityTime[v.JmcjActivityId] = v.ActivityTime
 	}
-	fmt.Println(jmcjActivityIds)
+
 	//return
 	lenjmcjActivityIds := len(jmcjActivityIds)
 	if lenjmcjActivityIds == 0 {
@@ -240,15 +297,8 @@ func GetActivityMeetingByJmcj() (err error) {
 		}
 	}
 
-	// 更新需要长时间同步到会信息的活动
-	if activityIdsLongTime != "" {
-		activityIdsLongTime = strings.TrimRight(activityIdsLongTime, ",")
-		activityIdsLongTime = detail.ConfigValue + "," + activityIdsLongTime
-		e = models.UpdateConfigByCode(activityIdsLongTime, configCode)
-		if e != nil {
-			err = errors.New("UpdateConfigByCode, Err: " + e.Error())
-			return
-		}
+	if len(needAddAttendanc) == 0 {
+		return
 	}
 
 	//根据手机号获取这些用户的信息
@@ -283,6 +333,17 @@ func GetActivityMeetingByJmcj() (err error) {
 		return
 	}
 
+	// 更新需要长时间同步到会信息的活动
+	if activityIdsLongTime != "" {
+		activityIdsLongTime = strings.TrimRight(activityIdsLongTime, ",")
+		activityIdsLongTime = detail.ConfigValue + "," + activityIdsLongTime
+		e = models.UpdateConfigByCode(activityIdsLongTime, configCode)
+		if e != nil {
+			err = errors.New("UpdateConfigByCode, Err: " + e.Error())
+			return
+		}
+	}
+
 	//return
 	{
 		//参会记录
@@ -305,10 +366,6 @@ func GetActivityMeetingByJmcj() (err error) {
 	{
 		//处理是否限制报名
 		AddCygxActivityRestrictSignupByAdminNew(updateActivityIds)
-		if err != nil {
-			fmt.Println("AddCygxActivityRestrictSignupByAdmin Err:", err.Error())
-			return err
-		}
 	}
 
 	{
@@ -351,7 +408,6 @@ func AddCygxActivityRestrictSignupByAdminNew(activityIds []int) (err error) {
 		for _, v := range meetingList {
 			userIdArr = append(userIdArr, v.UserId)
 		}
-		fmt.Println("userIdArr", userIdArr)
 		lenuserIdArr := len(userIdArr)
 		var condition string
 		var pars []interface{}
@@ -362,13 +418,12 @@ func AddCygxActivityRestrictSignupByAdminNew(activityIds []int) (err error) {
 			err = errors.New("GetCygxActivityRestrictSignupList" + e.Error())
 			return
 		}
-		fmt.Println(1)
+
 		//获取这些用户是否被加入到限制报名了
 		maptotalRestrict := make(map[int]bool)
 		for _, v := range restrictSignupList {
 			maptotalRestrict[v.UserId] = true
 		}
-		fmt.Println(len(restrictSignupList))
 
 		pars = make([]interface{}, 0)
 		condition = `   AND a.is_limit_people  = 1  AND  v.is_meeting = 0 	AND  v.do_fail_type = 0   AND  v.user_id IN (` + utils.GetOrmInReplace(lenuserIdArr) + `) AND a.activity_id IN (` + utils.GetOrmInReplace(lenactivityIds) + `)`
@@ -378,9 +433,7 @@ func AddCygxActivityRestrictSignupByAdminNew(activityIds []int) (err error) {
 			err = errors.New("GetActivitySignupInnerActivityList" + e.Error())
 			return
 		}
-		//fmt.Println(len(listSignup))
-		////return
-		//fmt.Println(2)
+
 		mapNomeet := make(map[int]int)
 		if len(listSignup) > 0 {
 			for _, v := range listSignup {
@@ -394,13 +447,13 @@ func AddCygxActivityRestrictSignupByAdminNew(activityIds []int) (err error) {
 				userIdDelArr = append(userIdDelArr, v.UserId)
 			}
 		}
-		if len(userIdDelArr) > 0 {
-			e = models.DeleteCygxActivityRestrictSignupByUserIds(userIdDelArr)
-			if e != nil {
-				err = errors.New("DeleteCygxActivityRestrictSignupByUserIds" + e.Error())
-				return
-			}
-		}
+		//if len(userIdDelArr) > 0 {
+		//	e = models.DeleteCygxActivityRestrictSignupByUserIds(userIdDelArr)
+		//	if e != nil {
+		//		err = errors.New("DeleteCygxActivityRestrictSignupByUserIds" + e.Error())
+		//		return
+		//	}
+		//}
 	}
 
 	//获取未到会的人员
@@ -439,13 +492,13 @@ func AddCygxActivityRestrictSignupByAdminNew(activityIds []int) (err error) {
 
 	//var condition string
 	pars = make([]interface{}, 0)
-	condition = ` AND user_id IN (` + utils.GetOrmInReplace(lenuserIdSiginArr) + `)`
-	pars = append(pars, userIdSiginArr)
+	condition = ""
 	restrictSignupList, e := models.GetCygxActivityRestrictSignupList(condition, pars, 0, 9999)
 	if e != nil {
 		err = errors.New("GetCygxActivityRestrictSignupList" + e.Error())
 		return
 	}
+
 	//获取这些用户是否被加入到限制报名了
 	for _, v := range restrictSignupList {
 		maptotalRestrict[v.UserId] = true
@@ -478,12 +531,13 @@ func AddCygxActivityRestrictSignupByAdminNew(activityIds []int) (err error) {
 			itemRestrict.CompanyName = v.CompanyName
 			itemRestrict.IsRestrict = 1
 			itemsRestrict = append(itemsRestrict, itemRestrict)
+			maptotalRestrict[v.UserId] = true
 		}
 	}
 
-	err = models.DeleteCygxActivitySignupBreakByIds(activityIds)
-	if err != nil {
-		err = errors.New("DeleteCygxActivitySignupBreakById" + err.Error())
+	e = models.DeleteCygxActivitySignupBreakByIds(activityIds)
+	if e != nil {
+		err = errors.New("DeleteCygxActivitySignupBreakById" + e.Error())
 		return
 	}
 
@@ -548,7 +602,6 @@ func CygxActivityMeetSort(list []*models.CygxActivityAttendanceDetail, activityI
 		item := new(models.CygxActivityMeetDetailLog)
 		item.ActivityId = v.ActivityId
 		item.Mobile = v.Mobile
-		fmt.Println(v.CompanyName)
 		item.CompanyName = v.CompanyName
 		item.CompanyId = v.CompanyId
 		item.ActivityTime = v.ActivityTime
@@ -600,7 +653,6 @@ func CygxActivityMeetSort(list []*models.CygxActivityAttendanceDetail, activityI
 				return
 			}
 		}
-
 	}
 	return
 

+ 9 - 2
services/task.go

@@ -65,8 +65,15 @@ func Task() {
 		//更改对应产业的文章阅读数量
 		chageIndustrialArticleNum := task.NewTask("chageIndustrialArticleNum", "0 01 00 * * *", ChageIndustrialArticleNum) //更改对应产业的文章阅读数量
 		task.AddTask("chageIndustrialArticleNum", chageIndustrialArticleNum)
-		activityAttendanceDetail := task.NewTask("activityAttendanceDetail", "0 00 3 * * *", ActivityAttendanceDetail) //同步进门财经的路演信息
-		task.AddTask("sendEmailUserWhiteListChange", activityAttendanceDetail)
+
+		//activityAttendanceDetail := task.NewTask("activityAttendanceDetail", "0 00 3 * * *", ActivityAttendanceDetail) //同步进门财经的路演信息
+		//task.AddTask("activityAttendanceDetail", activityAttendanceDetail)
+
+		groupingActivityToJmcj := task.NewTask("groupingActivityToJmcj", "0 00 1 * * *", GroupingActivityToJmcj) //建立进门财经与弘则活动的匹配关系
+		task.AddTask("groupingActivityToJmcj", groupingActivityToJmcj)
+
+		getActivityMeetingByJmcj := task.NewTask("getActivityMeetingByJmcj", "0 00 3 * * *", GetActivityMeetingByJmcj) //同步进门财经的路演信息
+		task.AddTask("getActivityMeetingByJmcj", getActivityMeetingByJmcj)
 
 		sendEmailFileForAskMsgResearch := task.NewTask("sendEmailFileForAskMsgResearch", "0 */5 6-23 * * *", SendEmailFileForAskMsgResearch) //研选系列专家电话会,会前1小时将问题列表发送给邮箱
 		task.AddTask("sendEmailFileForAskMsgResearch", sendEmailFileForAskMsgResearch)