浏览代码

Merge branch 'master' of http://8.136.199.33:3000/hongze/hongze_cygx into cygx_6.0

xingzai 2 年之前
父节点
当前提交
411915714f
共有 4 个文件被更改,包括 226 次插入59 次删除
  1. 30 2
      models/activity.go
  2. 26 22
      models/activity_attendance_detail.go
  3. 145 35
      services/activity.go
  4. 25 0
      services/task.go

+ 30 - 2
models/activity.go

@@ -3,6 +3,7 @@ package models
 import (
 import (
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"github.com/rdlucklib/rdluck_tools/paging"
+	"strings"
 	"time"
 	"time"
 )
 )
 
 
@@ -118,6 +119,14 @@ func GetAddActivityInfoById(ActivityId int) (item *ActivityDetail, err error) {
 	return
 	return
 }
 }
 
 
+//通过活动名称获取活动详情
+func GetAddActivityInfoByTitle(title, startDate, endDate string) (item *ActivityDetail, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_activity  WHERE  activity_time > '` + startDate + `' AND activity_time < '` + endDate + `' AND (activity_name_task LIKE '%` + title + `%' OR  jmcj_roadshow_title LIKE '%` + title + `%') LIMIT 1 `
+	err = o.Raw(sql).QueryRow(&item)
+	return
+}
+
 //通过纪要ID获取活动详情
 //通过纪要ID获取活动详情
 func GetAddActivityInfoByIdShow(uid, ActivityId int) (item *ActivityDetail, err error) {
 func GetAddActivityInfoByIdShow(uid, ActivityId int) (item *ActivityDetail, err error) {
 	o := orm.NewOrm()
 	o := orm.NewOrm()
@@ -187,9 +196,13 @@ func GetActivityListAll(condition string, pars []interface{}, uid, startSize, pa
 }
 }
 
 
 //列表
 //列表
-func GetActivityListByDateTime(startDate, endDate string) (items []*CygxActivityList, err error) {
+func GetActivityListByDateTime(startDate, endDate, activityIds string) (items []*CygxActivityList, err error) {
 	o := orm.NewOrm()
 	o := orm.NewOrm()
-	sql := `SELECT * FROM cygx_activity WHERE  activity_time > '` + startDate + `' AND activity_time < '` + endDate + `' `
+	sql := `SELECT * FROM cygx_activity WHERE activity_time > '` + startDate + `' AND activity_time < '` + endDate + `' `
+	activityIds = strings.TrimRight(activityIds, ",")
+	if activityIds != "" {
+		sql += ` AND activity_id IN (` + activityIds + `)  `
+	}
 	_, err = o.Raw(sql).QueryRows(&items)
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 	return
 }
 }
@@ -673,3 +686,18 @@ func GetCygxActivitySpecialDetail(ActivityId int) (item *CygxActivitySpecialDeta
 	err = o.Raw(sql, ActivityId).QueryRow(&item)
 	err = o.Raw(sql, ActivityId).QueryRow(&item)
 	return
 	return
 }
 }
+
+//列表
+func GetActivityList() (items []*CygxActivityList, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT  *  FROM cygx_activity`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}
+
+func UpdateCygxActivityName(activityId int, Name string) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_activity SET activity_name_task = ? WHERE activity_id=?  `
+	_, err = o.Raw(sql, Name, activityId).Exec()
+	return
+}

+ 26 - 22
models/activity_attendance_detail.go

@@ -83,24 +83,24 @@ func AddCygxActivityAttendanceDetail(item *CygxActivityAttendanceDetail) (lastId
 }
 }
 
 
 type RoadshowData struct {
 type RoadshowData struct {
-	Id                int       `orm:"column(id);pk;"description:"主键ID"`
-	Company           string    `description:"公司名称"`
-	UserName          string    `description:"用户名"`
-	UserPhone         string    `description:"手机号"`
-	UserinfoUource    string    `description:"用户来源"`
-	AuthInfo          string    `description:"用户参会鉴权"`
-	GuestUsername     string    `description:"嘉宾名称, 多个用,隔开"`
-	FirstWatchTime    string    `description:"首次观看时间"`
-	LastWatchTime     string    `description:"最后观看时间"`
-	RoadshowId        string    `description:"路演ID"`
-	RoadshowTitle     string    `description:"路演标题"`
-	RoadshowBeginTime time.Time `description:"路演开始时间"`
-	RoadshowEndTime   time.Time `description:"路演结束时间"`
-	JoinTime          int       `description:"参与时长"`
-	JoinType          int       `description:"参与方式, 1网络, 2电话"`
-	DataType          int       `description:"数据类型: 1直播, 2回放"`
-	Occupation        string    `description:"职位"`
-	UseridEntity      int       `description:"参会者身份. 1:主讲人, 2:主持人, 3:嘉宾, 4:普通参会者, 5:联席主讲人, 6:会议助理"`
+	Id                int    `orm:"column(id);pk;"description:"主键ID"`
+	Company           string `description:"公司名称"`
+	UserName          string `description:"用户名"`
+	UserPhone         string `description:"手机号"`
+	UserinfoUource    string `description:"用户来源"`
+	AuthInfo          string `description:"用户参会鉴权"`
+	GuestUsername     string `description:"嘉宾名称, 多个用,隔开"`
+	FirstWatchTime    string `description:"首次观看时间"`
+	LastWatchTime     string `description:"最后观看时间"`
+	RoadshowId        string `description:"路演ID"`
+	RoadshowTitle     string `description:"路演标题"`
+	RoadshowBeginTime string `description:"路演开始时间"`
+	RoadshowEndTime   string `description:"路演结束时间"`
+	JoinTime          int    `description:"参与时长"`
+	JoinType          int    `description:"参与方式, 1网络, 2电话"`
+	DataType          int    `description:"数据类型: 1直播, 2回放"`
+	Occupation        string `description:"职位"`
+	UseridEntity      int    `description:"参会者身份. 1:主讲人, 2:主持人, 3:嘉宾, 4:普通参会者, 5:联席主讲人, 6:会议助理"`
 }
 }
 
 
 func AddAttendancDetail(items []*CygxActivityAttendanceDetail, activityId int, mobileStr string) (err error) {
 func AddAttendancDetail(items []*CygxActivityAttendanceDetail, activityId int, mobileStr string) (err error) {
@@ -141,14 +141,18 @@ func AddAttendancDetail(items []*CygxActivityAttendanceDetail, activityId int, m
 	return
 	return
 }
 }
 
 
-//获取用户报名数量
-
+//获取用户参会列表
 func GetRoadshowDataList(title, findStartDate, findEndDate string) (list []*RoadshowData, err error) {
 func GetRoadshowDataList(title, findStartDate, findEndDate string) (list []*RoadshowData, err error) {
-	//o := orm.NewOrm()
 	o := orm.NewOrmUsingDB("comein_data")
 	o := orm.NewOrmUsingDB("comein_data")
-	//o.Using("comein_data")
 	sql := `SELECT * FROM roadshow_data WHERE roadshow_title LIKE '%` + title + `%' AND  roadshow_begin_time >= '` + findStartDate + `' AND roadshow_begin_time <= '` + findEndDate + `'`
 	sql := `SELECT * FROM roadshow_data WHERE roadshow_title LIKE '%` + title + `%' AND  roadshow_begin_time >= '` + findStartDate + `' AND roadshow_begin_time <= '` + findEndDate + `'`
+	_, err = o.Raw(sql).QueryRows(&list)
+	return
+}
 
 
+//获取这个时段内的进门财经参会活动
+func GetRoadshowDataListByDateTime(findStartDate, findEndDate string) (list []*RoadshowData, err error) {
+	o := orm.NewOrmUsingDB("comein_data")
+	sql := `SELECT * FROM roadshow_data WHERE   roadshow_begin_time >= '` + findStartDate + `' AND roadshow_begin_time <= '` + findEndDate + `'   GROUP BY roadshow_title `
 	_, err = o.Raw(sql).QueryRows(&list)
 	_, err = o.Raw(sql).QueryRows(&list)
 	return
 	return
 }
 }

+ 145 - 35
services/activity.go

@@ -600,54 +600,67 @@ func LabelStrV5(label string, isShowSubjectName int) (labelNew string) {
 func ActivityAttendanceDetail(cont context.Context) (err error) {
 func ActivityAttendanceDetail(cont context.Context) (err error) {
 	defer func() {
 	defer func() {
 		if err != nil {
 		if err != nil {
-			fmt.Println("RefreshDataFromWind Err:" + err.Error())
-			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "RefreshDataFromWind ErrMsg:"+err.Error(), utils.EmailSendToUsers)
+			fmt.Println("ActivityAttendanceDetail Err:" + err.Error())
+			go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ActivityAttendanceDetail ErrMsg:"+err.Error(), utils.EmailSendToUsers)
 		}
 		}
 	}()
 	}()
-
+	var activityIds string
 	fmt.Println("开始同步")
 	fmt.Println("开始同步")
 	dateTime := time.Now().AddDate(0, 0, -14).Format(utils.FormatDate)
 	dateTime := time.Now().AddDate(0, 0, -14).Format(utils.FormatDate)
 	dateNow := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
 	dateNow := time.Now().AddDate(0, 0, 0).Format(utils.FormatDate)
 	startDate := dateTime + " 00:00:00"
 	startDate := dateTime + " 00:00:00"
 	endDate := dateNow + " 23:59:59"
 	endDate := dateNow + " 23:59:59"
-	//获取需要处理的活动
-	listActivity, err := models.GetActivityListByDateTime(startDate, endDate)
+	//获取进门财经需要处理的活动
+	listActivityRoadshow, err := models.GetRoadshowDataListByDateTime(startDate, endDate)
 	if err != nil {
 	if err != nil {
-		fmt.Println("GetTacticsList Err:", err.Error())
+		fmt.Println("GetRoadshowDataListByDateTime Err:", err.Error())
 		return err
 		return err
 	}
 	}
-	fmt.Println(listActivity)
-
-	for _, vAct := range listActivity {
-		doTime := utils.TimeRemoveHms2(vAct.ActivityTime)
+	for _, vAct := range listActivityRoadshow {
+		doTime := utils.TimeRemoveHms2(vAct.RoadshowBeginTime)
 		findStartDate := doTime + " 00:00:00"
 		findStartDate := doTime + " 00:00:00"
 		findEndDate := doTime + " 23:59:59"
 		findEndDate := doTime + " 23:59:59"
-		nameSlice := strings.Split(vAct.ActivityName, "】")
+		var roadshowTitle string
+		roadshowTitle = vAct.RoadshowTitle
+		vAct.RoadshowTitle = strings.Replace(vAct.RoadshowTitle, "【", "", -1)
+		vAct.RoadshowTitle = strings.Replace(vAct.RoadshowTitle, "】", "", -1)
+		vAct.RoadshowTitle = strings.Replace(vAct.RoadshowTitle, " ", "", -1)
+		vAct.RoadshowTitle = strings.Replace(vAct.RoadshowTitle, "-", "", -1)
+		vAct.RoadshowTitle = strings.Replace(vAct.RoadshowTitle, ":", "", -1)
+		nameSlice := strings.Split(vAct.RoadshowTitle, "|")
 		//fmt.Println(timeSlice[0])
 		//fmt.Println(timeSlice[0])
 		//对于手动匹配到的活动数据也要更新
 		//对于手动匹配到的活动数据也要更新
 		var activityName string
 		var activityName string
-		if len(nameSlice) > 1 || vAct.JmcjRoadshowTitle != "" {
-			if vAct.JmcjRoadshowTitle != "" {
-				activityName = vAct.JmcjRoadshowTitle
-			} else {
-				activityName = nameSlice[len(nameSlice)-1]
-			}
+		if len(nameSlice) > 1 {
+			//if vAct.JmcjRoadshowTitle != "" {
+			//	activityName = vAct.JmcjRoadshowTitle
+			//} else {
+			//	activityName = nameSlice[len(nameSlice)-1]
+			//}
+			activityName = nameSlice[len(nameSlice)-1]
 			if activityName != "" {
 			if activityName != "" {
-				list, err := models.GetRoadshowDataList(activityName, findStartDate, findEndDate)
+				//通过名称去找匹配的活动
+				activityDetail, _ := models.GetAddActivityInfoByTitle(activityName, findStartDate, findEndDate)
+				if activityDetail == nil {
+					continue
+				} else {
+					activityIds += strconv.Itoa(activityDetail.ActivityId) + ","
+				}
+				list, err := models.GetRoadshowDataList(roadshowTitle, findStartDate, findEndDate)
 				if err != nil {
 				if err != nil {
 					fmt.Println("GetTacticsList Err:", err.Error())
 					fmt.Println("GetTacticsList Err:", err.Error())
 					return err
 					return err
 				}
 				}
+				//fmt.Println("原来的", vAct.RoadshowTitle)
+				//fmt.Println("处理的", activityName)
 
 
 				needAddAttendanc := make([]*models.CygxActivityAttendanceDetail, 0)
 				needAddAttendanc := make([]*models.CygxActivityAttendanceDetail, 0)
-				fmt.Println("原来的", vAct.ActivityName)
-				fmt.Println("处理的", activityName)
 				var mobileStr string
 				var mobileStr string
 				if len(list) > 0 {
 				if len(list) > 0 {
 					for _, v := range list {
 					for _, v := range list {
 						if v.UserPhone != "" {
 						if v.UserPhone != "" {
 							item := new(models.CygxActivityAttendanceDetail)
 							item := new(models.CygxActivityAttendanceDetail)
-							item.ActivityId = vAct.ActivityId
+							item.ActivityId = activityDetail.ActivityId
 							item.RealName = v.UserName
 							item.RealName = v.UserName
 							item.Mobile = v.UserPhone
 							item.Mobile = v.UserPhone
 							item.CompanyName = v.Company
 							item.CompanyName = v.Company
@@ -694,13 +707,13 @@ func ActivityAttendanceDetail(cont context.Context) (err error) {
 					}
 					}
 					//fmt.Println(mobileStr)
 					//fmt.Println(mobileStr)
 					//参会记录
 					//参会记录
-					err = models.AddAttendancDetail(needAddAttendanc, vAct.ActivityId, mobileStr)
+					err = models.AddAttendancDetail(needAddAttendanc, activityDetail.ActivityId, mobileStr)
 					if err != nil {
 					if err != nil {
 						fmt.Println("AddAttendancDetail Err:", err.Error())
 						fmt.Println("AddAttendancDetail Err:", err.Error())
 						return err
 						return err
 					}
 					}
 					////处理是否限制报名
 					////处理是否限制报名
-					err = AddCygxActivityRestrictSignupByAdmin(vAct.ActivityId)
+					err = AddCygxActivityRestrictSignupByAdmin(activityDetail.ActivityId)
 					if err != nil {
 					if err != nil {
 						fmt.Println("AddCygxActivityRestrictSignupByAdmin Err:", err.Error())
 						fmt.Println("AddCygxActivityRestrictSignupByAdmin Err:", err.Error())
 						return err
 						return err
@@ -716,22 +729,119 @@ func ActivityAttendanceDetail(cont context.Context) (err error) {
 			}
 			}
 		}
 		}
 	}
 	}
-	var activityIds string
-	for _, v := range listActivity {
-		activityIds += strconv.Itoa(v.ActivityId) + ","
-	}
-	activityIds = strings.TrimRight(activityIds, ",")
 
 
-	detailList, err := models.GetActivityAttendanceDetailList(activityIds)
+	//获取需要处理的活动
+	listActivity, err := models.GetActivityListByDateTime(startDate, endDate, activityIds)
 	if err != nil {
 	if err != nil {
-		fmt.Println("GetActivityAttendanceDetailList Err:", err.Error())
+		fmt.Println("GetTacticsList Err:", err.Error())
 		return err
 		return err
 	}
 	}
-	//添加报名日志 (下载使用)
-	err = models.AddCygxActivityMeetDetailLogOnlineByList(detailList, activityIds)
-	if err != nil {
-		fmt.Println("AddCygxActivityMeetDetailLogOnline Err:", err.Error())
-		return err
+	//通过本地去找进门财经的数据
+	for _, vAct := range listActivity {
+		doTime := utils.TimeRemoveHms2(vAct.ActivityName)
+		findStartDate := doTime + " 00:00:00"
+		findEndDate := doTime + " 23:59:59"
+		var roadshowTitle string
+		nameSlice := strings.Split(vAct.ActivityName, "|")
+		//对于手动匹配到的活动数据也要更新
+		var activityName string
+		if len(nameSlice) > 1 {
+			if vAct.JmcjRoadshowTitle != "" {
+				activityName = vAct.JmcjRoadshowTitle
+			} else {
+				activityName = nameSlice[len(nameSlice)-1]
+			}
+			//fmt.Println("原来的1", vAct.ActivityName)
+			//fmt.Println("处理的2", activityName)
+			activityName = nameSlice[len(nameSlice)-1]
+			if activityName != "" {
+				list, err := models.GetRoadshowDataList(roadshowTitle, findStartDate, findEndDate)
+				if err != nil {
+					fmt.Println("GetTacticsList Err:", err.Error())
+					return err
+				}
+				needAddAttendanc := make([]*models.CygxActivityAttendanceDetail, 0)
+				var mobileStr string
+				if len(list) > 0 {
+					for _, v := range list {
+						if v.UserPhone != "" {
+							item := new(models.CygxActivityAttendanceDetail)
+							item.ActivityId = vAct.ActivityId
+							item.RealName = v.UserName
+							item.Mobile = v.UserPhone
+							item.CompanyName = v.Company
+							//item.SellerName = sellerName
+							item.FirstMeetingTime = v.FirstWatchTime
+							item.LastMeetingTime = v.LastWatchTime
+							item.Duration = utils.GetAttendanceDetailSeconds(v.JoinTime)
+							if v.JoinType == 1 {
+								item.MeetingTypeStr = "网络"
+							} else {
+								item.MeetingTypeStr = "电话"
+							}
+							item.MeetingAuthentication = v.AuthInfo
+							if v.DataType == 1 {
+								item.MeetingStatusStr = "直播"
+							} else {
+								item.MeetingStatusStr = "回放"
+							}
+							item.Position = v.Occupation
+							item.UseridEntity = v.UseridEntity
+							item.CreateTime = time.Now()
+							mobileStr += "'" + v.UserPhone + "'" + ","
+							needAddAttendanc = append(needAddAttendanc, item)
+						}
+					}
+					mobileStr = strings.TrimRight(mobileStr, ",")
+					if mobileStr == "" {
+						mobileStr = "1"
+					}
+					listUser, err := models.GetWxUserOutboundMobile(mobileStr)
+					if err != nil {
+						fmt.Println("GetWxUserOutboundMobile Err:", err.Error())
+						return err
+					}
+					for k, v := range needAddAttendanc {
+						for _, v2 := range listUser {
+							if v2.OutboundMobile == v.Mobile {
+								needAddAttendanc[k].CompanyId = v2.CompanyId
+								needAddAttendanc[k].SellerName = v2.SellerName
+								needAddAttendanc[k].CompanyName = v2.CompanyName
+								needAddAttendanc[k].IsMeetingStr = 1
+							}
+						}
+					}
+					//参会记录
+					err = models.AddAttendancDetail(needAddAttendanc, vAct.ActivityId, mobileStr)
+					if err != nil {
+						fmt.Println("AddAttendancDetail Err:", err.Error())
+						return err
+					}
+					////处理是否限制报名
+					err = AddCygxActivityRestrictSignupByAdmin(vAct.ActivityId)
+					if err != nil {
+						fmt.Println("AddCygxActivityRestrictSignupByAdmin Err:", err.Error())
+						return err
+					}
+					activityIds += strconv.Itoa(vAct.ActivityId) + ","
+				}
+			}
+		}
+	}
+
+	activityIds = strings.TrimRight(activityIds, ",")
+	if activityIds != "" {
+		detailList, err := models.GetActivityAttendanceDetailList(activityIds)
+		if err != nil {
+			fmt.Println("GetActivityAttendanceDetailList Err:", err.Error())
+			return err
+		}
+		//添加报名日志 (下载使用)
+		err = models.AddCygxActivityMeetDetailLogOnlineByList(detailList, activityIds)
+		if err != nil {
+			fmt.Println("AddCygxActivityMeetDetailLogOnline Err:", err.Error())
+			return err
+		}
 	}
 	}
 	fmt.Println("结束路演同步")
 	fmt.Println("结束路演同步")
 	return
 	return

+ 25 - 0
services/task.go

@@ -286,3 +286,28 @@ func GetAddpArticle() {
 func SynchronizationArthistory() {
 func SynchronizationArthistory() {
 	go SynchronizationArtclehistory()
 	go SynchronizationArtclehistory()
 }
 }
+
+//func init() {
+//
+//	var newActivityName string
+//	list, err := models.GetActivityList()
+//	if err != nil {
+//		fmt.Println(err)
+//	}
+//	for _, v := range list {
+//
+//		fmt.Println("原来的", v.ActivityName)
+//		newActivityName = v.ActivityName
+//		newActivityName = strings.Replace(newActivityName, "【", "", -1)
+//		newActivityName = strings.Replace(newActivityName, "】", "", -1)
+//		newActivityName = strings.Replace(newActivityName, "-", "", -1)
+//		newActivityName = strings.Replace(newActivityName, "—", "", -1)
+//		newActivityName = strings.Replace(newActivityName, " ", "", -1)
+//		newActivityName = strings.Replace(newActivityName, ":", "", -1)
+//		fmt.Println("处理的", newActivityName)
+//		err = models.UpdateCygxActivityName(v.ActivityId, newActivityName)
+//		if err != nil {
+//			fmt.Println(err)
+//		}
+//	}
+//}