package cygx import ( "errors" "hongze/hz_crm_api/models/cygx" "hongze/hz_crm_api/utils" "strconv" "strings" "time" ) //处理OCR识别图片建会的逻辑 //星期日 Sunday=Sun. 读音:英[ˈsʌndeɪ]美[ˈsʌnˌdeɪ] // //星期一 Monday=Mon. 读音:英[ˈmʌndeɪ]美[ˈmʌndeɪ] // //星期二 Tuesday=Tues. 读音:英[ˈtju:zdeɪ]美[ˈtu:zdeɪ] // //星期三 Wednesday=Wed. 读音:英[ˈwenzdeɪ]美[ˈwɛnzdi, -ˌde] // //星期四 Thursday=Thur./Thurs. 读音:英[ˈθɜ:zdeɪ]美[ˈθɜ:rzdeɪ] // //星期五 Friday=Fri. 读音:英[ˈfraɪdeɪ]美[ˈfraɪˌdeɪ] // //星期六 Saturday=Sat. 读音: 英[ˈsætədeɪ]美[ˈsætərdeɪ] // 处理年月日格式 func ConvertActivityTitmeYMD(TitmeYMD string) (titmeYMDNew string) { titmeYMDNew = TitmeYMD titmeYMDNew = strings.Replace(titmeYMDNew, "/", "月", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "SUN", "日(周日)", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "MON", "日(周一)", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "TUE", "日(周二)", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "WED", "日(周三)", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "THU", "日(周四)", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "FRI", "日(周五)", -1) //titmeYMDNew = strings.Replace(titmeYMDNew, "SAT", "日(周六)", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "SUN", "日", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "MON", "日", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "TUE", "日", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "WED", "日", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "THU", "日", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "FRI", "日", -1) titmeYMDNew = strings.Replace(titmeYMDNew, "SAT", "日", -1) titmeYMDNew = strconv.Itoa(time.Now().Year()) + "年" + titmeYMDNew return } // 处理时分PM格式 func ConvertActivityTitmeHM(titmeHM string) (titmeHMNew string) { titmeHMNew = titmeHM //var hNum int var amOrPm string if strings.Contains(titmeHM, "PM") { //hNum = 12 amOrPm = "PM" } else { amOrPm = "AM" } titmeHM = strings.Replace(titmeHM, "AM", "", -1) titmeHM = strings.Replace(titmeHM, "PM", "", -1) sliceHm := strings.Split(titmeHM, ":") if len(sliceHm) != 2 { return } hourNum, _ := strconv.Atoi(sliceHm[0]) minute := sliceHm[1] titmeHMNew = strconv.Itoa(hourNum) + ":" + minute + " " + amOrPm return } // 活动内容模版 var ActivityOcrTemplate = "

【小范围公司线上交流】{{COMPANY}}

时间:{{TIME}}

嘉宾:IR

主持人:IR

链接参会:(会前一天下午更新)

备注:

1、请先报名,我们将于会议前一天提供【Webex】入会链接(可电话拨入or网络端参会);

2、会议语言:{{LANGUAGE}};

3、本场会议报名截止时间为会议开始前一天下午3点半;

4、本次会议扣0.5次研选服务点。

