Browse Source

no message

xingzai 1 year ago
parent
commit
53328e0ebe
4 changed files with 120 additions and 62 deletions
  1. 1 1
      models/activity_signup.go
  2. 1 1
      services/task.go
  3. 79 29
      services/yidong.go
  4. 39 31
      utils/common.go

+ 1 - 1
models/activity_signup.go

@@ -596,7 +596,7 @@ func UpdateCygxActivitySignupisMeetList(condition string, pars []interface{}) (e
 // GetCygxCygxActivitySignupList 获取报名列表信息
 func GetActivitySignupList(condition string, pars []interface{}) (items []*CygxActivitySignup, err error) {
 	sql := `SELECT
-			signup_type,activity_id
+			*
 		FROM
 			cygx_activity_signup AS v
 		WHERE

+ 1 - 1
services/task.go

@@ -46,7 +46,7 @@ func Task() {
 		getYiDongActivity := task.NewTask("getYiDongActivity", "0 */10 * * * *", GetYiDongActivity) //同步易董的活动信息
 		task.AddTask("getYiDongActivity", getYiDongActivity)
 
-		getYiDongActivityMeeting := task.NewTask("getYiDongActivityMeeting", "0 */10 * * * *", GetYiDongActivityMeeting) //同步易董的活动信息
+		getYiDongActivityMeeting := task.NewTask("getYiDongActivityMeeting", "0 */30 * * * *", GetYiDongActivityMeeting) //同步易董的活动信息
 		task.AddTask("getYiDongActivityMeeting", getYiDongActivityMeeting)
 
 		yiDongSignAppointmentsForThird := task.NewTask("yiDongSignAppointmentsForThird", "0 */10 * * * *", YiDongSignAppointmentsForThird) //会前一小时将,报名信息同步到易董

+ 79 - 29
services/yidong.go

@@ -542,47 +542,27 @@ func GetActivityTextTime(timeYidong string) (timeText string) {
 	return
 }
 
-func init232() {
-	//YidongActivityGroup("美团", 1623)
-	//GetYiDongActivityMeeting()
-	//GetYiDongActivity()
-	//var timeText string
-	//strTime := "2022-08-18 12:34:00"
-	//startTime := utils.StrTimeToTime(strTime)
-	//week := utils.StrDateTimeToWeek(strTime)
-	//timeStrYmd := startTime.Format(utils.FormatDate)
-	//timeStrHmm := startTime.Format(utils.FormatTime)
-	//timeYmd := utils.StrTimeToTime(timeStrYmd + " 12:00:00") //拼接当天中午12点的时间
-	//var amOrPm string
-	//if startTime.After(timeYmd) {
-	//	amOrPm = " PM"
-	//} else {
-	//	amOrPm = " AM"
-	//}
-	//timeText = timeStrYmd + "(" + week + ")" + timeStrHmm
-	//fmt.Println(week)
-	//fmt.Println(amOrPm)
-	//fmt.Println(strTime)
-	//fmt.Println(timeText)
-}
+//func init() {
+//	GetYiDongActivityMeeting()
+//}
 
 // GetYiDongActivityMeeting获取易董到会详情
 func GetYiDongActivityMeeting(cont context.Context) (err error) {
 	//func GetYiDongActivityMeeting() (err error) {
 	var condition string
-
-	startDate := time.Now().AddDate(0, 0, -2).Format(utils.FormatDateTime)
+	startDate := time.Now().AddDate(0, 0, -1).Format(utils.FormatDateTime)
 	endDate := time.Now().Add(-time.Minute * 120).Format(utils.FormatDateTime)
 	condition += ` AND   activity_time > ` + "'" + startDate + "'"
 	condition += ` AND  activity_time < ` + "'" + endDate + "'"
 	//fmt.Println(startDate)
-	//fmt.Println(endDate)
-	condition = ` `
+
 	artivityListYidong, err := models.GetActivityListByYidong(condition)
 	if err != nil {
 		fmt.Println("GetActivityListByYidong Err:", err.Error())
 		return err
 	}
+	//fmt.Println(artivityListYidong)
+	//return
 	//fmt.Println("artivityListYidong", artivityListYidong)
 	//return err
 	if len(artivityListYidong) == 0 {
@@ -646,6 +626,8 @@ func GetYiDongActivityMeeting(cont context.Context) (err error) {
 			return err
 		}
 		var mobiles []string
+		var mobileStr string
+		mapActivityAttendanceDetail := make(map[string]*models.CygxActivityAttendanceDetail)
 		if len(ApifoxModal.Result) > 0 {
 			itemlog := new(models.CygxYidongActivityMeetingApiLog)
 			itemlog.YidongActivityId = yidongActivityId
@@ -657,7 +639,7 @@ func GetYiDongActivityMeeting(cont context.Context) (err error) {
 				return err
 			}
 			var itemsUpdate []*models.CygxActivitySignupDetail
-
+			needAddAttendanc := make([]*models.CygxActivityAttendanceDetail, 0)
 			for _, vresult := range ApifoxModal.Result {
 				if vresult.EndTime != "" {
 					mobiles = append(mobiles, vresult.PersonTelephone)
@@ -674,10 +656,14 @@ func GetYiDongActivityMeeting(cont context.Context) (err error) {
 					itemDetail.Duration = vresult.Duration
 					itemDetail.IsMeeting = 1
 					itemDetail.ActivityId = v.ActivityId
+					mapActivityAttendanceDetail[vresult.PersonTelephone] = new(models.CygxActivityAttendanceDetail)
+					mapActivityAttendanceDetail[vresult.PersonTelephone].FirstMeetingTime = vresult.StartTime
+					mapActivityAttendanceDetail[vresult.PersonTelephone].LastMeetingTime = vresult.EndTime
+					mapActivityAttendanceDetail[vresult.PersonTelephone].Duration = utils.GetAttendanceDetailSecondsByYiDong(vresult.Duration)
 					itemsUpdate = append(itemsUpdate, itemDetail)
 				}
 			}
-
+			fmt.Println(mobiles)
 			lenmobiles := len(mobiles)
 			if lenmobiles > 0 {
 				var parsYd []interface{}
@@ -694,9 +680,73 @@ func GetYiDongActivityMeeting(cont context.Context) (err error) {
 					fmt.Println("UpdateActivitySignupDetailMultiByYiDong Err:", err.Error())
 					return err
 				}
+				var condition string
+				var pars []interface{}
+				condition = ` AND do_fail_type = 0 AND mobile IN (` + utils.GetOrmInReplace(lenmobiles) + `) AND activity_id = ?`
+				pars = append(pars, mobiles, v.ActivityId)
+				listSignup, e := models.GetActivitySignupList(condition, pars)
+				if e != nil {
+					err = errors.New("GetActivitySignupList, Err: " + e.Error())
+					return err
+				}
+
+				for _, vSignup := range listSignup {
+					item := new(models.CygxActivityAttendanceDetail)
+					item.ActivityId = vSignup.ActivityId
+					item.RealName = vSignup.RealName
+					item.Mobile = vSignup.Mobile
+					item.CompanyName = vSignup.CompanyName
+					if mapActivityAttendanceDetail[vSignup.Mobile] != nil {
+						item.FirstMeetingTime = mapActivityAttendanceDetail[vSignup.Mobile].FirstMeetingTime
+						item.LastMeetingTime = mapActivityAttendanceDetail[vSignup.Mobile].LastMeetingTime
+						item.Duration = mapActivityAttendanceDetail[vSignup.Mobile].Duration
+						item.IsMeetingStr = 1
+						mobileStr += "'" + vSignup.Mobile + "'" + ","
+					}
+					item.CreateTime = time.Now()
+					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 || 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, v.ActivityId, mobileStr)
+			if err != nil {
+				fmt.Println("AddAttendancDetail Err:", err.Error())
+				return err
+			}
+			////处理是否限制报名
+			err = AddCygxActivityRestrictSignupByAdmin(v.ActivityId)
+			if err != nil {
+				fmt.Println("AddCygxActivityRestrictSignupByAdmin Err:", err.Error())
+				return err
+			}
+
+			go AddctivitySignupDetailByJmcj(needAddAttendanc, v.ActivityId)
 		}
 	}
+
 	return
 }
 

+ 39 - 31
utils/common.go

@@ -20,7 +20,7 @@ import (
 	"time"
 )
 
-//随机数种子
+// 随机数种子
 var rnd = rand.New(rand.NewSource(time.Now().UnixNano()))
 
 func GetRandString(size int) string {
@@ -57,19 +57,19 @@ func StringsToJSON(str string) string {
 	return jsons
 }
 
-//序列化
+// 序列化
 func ToString(v interface{}) string {
 	data, _ := json.Marshal(v)
 	return string(data)
 }
 
-//md5加密
+// md5加密
 func MD5(data string) string {
 	m := md5.Sum([]byte(data))
 	return hex.EncodeToString(m[:])
 }
 
-//md5加密
+// md5加密
 func Get16MD5Encode(data string) string {
 	m := md5.Sum([]byte(data))
 	encodehex := hex.EncodeToString(m[:])
@@ -98,7 +98,7 @@ func GetToday(format string) string {
 	return today
 }
 
-//获取今天剩余秒数
+// 获取今天剩余秒数
 func GetTodayLastSecond() time.Duration {
 	today := GetToday(FormatDate) + " 23:59:59"
 	end, _ := time.ParseInLocation(FormatDateTime, today, time.Local)
@@ -120,7 +120,7 @@ func GetBrithDate(idcard string) string {
 	return GetToday(FormatDate)
 }
 
-//处理性别
+// 处理性别
 func WhichSexByIdcard(idcard string) string {
 	var sexs = [2]string{"女", "男"}
 	length := len(idcard)
@@ -134,7 +134,7 @@ func WhichSexByIdcard(idcard string) string {
 	return "男"
 }
 
-//截取小数点后几位
+// 截取小数点后几位
 func SubFloatToString(f float64, m int) string {
 	n := strconv.FormatFloat(f, 'f', -1, 64)
 	if n == "" {
@@ -153,14 +153,14 @@ func SubFloatToString(f float64, m int) string {
 	return newn[0] + "." + newn[1][:m]
 }
 
-//截取小数点后几位
+// 截取小数点后几位
 func SubFloatToFloat(f float64, m int) float64 {
 	newn := SubFloatToString(f, m)
 	newf, _ := strconv.ParseFloat(newn, 64)
 	return newf
 }
 
-//获取相差时间-年
+// 获取相差时间-年
 func GetYearDiffer(start_time, end_time string) int {
 	t1, _ := time.ParseInLocation("2006-01-02", start_time, time.Local)
 	t2, _ := time.ParseInLocation("2006-01-02", end_time, time.Local)
@@ -171,7 +171,7 @@ func GetYearDiffer(start_time, end_time string) int {
 	return age
 }
 
-//获取相差时间-秒
+// 获取相差时间-秒
 func GetSecondDifferByTime(start_time, end_time time.Time) int64 {
 	diff := end_time.Unix() - start_time.Unix()
 	return diff
@@ -198,7 +198,7 @@ func StrListToString(strList []string) (str string) {
 	return ""
 }
 
-//Token
+// Token
 func GetToken() string {
 	randStr := GetRandString(64)
 	token := MD5(randStr + Md5Key)
@@ -206,42 +206,42 @@ func GetToken() string {
 	return strings.ToUpper(token + GetRandString(tokenLen))
 }
 
-//数据没有记录
+// 数据没有记录
 func ErrNoRow() string {
 	return "<QuerySeter> no row found"
 }
 
-//校验邮箱格式
+// 校验邮箱格式
 func ValidateEmailFormatat(email string) bool {
 	reg := regexp.MustCompile(RegularEmail)
 	return reg.MatchString(email)
 }
 
-//验证是否是手机号
+// 验证是否是手机号
 func ValidateMobileFormatat(mobileNum string) bool {
 	reg := regexp.MustCompile(RegularMobile)
 	return reg.MatchString(mobileNum)
 }
 
-//验证是否是固定电话
+// 验证是否是固定电话
 func ValidateFixedTelephoneFormatat(mobileNum string) bool {
 	reg := regexp.MustCompile(RegularFixedTelephone)
 	return reg.MatchString(mobileNum)
 }
 
-//验证是否是固定电话宽松
+// 验证是否是固定电话宽松
 func ValidateFixedTelephoneFormatatEasy(mobileNum string) bool {
 	reg := regexp.MustCompile(RegularFixedTelephoneEasy)
 	return reg.MatchString(mobileNum)
 }
 
-//判断文件是否存在
+// 判断文件是否存在
 func FileIsExist(filePath string) bool {
 	_, err := os.Stat(filePath)
 	return err == nil || os.IsExist(err)
 }
 
-//获取图片扩展名
+// 获取图片扩展名
 func GetImgExt(file string) (ext string, err error) {
 	var headerByte []byte
 	headerByte = make([]byte, 8)
@@ -284,7 +284,7 @@ func GetImgExt(file string) (ext string, err error) {
 	return ext, nil
 }
 
-//保存图片
+// 保存图片
 func SaveImage(path string, img image.Image) (err error) {
 	//需要保持的文件
 	imgfile, err := os.Create(path)
@@ -294,7 +294,7 @@ func SaveImage(path string, img image.Image) (err error) {
 	return err
 }
 
-//保存base64数据为文件
+// 保存base64数据为文件
 func SaveBase64ToFile(content, path string) error {
 	data, err := base64.StdEncoding.DecodeString(content)
 	if err != nil {
@@ -424,7 +424,7 @@ func GetWilsonScore(p, n float64) float64 {
 	return toFixed(((p+1.9208)/(p+n)-1.96*math.Sqrt(p*n/(p+n)+0.9604)/(p+n))/(1+3.8416/(p+n)), 2)
 }
 
-//将中文数字转化成数字,比如 第三百四十五章,返回第345章 不支持一亿及以上
+// 将中文数字转化成数字,比如 第三百四十五章,返回第345章 不支持一亿及以上
 func ChangeWordsToNum(str string) (numStr string) {
 	words := ([]rune)(str)
 	num := 0
@@ -571,7 +571,7 @@ func ConvertToFormatDay(excelDaysString string) string {
 	return resultTime
 }
 
-//字符串转换为time
+// 字符串转换为time
 func StrTimeToTime(strTime string) time.Time {
 	timeLayout := "2006-01-02 15:04:05"  //转化所需模板
 	loc, _ := time.LoadLocation("Local") //重要:获取时区
@@ -579,7 +579,7 @@ func StrTimeToTime(strTime string) time.Time {
 	return resultTime
 }
 
-//时间格式去掉时分秒
+// 时间格式去掉时分秒
 func TimeRemoveHms(strTime string) string {
 	var Ymd string
 	var resultTime = StrTimeToTime(strTime)
@@ -594,7 +594,7 @@ func TimeRemoveHms(strTime string) string {
 	return Ymd
 }
 
-//时间格式去掉时分秒
+// 时间格式去掉时分秒
 func TimeRemoveHms2(strTime string) string {
 	var Ymd string
 	var resultTime = StrTimeToTime(strTime)
@@ -609,7 +609,7 @@ func TimeRemoveHms2(strTime string) string {
 	return Ymd
 }
 
-//判断时间是当年的第几周
+// 判断时间是当年的第几周
 func WeekByDate(t time.Time) string {
 	var resultSAtr string
 	//t = t.AddDate(0, 0, -8) // 减少八天跟老数据标题统一
@@ -650,7 +650,7 @@ func Mp3Time(videoPlaySeconds string) string {
 	return timeStr
 }
 
-//用户参会时间转换
+// 用户参会时间转换
 func GetAttendanceDetailSeconds(secondNum int) string {
 	var timeStr string
 	if secondNum <= 60 {
@@ -677,6 +677,14 @@ func GetAttendanceDetailSeconds(secondNum int) string {
 	return timeStr
 }
 
+// 用户参会时间转换
+func GetAttendanceDetailSecondsByYiDong(str string) string {
+	var timeStr string
+	timeStr = strings.Replace(str, ":", "'", -1)
+	timeStr += "''"
+	return timeStr
+}
+
 // GetOrmInReplace 获取orm的in查询替换?的方法
 func GetOrmInReplace(num int) string {
 	template := make([]string, num)
@@ -707,7 +715,7 @@ func GetLocalIP() (ip string, err error) {
 	return
 }
 
-//字符串类型时间转周几
+// 字符串类型时间转周几
 func StrDateTimeToWeek(strTime string) string {
 	var WeekDayMap = map[string]string{
 		"Monday":    "周一",
@@ -724,7 +732,7 @@ func StrDateTimeToWeek(strTime string) string {
 	return WeekDayMap[staweek_int]
 }
 
-//ReplaceSpaceAndWrap 去除空格跟换行
+// ReplaceSpaceAndWrap 去除空格跟换行
 func ReplaceSpaceAndWrap(str string) string {
 	// 去除空格
 	str = strings.Replace(str, " ", "", -1)
@@ -813,10 +821,10 @@ func GetLastMonthLastDay() time.Time {
 	return nowMonthLastDay
 }
 
-//字符串转换为time
+// 字符串转换为time
 func StrDateToTime(strTime string) time.Time {
-	timeLayout := "2006-01-02"  //转化所需模板
+	timeLayout := "2006-01-02"           //转化所需模板
 	loc, _ := time.LoadLocation("Local") //重要:获取时区
 	resultTime, _ := time.ParseInLocation(timeLayout, strTime, loc)
 	return resultTime
-}
+}