Browse Source

no message

xingzai 1 year ago
parent
commit
bf54428d8a
2 changed files with 124 additions and 1 deletions
  1. 2 1
      controllers/cygx/activity_meet.go
  2. 122 0
      services/cygx/activity_meet.go

+ 2 - 1
controllers/cygx/activity_meet.go

@@ -1788,7 +1788,8 @@ func (this *ActivityMeetCoAntroller) MatchingByHand() {
 			}
 			go cygxService.AddCygxActivityRestrictSignupByAdmin(activityId)
 			go cygx.AddCygxActivityMeetDetailLogOnline(needAddAttendanc, activityId)
-			go cygxService.ActivityUserLabelLogAdd(activityId, userIdArr)
+			go cygxService.ActivityUserLabelLogAdd(activityId, userIdArr)                 //添加用户活动到会标签到Redis
+			go cygxService.AddctivitySignupDetailListByHand(needAddAttendanc, activityId) //手动匹配进门财经信息
 		} else {
 			br.Msg = "手动归类失败"
 			br.ErrMsg = "暂未找到匹配数据!"

+ 122 - 0
services/cygx/activity_meet.go

@@ -3,6 +3,7 @@ package cygx
 import (
 	"errors"
 	"fmt"
+	"hongze/hz_crm_api/models"
 	"hongze/hz_crm_api/models/cygx"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
@@ -225,3 +226,124 @@ func AddctivitySignupDetailList(itemsDetail []*cygx.CygxActivitySignupDetail, ac
 
 	return err
 }
+
+// AddctivitySignupDetailListByHand 手动匹配进门财经信息
+func AddctivitySignupDetailListByHand(itemsDetail []*cygx.CygxActivityAttendanceDetail, activityId int) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go alarm_msg.SendAlarmMsg("通过进门财经添加用户参数信息失败 ErrMsg:"+err.Error(), 2)
+		}
+	}()
+
+	activityIds := make([]int, 0)
+	activityIds = append(activityIds, activityId)
+	actLen := len(activityIds)
+	var condition string
+	var pars []interface{}
+	if actLen > 0 {
+		condition += ` AND activity_id IN (` + utils.GetOrmInReplace(actLen) + `)`
+		pars = append(pars, activityIds)
+	}
+
+	signUpDetailList, err := cygx.GetSignupDetailList(condition, pars)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+
+	mapsignUpDetai := make(map[string]string)
+	if len(signUpDetailList) > 0 {
+		for _, v := range signUpDetailList {
+			mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", v.Mobile)] = v.Mobile
+		}
+	}
+
+	//获取当天已经结束了 活动的报名人数
+	signUpList, err := cygx.GetSignupDetailBySignup(condition, pars)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	//建立外呼号与手机号的绑定
+	mapsignUp := make(map[string]string)
+	if len(signUpList) > 0 {
+		for _, v := range signUpList {
+			mapsignUp[fmt.Sprint(v.OutboundMobile)] = v.Mobile
+		}
+	}
+
+	var itemsAdd []*cygx.CygxActivitySignupDetail
+	var itemsUpdate []*cygx.CygxActivitySignupDetail
+
+	var mobiles []string
+	mobileMap := make(map[string]bool)
+	mobileUserMap := make(map[string]int)
+	for _, v := range itemsDetail {
+		if !mobileMap[v.Mobile] {
+			mobiles = append(mobiles, v.Mobile)
+		}
+		mobileMap[v.Mobile] = true
+	}
+
+	//根据手机号获取这些用户的信息
+	listUser, e := models.GetWxUserByOutboundMobiles(mobiles)
+	if e != nil {
+		err = errors.New("GetWxUserOutboundMobiles, Err: " + e.Error())
+		return
+	}
+
+	for _, v := range listUser {
+		mobileUserMap[v.Mobile] = int(v.UserId)
+	}
+
+	for _, v := range itemsDetail {
+		var item = new(cygx.CygxActivitySignupDetail)
+		item.ActivityId = v.ActivityId
+		//item.RealName = v.RealName
+		//如果手机号存在那么就是报名的,不存在就是直接参与的
+		if _, ok := mapsignUp[v.Mobile]; ok {
+			item.Mobile = mapsignUp[v.Mobile]
+		} else {
+			item.Mobile = v.Mobile
+		}
+		item.UserId = mobileUserMap[v.Mobile]
+		item.RealName = v.RealName
+		item.OutboundMobile = v.Mobile
+		item.CompanyName = v.CompanyName
+		item.CompanyId = v.CompanyId
+		item.SellerName = v.SellerName
+		item.FirstMeetingTime = v.FirstMeetingTime
+		item.LastMeetingTime = v.LastMeetingTime
+		item.Duration = v.Duration
+		item.MeetingTypeStr = v.MeetingTypeStr
+		item.MeetingAuthentication = v.MeetingAuthentication
+		item.MeetingStatusStr = v.MeetingStatusStr
+		item.CreateTime = v.CreateTime
+		item.Position = v.Position
+		item.IsMeeting = 1
+		item.UseridEntity = v.UseridEntity
+		item.ActivityTime = v.ActivityTime
+		item.CrmCompanyMapStatusId = v.CrmCompanyMapStatusId
+
+		if _, ok := mapsignUpDetai[fmt.Sprint("ActivityId", v.ActivityId, "Mobile", item.Mobile)]; !ok {
+			itemsAdd = append(itemsAdd, item)
+		} else {
+			itemsUpdate = append(itemsUpdate, item)
+		}
+	}
+	//return err
+	if len(itemsAdd) > 0 {
+		err = cygx.AddCygxActivitySignupDetail(itemsAdd)
+		if err != nil {
+			return
+		}
+	}
+
+	if len(itemsUpdate) > 0 {
+		err = cygx.UpdateActivitySignupDetailMulti(itemsUpdate)
+		if err != nil {
+			return
+		}
+	}
+
+	return err
+}