" func MakeActivityReqText(list []*cygx.AliyunOcrTextActivityResp) (req cygx.ActivityRep, err error, errMsg string) { for _, v := range list { ActivityOcrTmp := ActivityOcrTemplate sliceCompany := strings.Split(v.Company, "(") company := sliceCompany[0] //company := v.Company ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{COMPANY}}", v.Company, -1) v.TitmeYMD = strings.Replace(v.TitmeYMD, "年", "-", -1) v.TitmeYMD = strings.Replace(v.TitmeYMD, "月", "-", -1) v.TitmeYMD = strings.Replace(v.TitmeYMD, "日", "", -1) weeknum := utils.StrDateTimeToWeek(v.TitmeYMD + " 00:00:00") havePm := strings.Contains(v.TitmeHM, "PM") var activityTime string activityTime = strings.Replace(v.TitmeHM, " ", "", -1) activityTime = strings.Replace(activityTime, "AM", "", -1) activityTime = strings.Replace(activityTime, "PM", "", -1) activityTime = v.TitmeYMD + " " + activityTime + ":00" resultTime := utils.StrTimeToTime(activityTime) var amOrPm string if havePm { //前端传过来的是 2:00PM 这里转成 14:00 PM slicePm := strings.Split(v.TitmeHM, ":") for sk, sv := range slicePm { // 如果是中午 12:30 PM 就不做任何处理 if sk == 0 && sv != "12" { resultTime = resultTime.Add(12 * time.Hour) activityTime = resultTime.Format(utils.FormatDateTime) } } amOrPm = "PM" } else { amOrPm = "AM" } var condition string var pars []interface{} condition = " AND activity_type_id = 3 AND activity_time = ? AND temporary_label = ? " pars = append(pars, activityTime, company) total, e := cygx.GetActivityCount(condition, pars) if e != nil { err = errors.New("GetActivityCount,Err" + e.Error()) return } if total > 0 { errMsg = "相同时段已存在对应活动" return } ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{TIME}}", v.TitmeYMD+"("+weeknum+")"+resultTime.Format(utils.FormatTimeHm)+amOrPm, -1) if !utils.CheckStrHaveLetter(company) { ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{LANGUAGE}}", "中文", -1) } else { ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{LANGUAGE}}", "英文", -1) } req.Body += ActivityOcrTmp + "
" //分隔符标签 label := new(cygx.ActivityGroupIndustrialRep) label.TemporaryLabel = company req.List = append(req.List, label) } //初始化相关活动参数信息 req.Body = strings.TrimRight(req.Body, "
") req.DoType = 1 req.ActivityTypeId = 3 req.PermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN req.CustomerTypeIds = "1,2,8,10,3,9,5,6,7" req.IsAllCustomerType = 1 req.LimitPeopleNum = 10 req.LabelType = 1 req.VisibleRange = 2 req.IsResearchPoints = 1 req.IsNeedEmail = 1 req.IsShowHz = 1 //是否同时在弘则展示 1是,0否 // 研选点数 pointsSet := new(cygx.CygxActivityPointsSetRsq) pointsSet.PointsObject = "1" pointsSet.UserPointsNum = "0.5" pointsSet.PointsType = "1" pointsSet.CompanyPointsNum = "0" pointsSet.CancelDeadlineType = "1" req.PointsSet = pointsSet return } // 代码冲突了先放这里 func UpdateActivityVideoAndVoice(activityInfo *cygx.ActivityDetail, itemVoice *cygx.CygxActivityVoice, itemVideo *cygx.CygxActivityVideo) (err error) { if activityInfo.ActiveState != 3 { return // 没有结束的活动不会上传音视频 } activityId := activityInfo.ActivityId var condition string var pars []interface{} //处理音频 if itemVoice.ActivityId > 0 { condition = " AND activity_id = ? " pars = append(pars, activityId) total, e := cygx.GetCygxActivityVoiceCount(condition, pars) if e != nil { err = errors.New("GetCygxActivityVoiceCount" + e.Error()) return } //如果等于0就新增,反之就修改 if total == 0 { newId, e := cygx.AddCygxActivityVoice(itemVoice) if e != nil { err = errors.New("GetCygxActivityVoiceCount" + e.Error()) return } go UpdateResourceData(int(newId), utils.CYGX_OBJ_ACTIVITYVOICE, "add", activityInfo.ActivityTime) // 把活动音频的数据添加到 cygx_resource_data 表 } else { e = cygx.UpdateCygxActivityVoice(itemVoice) if e != nil { err = errors.New("UpdateCygxActivityVoice" + e.Error()) return } } } //处理视频 if itemVideo.ActivityId > 0 { condition = " AND art.activity_id = ? " pars = append(pars, activityId) total, e := cygx.GetActivityVideoCount(condition, pars) if e != nil { err = errors.New("GetActivityVideoCount" + e.Error()) return } //如果等于0就新增,反之就修改 if total == 0 { newId, e := cygx.AddCygxActivityVideo(itemVideo) if e != nil { err = errors.New("AddCygxActivityVideo" + e.Error()) return } go UpdateResourceData(int(newId), utils.CYGX_OBJ_ACTIVITYVIDEO, "add", activityInfo.ActivityTime) // 把活动视频的数据添加到 cygx_resource_data 表 } else { e = cygx.UpdateCygxActivityVideo(itemVideo) if e != nil { err = errors.New("UpdateCygxActivityVideo" + e.Error()) return } } } //如果两个都为空,就判断之前是否上传过 if itemVoice.ActivityId == 0 && itemVideo.ActivityId == 0 { voiceDetail, e := cygx.GetCygxActivityVoiceReqDetail(activityId) if e != nil && e.Error() != utils.ErrNoRow() { err = errors.New("GetCygxActivityVoiceReqDetail" + e.Error()) return } if voiceDetail != nil { e = cygx.DeleteCygxActivityVoice(activityId) if e != nil { err = errors.New("DeleteCygxActivityVoice" + e.Error()) return } go UpdateResourceData(voiceDetail.ActivityVoiceId, utils.CYGX_OBJ_ACTIVITYVOICE, "delete", time.Now().Format(utils.FormatDateTime)) // 把活动音频在 cygx_resource_data 表中删除 } //删除原有的视频数据 videoDetail, e := cygx.GetCygxActivityVideoReqDetail(activityId) if e != nil && e.Error() != utils.ErrNoRow() { err = errors.New("GetCygxActivityVideoReqDetail" + e.Error()) return } if videoDetail != nil { e = cygx.DeleteCygxActivityVideo(activityId) if e != nil { err = errors.New("DeleteCygxActivityVideo" + e.Error()) return } go UpdateResourceData(videoDetail.VideoId, utils.CYGX_OBJ_ACTIVITYVIDEO, "delete", time.Now().Format(utils.FormatDateTime)) // 把活动视频在 cygx_resource_data 表中删除 } } return }