Browse Source

fix:全时会议同步,移除只同步一次的限制

Roc 2 years ago
parent
commit
be6ef8ca74
2 changed files with 35 additions and 4 deletions
  1. 8 0
      models/tables/qs_event_user/qs_event_user.go
  2. 27 4
      services/yb/activity.go

+ 8 - 0
models/tables/qs_event_user/qs_event_user.go

@@ -59,3 +59,11 @@ func GetQsUserList(condition string, pars []interface{}, startSize, pageSize int
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
 	return
 }
+
+// GetQsEventUserByQsId 根据全时会议的数据id和手机号获取记录
+func GetQsEventUserByQsId(qsId int, mobile string) (item *QsEventUser, err error) {
+	o := orm.NewOrm()
+	sql := "select * from qs_event_user where qs_id = ? and mobile=? "
+	err = o.Raw(sql, qsId, mobile).QueryRow(&item)
+	return
+}

+ 27 - 4
services/yb/activity.go

@@ -8,21 +8,35 @@ import (
 	"hongze/hongze_open_api/models/tables/qs_event_user"
 	"hongze/hongze_open_api/models/tables/user_view_statistics"
 	"hongze/hongze_open_api/models/tables/wx_user"
+	"hongze/hongze_open_api/services/alarm_msg"
 	"hongze/hongze_open_api/services/quanshi"
+	"hongze/hongze_open_api/utils"
 	"strings"
 	"time"
 )
 
 // SyncUser 用户同步
 func SyncUser(qsEventId int) (err error) {
+	errMsgList := make([]string, 0)
+	defer func() {
+		if err != nil {
+			errMsgList = append(errMsgList, err.Error())
+		}
+		if len(errMsgList) > 0 {
+			//for _, v := range errMsgList {
+			//	fmt.Println(v)
+			//}
+			go alarm_msg.SendAlarmMsg("同步全时会议参会人员数据失败:"+strings.Join(errMsgList, "/n"), 3)
+		}
+	}()
 	qsEventInfo, err := qs_event.GetQsEventByQsEventId(qsEventId)
 	if err != nil {
 		return
 	}
 
-	if qsEventInfo.IsSync == 1 {
-		return
-	}
+	//if qsEventInfo.IsSync == 1 {
+	//	return
+	//}
 	//获取全时的参会人员信息
 	qsData, err := quanshi.QsEventReportSummary(qsEventId)
 	if err != nil {
@@ -42,6 +56,15 @@ func SyncUser(qsEventId int) (err error) {
 			if v.Mobile == "" { //如果手机号为空,那么就不处理了,进入下一个循环
 				continue
 			}
+			tmpQsEventUser, tmpErr := qs_event_user.GetQsEventUserByQsId(qsEventInfo.QsId, v.Mobile)
+			if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
+				errMsgList = append(errMsgList, fmt.Sprintf("路演id:%d,用户手机号:%s,会议用户入库失败,err:%s", qsEventInfo.QsId, v.Mobile, err.Error()))
+				continue
+			}
+			// 如果已经有数据了,那么不需要再处理了
+			if tmpQsEventUser != nil {
+				continue
+			}
 			people++
 			mobile := v.Mobile
 			trimMobile := mobile
@@ -149,7 +172,7 @@ func SyncUser(qsEventId int) (err error) {
 
 	qsEventInfo.IsSync = 1
 	qsEventInfo.QsStatus = 2
-	qsEventInfo.People = people
+	qsEventInfo.People = qsEventInfo.People + people
 	err = qsEventInfo.Update([]string{"IsSync", "QsStatus", "People"})
 	return
 }