|
@@ -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
|
|
|
+}
|