|
@@ -1729,298 +1729,6 @@ func LabelStrV5(label string, isShowSubjectName int, temporaryLabel string) (lab
|
|
|
return labelNew
|
|
|
}
|
|
|
|
|
|
-func ActivityAttendanceDetail(cont context.Context) (err error) {
|
|
|
- defer func() {
|
|
|
- if err != nil {
|
|
|
- fmt.Println("ActivityAttendanceDetail Err:" + err.Error())
|
|
|
- go utils.SendAlarmMsg("同步进门财经数据失败", 2)
|
|
|
- go utils.SendEmail(utils.APPNAME+"【"+utils.RunMode+"】"+"失败提醒", "ActivityAttendanceDetail ErrMsg:"+err.Error(), utils.EmailSendToUsers)
|
|
|
- }
|
|
|
- }()
|
|
|
-
|
|
|
- configCode := "jin_meng_activity_id"
|
|
|
- detail, err := models.GetConfigByCode(configCode)
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- fmt.Println(detail.ConfigValue)
|
|
|
- mapActivityId := make(map[string]string)
|
|
|
- sliceValue := strings.Split(detail.ConfigValue, ",")
|
|
|
- for _, v := range sliceValue {
|
|
|
- mapActivityId[v] = v
|
|
|
- }
|
|
|
-
|
|
|
- var activityIds string
|
|
|
- var activityIdsLongTime string //可回放的会议,到会详情持续更新加入到不做14天限制的活动中
|
|
|
- fmt.Println("开始同步")
|
|
|
- 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"
|
|
|
- //获取进门财经需要处理的活动
|
|
|
- listActivityRoadshow, err := models.GetRoadshowDataListByDateTime(startDate, endDate)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetRoadshowDataListByDateTime Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- for _, vAct := range listActivityRoadshow {
|
|
|
- doTime := utils.TimeRemoveHms2(vAct.RoadshowBeginTime)
|
|
|
- findStartDate := doTime + " 00:00:00"
|
|
|
- findEndDate := doTime + " 23:59:59"
|
|
|
- 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])
|
|
|
- //对于手动匹配到的活动数据也要更新
|
|
|
- var activityName string
|
|
|
- if len(nameSlice) >= 1 {
|
|
|
- //if vAct.JmcjRoadshowTitle != "" {
|
|
|
- // activityName = vAct.JmcjRoadshowTitle
|
|
|
- //} else {
|
|
|
- // activityName = nameSlice[len(nameSlice)-1]
|
|
|
- //}
|
|
|
- activityName = nameSlice[len(nameSlice)-1]
|
|
|
- if activityName != "" {
|
|
|
- //通过名称去找匹配的活动
|
|
|
- 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 {
|
|
|
- fmt.Println("GetTacticsList Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- var isPlayback bool // 是否包含回放
|
|
|
- needAddAttendanc := make([]*models.CygxActivityAttendanceDetail, 0)
|
|
|
- var mobileStr string
|
|
|
- var mobileArr []string
|
|
|
- if len(list) > 0 {
|
|
|
- fmt.Println("原来的", vAct.RoadshowTitle)
|
|
|
- fmt.Println("处理的", activityName)
|
|
|
- for _, v := range list {
|
|
|
- if v.UserPhone != "" {
|
|
|
- item := new(models.CygxActivityAttendanceDetail)
|
|
|
- item.ActivityId = activityDetail.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 = "回放"
|
|
|
- isPlayback = true
|
|
|
- }
|
|
|
- item.Position = v.Occupation
|
|
|
- item.UseridEntity = v.UseridEntity
|
|
|
- item.ActivityTime = activityDetail.ActivityTime
|
|
|
- item.CrmCompanyMapStatusId = v.CrmCompanyMapStatusId
|
|
|
- item.CreateTime = time.Now()
|
|
|
- mobileStr += "'" + v.UserPhone + "'" + ","
|
|
|
- mobileArr = append(mobileArr, v.UserPhone)
|
|
|
- needAddAttendanc = append(needAddAttendanc, item)
|
|
|
- }
|
|
|
- }
|
|
|
- if isPlayback && mapActivityId[strconv.Itoa(activityDetail.ActivityId)] == "" {
|
|
|
- activityIdsLongTime += strconv.Itoa(activityDetail.ActivityId) + ","
|
|
|
- }
|
|
|
- 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 || v2.Mobile == v.Mobile {
|
|
|
- if needAddAttendanc[k].CompanyId == 0 {
|
|
|
- needAddAttendanc[k].CompanyId = v2.CompanyId
|
|
|
- needAddAttendanc[k].SellerName = v2.SellerName
|
|
|
- needAddAttendanc[k].CompanyName = v2.CompanyName
|
|
|
- needAddAttendanc[k].IsMeetingStr = 1
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //fmt.Println(mobileStr)
|
|
|
- //参会记录
|
|
|
- err = models.AddAttendancDetail(needAddAttendanc, activityDetail.ActivityId, mobileStr)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("AddAttendancDetail Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- ////处理是否限制报名
|
|
|
- err = AddCygxActivityRestrictSignupByAdmin(activityDetail.ActivityId)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("AddCygxActivityRestrictSignupByAdmin Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- go ActivityUserLabelLogAdd(activityDetail.ActivityId, mobileArr)
|
|
|
-
|
|
|
- AddctivitySignupDetailByJmcj(needAddAttendanc, activityDetail.ActivityId)
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //获取需要处理的活动
|
|
|
- listActivity, err := models.GetActivityListByDateTime(startDate, endDate, activityIds, detail.ConfigValue)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetTacticsList Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- //通过本地去找进门财经的数据
|
|
|
- for _, vAct := range listActivity {
|
|
|
- doTime := utils.TimeRemoveHms2(vAct.ActivityTime)
|
|
|
- findStartDate := doTime + " 00:00:00"
|
|
|
- findEndDate := doTime + " 23:59:59"
|
|
|
- nameSlice := strings.Split(vAct.ActivityName, "】")
|
|
|
- //对于手动匹配到的活动数据也要更新
|
|
|
- var activityName string
|
|
|
- if len(nameSlice) > 1 {
|
|
|
- if vAct.JmcjRoadshowTitle != "" {
|
|
|
- activityName = vAct.JmcjRoadshowTitle
|
|
|
- } else {
|
|
|
- activityName = nameSlice[len(nameSlice)-1]
|
|
|
- }
|
|
|
- //activityName = nameSlice[len(nameSlice)-1]
|
|
|
- if activityName != "" {
|
|
|
- list, err := models.GetRoadshowDataList(activityName, findStartDate, findEndDate)
|
|
|
- if err != nil {
|
|
|
- fmt.Println("GetTacticsList Err:", err.Error())
|
|
|
- return err
|
|
|
- }
|
|
|
- var isPlayback bool // 是否包含回放
|
|
|
- needAddAttendanc := make([]*models.CygxActivityAttendanceDetail, 0)
|
|
|
- var mobileStr string
|
|
|
- var mobileArr []string
|
|
|
- if len(list) > 0 {
|
|
|
- fmt.Println("原来的1", vAct.ActivityName)
|
|
|
- fmt.Println("处理的2", activityName)
|
|
|
- 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 = "回放"
|
|
|
- isPlayback = true
|
|
|
- }
|
|
|
- item.Position = v.Occupation
|
|
|
- item.UseridEntity = v.UseridEntity
|
|
|
- item.ActivityTime = vAct.ActivityTime
|
|
|
- item.CrmCompanyMapStatusId = v.CrmCompanyMapStatusId
|
|
|
- item.CreateTime = time.Now()
|
|
|
- mobileStr += "'" + v.UserPhone + "'" + ","
|
|
|
- mobileArr = append(mobileArr, v.UserPhone)
|
|
|
- needAddAttendanc = append(needAddAttendanc, item)
|
|
|
- }
|
|
|
- }
|
|
|
- if isPlayback && mapActivityId[strconv.Itoa(vAct.ActivityId)] == "" {
|
|
|
- activityIdsLongTime += strconv.Itoa(vAct.ActivityId) + ","
|
|
|
- }
|
|
|
- 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 || v2.Mobile == v.Mobile {
|
|
|
- if needAddAttendanc[k].CompanyId == 0 {
|
|
|
- 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) + ","
|
|
|
-
|
|
|
- go ActivityUserLabelLogAdd(vAct.ActivityId, mobileArr)
|
|
|
- AddctivitySignupDetailByJmcj(needAddAttendanc, vAct.ActivityId)
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if activityIdsLongTime != "" {
|
|
|
- activityIdsLongTime = strings.TrimRight(activityIdsLongTime, ",")
|
|
|
- activityIdsLongTime = detail.ConfigValue + "," + activityIdsLongTime
|
|
|
- go models.UpdateConfigByCode(activityIdsLongTime, configCode)
|
|
|
- }
|
|
|
-
|
|
|
- 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("结束路演同步")
|
|
|
- return
|
|
|
-}
|
|
|
-
|
|
|
// 查研观向处理活动用户限制报名
|
|
|
func AddCygxActivityRestrictSignupByAdmin(activityId int) (err error) {
|
|
|
defer func() {
|