|
@@ -0,0 +1,630 @@
|
|
|
+package services
|
|
|
+
|
|
|
+import (
|
|
|
+ "context"
|
|
|
+ "errors"
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/models/company"
|
|
|
+ "hongze/hongze_cygx/models/rai_serve"
|
|
|
+ "hongze/hongze_cygx/models/roadshow"
|
|
|
+ "hongze/hongze_cygx/utils"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+//func init() {
|
|
|
+// UpdateCompanyProductIsUserMaker()
|
|
|
+//}
|
|
|
+
|
|
|
+// 权益正式,试用客户近四周互动记录
|
|
|
+func UpdateCygxRaiCompanyUserBillDate(cont context.Context) (err error) {
|
|
|
+ //func UpdateCygxRaiCompanyUserBillDate() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg(fmt.Sprint("定时任务处理权权益正式,试用客户近四周互动记录 失败 UpdateCygxRaiCompanyUserBillDate ,err:", err.Error()), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ err = UpdateCygxRaiCompanyUserBill() // 处理共享机构信息
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = UpdateCompanyProductIsUserMaker() // 处理个人流水记录
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 批量更新权益正式,试用客户近四周互动记录
|
|
|
+func UpdateCygxRaiCompanyUserBill() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("批量更新权益正式,试用客户近四周互动记录 失败: UpdateCygxRaiCompanyUserBill Err"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ var delBillIds []int
|
|
|
+ var startWeekDate = time.Now().AddDate(0, 0, -28).Format(utils.FormatDate) + " 23:59:59"
|
|
|
+ fmt.Println("UpdateCygxRaiCompanyUserBill start")
|
|
|
+ companyList, e := company.GetRaiCompanyProductCompanyids()
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeCompanyAllList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyIds []int
|
|
|
+ var items []*rai_serve.CygxRaiCompanyUserBill
|
|
|
+ for _, v := range companyList {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ lencompanyId := len(companyIds)
|
|
|
+
|
|
|
+ listisMakeruser, e := models.GetWxUserisMakerByCompanyIds(companyIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserisMakerByCompanyIds, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapUserMaker := make(map[int]bool)
|
|
|
+ mapUserMobileUserId := make(map[string]int)
|
|
|
+ for _, v := range listisMakeruser {
|
|
|
+ mapUserMaker[v.UserId] = true
|
|
|
+ mapUserMobileUserId[v.Mobile] = v.UserId
|
|
|
+ }
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition = " AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND create_time > ? "
|
|
|
+ pars = append(pars, companyIds, startWeekDate)
|
|
|
+
|
|
|
+ fmt.Println("startWeekDate", startWeekDate)
|
|
|
+ //研选专栏阅读记录内容
|
|
|
+ {
|
|
|
+ listYanxuanSpecialRecord, e := models.GetCygxYanxuanSpecialRecordRespListAll(condition+" GROUP BY user_id, yanxuan_special_id ORDER BY create_time ASC ", pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxYanxuanSpecialRecordRespListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var yanxuanspecialIds []int
|
|
|
+ for _, v := range listYanxuanSpecialRecord {
|
|
|
+ yanxuanspecialIds = append(yanxuanspecialIds, v.YanxuanSpecialId)
|
|
|
+ }
|
|
|
+
|
|
|
+ var conditionYanxuanSpecial string
|
|
|
+ var parsYanxuanSpecial []interface{}
|
|
|
+ conditionYanxuanSpecial += ` AND id IN (` + utils.GetOrmInReplace(len(yanxuanspecialIds)) + `) `
|
|
|
+ parsYanxuanSpecial = append(parsYanxuanSpecial, yanxuanspecialIds)
|
|
|
+ listYanxuanSpecial, e := models.GetYanxuanSpecialListBycondition(conditionYanxuanSpecial, parsYanxuanSpecial, 0, len(yanxuanspecialIds))
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetYanxuanSpecialListBycondition, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapYanxuanSpecialTitle := make(map[int]string)
|
|
|
+
|
|
|
+ for _, v := range listYanxuanSpecial {
|
|
|
+ mapYanxuanSpecialTitle[v.Id] = v.Title
|
|
|
+ }
|
|
|
+
|
|
|
+ //研选阅读明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND source = 'yanxuanspecial' AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, startWeekDate)
|
|
|
+ listBillByYanxuanspecial, e := rai_serve.GetCygxRaiCompanyUserBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiCompanyUserBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapYanxuanspecialBill := make(map[string]bool)
|
|
|
+ for _, v := range listBillByYanxuanspecial {
|
|
|
+ mapYanxuanspecialBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range listYanxuanSpecialRecord {
|
|
|
+ if mapYanxuanspecialBill[fmt.Sprint("UID_", v.UserId, "SID_", v.YanxuanSpecialId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiCompanyUserBill)
|
|
|
+ item.Content = mapYanxuanSpecialTitle[v.YanxuanSpecialId]
|
|
|
+ item.ServeTypeId = 5
|
|
|
+ item.ServeTypeName = "阅读uv"
|
|
|
+ item.UserId = v.UserId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.Email = v.Email
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.RealName = v.RealName
|
|
|
+ item.RegisterPlatform = v.RegisterPlatform
|
|
|
+ item.ServeCount = 0.5
|
|
|
+
|
|
|
+ if mapUserMaker[v.UserId] {
|
|
|
+ item.IsKp = 1
|
|
|
+ item.ServeCount = item.ServeCount * 3
|
|
|
+ }
|
|
|
+ item.SourceId = v.YanxuanSpecialId
|
|
|
+ item.Source = utils.CYGX_OBJ_YANXUANSPECIAL
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.CreateTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //研选专栏阅读记录内容end
|
|
|
+
|
|
|
+ //文章阅读记录内容
|
|
|
+ {
|
|
|
+ listArticleRecord, e := models.GetCygxArticleHistoryRecordAllListNoLimit(condition+" GROUP BY user_id, article_id ORDER BY create_time ASC ", pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxArticleHistoryRecordAllListNoLimit, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //文章阅读明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND source = 'article' AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, startWeekDate)
|
|
|
+ listBillByArticle, e := rai_serve.GetCygxRaiCompanyUserBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapArticleBill := make(map[string]bool)
|
|
|
+ for _, v := range listBillByArticle {
|
|
|
+ mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ //部分数据来源没有存用户姓名,重新查一下
|
|
|
+ var userIds []int
|
|
|
+ for _, v := range listArticleRecord {
|
|
|
+ userIds = append(userIds, v.UserId)
|
|
|
+ }
|
|
|
+ ListUser, e := models.GetWxUserListByUserIdsArr(userIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserListByUserIdsArr, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapUserName := make(map[int]string)
|
|
|
+ for _, v := range ListUser {
|
|
|
+ mapUserName[v.UserId] = v.RealName
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range listArticleRecord {
|
|
|
+ if mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ArticleId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiCompanyUserBill)
|
|
|
+ item.Content = v.Title
|
|
|
+ item.ServeTypeId = 5
|
|
|
+ item.ServeTypeName = "阅读uv"
|
|
|
+ item.UserId = v.UserId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.Email = v.Email
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.RealName = mapUserName[v.UserId]
|
|
|
+ item.RegisterPlatform = v.RegisterPlatform
|
|
|
+ item.ServeCount = 0.5
|
|
|
+
|
|
|
+ if mapUserMaker[v.UserId] {
|
|
|
+ item.IsKp = 1
|
|
|
+ item.ServeCount = item.ServeCount * 3
|
|
|
+ }
|
|
|
+ item.SourceId = v.ArticleId
|
|
|
+ item.Source = utils.CYGX_OBJ_ARTICLE
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.CreateTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
+
|
|
|
+ if strings.Contains(v.CategoryName, "固收") {
|
|
|
+ item.ChartPermissionName = utils.GU_SHOU_NAME
|
|
|
+ item.ChartPermissionId = utils.GU_SHOU_ID_CHART
|
|
|
+ }
|
|
|
+ if strings.Contains(v.CategoryName, "策略") {
|
|
|
+ item.ChartPermissionName = utils.CE_LUE_NAME
|
|
|
+ item.ChartPermissionId = utils.CE_LUE_ID
|
|
|
+ }
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //文章阅读记录内容 end
|
|
|
+
|
|
|
+ //活动记录内容
|
|
|
+ {
|
|
|
+ condition = " AND art.company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND a.activity_time > ? "
|
|
|
+ signUpDetailList, e := models.GetSignupDetailBySignupjoinactivity(condition+" ORDER BY a.activity_time ASC ", pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetSignupDetailBySignupjoinactivity, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //文章阅读明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND source = 'activity' AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, startWeekDate)
|
|
|
+ listBillByActivity, e := rai_serve.GetCygxRaiCompanyUserBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiCompanyUserBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapActivityeBill := make(map[string]bool)
|
|
|
+ for _, v := range listBillByActivity {
|
|
|
+ mapActivityeBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ mapArticleBillDel := make(map[string]bool)
|
|
|
+ for _, v := range signUpDetailList {
|
|
|
+ mapArticleBillDel[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ mapDelActivityBillDel := make(map[string]bool)
|
|
|
+ for _, v := range signUpDetailList {
|
|
|
+ mapDelActivityBillDel[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] = true
|
|
|
+ }
|
|
|
+ for _, v := range listBillByActivity {
|
|
|
+ if !mapDelActivityBillDel[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] { // 如果内容存在就插入删除ID中
|
|
|
+ delBillIds = append(delBillIds, v.BillId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range signUpDetailList {
|
|
|
+ if mapActivityeBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiCompanyUserBill)
|
|
|
+ item.Content = v.ActivityName
|
|
|
+ if v.ActivityType == 1 {
|
|
|
+ item.ServeTypeId = 1
|
|
|
+ item.ServeTypeName = "线上活动"
|
|
|
+ } else {
|
|
|
+ item.ServeTypeId = 2
|
|
|
+ item.ServeTypeName = "线下活动"
|
|
|
+ }
|
|
|
+ if v.UserId == 0 && v.Mobile != "" {
|
|
|
+ v.UserId = mapUserMobileUserId[v.Mobile] // 空降的部分联系人 userid 为0这里做一下修复
|
|
|
+ }
|
|
|
+
|
|
|
+ item.UserId = v.UserId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.Email = v.Email
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.RealName = v.RealName
|
|
|
+ //item.RegisterPlatform = v.RegisterPlatform
|
|
|
+ item.ServeCount = 1
|
|
|
+ if mapUserMaker[v.UserId] {
|
|
|
+ item.IsKp = 1
|
|
|
+ item.ServeCount = item.ServeCount * 3
|
|
|
+ }
|
|
|
+ item.SourceId = v.ActivityId
|
|
|
+ item.Source = utils.CYGX_OBJ_ACTIVITY
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.ActivityTime
|
|
|
+ item.ChartPermissionName = v.ChartPermissionName
|
|
|
+ item.ChartPermissionId = v.ChartPermissionId
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //活动记录内容 end
|
|
|
+
|
|
|
+ //专项调研活动记录内容
|
|
|
+ {
|
|
|
+ condition = " AND art.company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND a.activity_time > ? "
|
|
|
+ activitySpecialList, e := models.GetCygxActivitySpecialMeetingDetailList(condition+" ORDER BY a.activity_time ASC ", pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxActivitySpecialMeetingDetailList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //专项调研活动明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND source = 'activityspecial' AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, startWeekDate)
|
|
|
+ listBillByActivitySpecial, e := rai_serve.GetCygxRaiCompanyUserBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiCompanyUserBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapActivitySpecial := make(map[string]bool)
|
|
|
+ for _, v := range listBillByActivitySpecial {
|
|
|
+ mapActivitySpecial[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ mapDelActivitySpecial := make(map[string]bool)
|
|
|
+ for _, v := range activitySpecialList {
|
|
|
+ mapDelActivitySpecial[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] = true
|
|
|
+ }
|
|
|
+ for _, v := range listBillByActivitySpecial {
|
|
|
+ if !mapDelActivitySpecial[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] { // 如果内容存在就插入删除ID中
|
|
|
+ delBillIds = append(delBillIds, v.BillId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range activitySpecialList {
|
|
|
+ if mapActivitySpecial[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiCompanyUserBill)
|
|
|
+ item.Content = v.ResearchTheme
|
|
|
+ item.ServeTypeId = 3
|
|
|
+ item.ServeTypeName = "专项调研"
|
|
|
+ item.UserId = v.UserId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.Email = v.Email
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.RealName = v.RealName
|
|
|
+ //item.RegisterPlatform = v.RegisterPlatform
|
|
|
+ item.ServeCount = 1
|
|
|
+ if mapUserMaker[v.UserId] {
|
|
|
+ item.IsKp = 1
|
|
|
+ item.ServeCount = item.ServeCount * 3
|
|
|
+ }
|
|
|
+ item.SourceId = v.ActivityId
|
|
|
+ item.Source = utils.CYGX_OBJ_ACTIVITYSPECIAL
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.ActivityTime
|
|
|
+ item.ChartPermissionName = v.ChartPermissionName
|
|
|
+ item.ChartPermissionId = v.ChartPermissionId
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //专项调研活动记录内容 end
|
|
|
+
|
|
|
+ //1v1路演
|
|
|
+ {
|
|
|
+ condition = " AND art.company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND rs.start_date > ? "
|
|
|
+ calendarMeetingUserList, e := roadshow.GetRsCalendarMeetingUserList(condition+" ORDER BY rs.start_date ASC ", pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetRsCalendarMeetingUserList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var rsCalendarIds []int
|
|
|
+ for _, v := range calendarMeetingUserList {
|
|
|
+ rsCalendarIds = append(rsCalendarIds, v.RsCalendarId)
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取研究员信息
|
|
|
+ researchers, e := roadshow.GetRsCalendarResearcherListByIds(rsCalendarIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetRsCalendarResearcherListByIds, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapResearcherName := make(map[int][]string)
|
|
|
+ for _, v := range researchers {
|
|
|
+ mapResearcherName[v.RsCalendarId] = append(mapResearcherName[v.RsCalendarId], v.ResearcherName)
|
|
|
+ }
|
|
|
+
|
|
|
+ listEmail, e := models.GetAskEmail()
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetAskEmail, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var ceLueResearcherName []string
|
|
|
+ var guShouResearcherName []string
|
|
|
+
|
|
|
+ for _, v := range listEmail {
|
|
|
+ if v.ChartPermissionName == utils.CE_LUE_NAME {
|
|
|
+ ceLueResearcherName = append(ceLueResearcherName, v.Name)
|
|
|
+ }
|
|
|
+ if v.ChartPermissionName == utils.GU_SHOU_NAME {
|
|
|
+ guShouResearcherName = append(guShouResearcherName, v.Name)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //专项调研活动明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND source = 'rscalendar' AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, startWeekDate)
|
|
|
+ listBillByRscalendar, e := rai_serve.GetCygxRaiCompanyUserBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiCompanyUserBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapRscalendarBill := make(map[string]bool)
|
|
|
+ for _, v := range listBillByRscalendar {
|
|
|
+ mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ mapDelRscalendarBill := make(map[string]bool)
|
|
|
+ for _, v := range calendarMeetingUserList {
|
|
|
+ mapDelRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.RsCalendarId)] = true
|
|
|
+ }
|
|
|
+ for _, v := range listBillByRscalendar {
|
|
|
+ if !mapDelRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] { // 如果内容存在就插入删除ID中
|
|
|
+ delBillIds = append(delBillIds, v.BillId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range calendarMeetingUserList {
|
|
|
+ if mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.RsCalendarId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiCompanyUserBill)
|
|
|
+ item.Content = strings.Join(mapResearcherName[v.RsCalendarId], ",")
|
|
|
+ item.ServeTypeId = 4
|
|
|
+ item.ServeTypeName = "一对一路演"
|
|
|
+ item.UserId = v.UserId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.Email = v.Email
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.RealName = v.RealName
|
|
|
+ //item.RegisterPlatform = v.RegisterPlatform
|
|
|
+ item.ServeCount = 1.5
|
|
|
+ if mapUserMaker[v.UserId] {
|
|
|
+ item.IsKp = 1
|
|
|
+ item.ServeCount = item.ServeCount * 3
|
|
|
+ }
|
|
|
+ item.SourceId = v.RsCalendarId
|
|
|
+ item.Source = utils.CYGX_OBJ_RS_CALENDAR
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.StartDate + " " + v.StartTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
+
|
|
|
+ if utils.InArrayByStr(guShouResearcherName, item.Content) {
|
|
|
+ item.ChartPermissionName = utils.GU_SHOU_NAME
|
|
|
+ item.ChartPermissionId = utils.GU_SHOU_ID_CHART
|
|
|
+ }
|
|
|
+ if utils.InArrayByStr(ceLueResearcherName, item.Content) {
|
|
|
+ item.ChartPermissionName = utils.CE_LUE_NAME
|
|
|
+ item.ChartPermissionId = utils.CE_LUE_ID
|
|
|
+ }
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //1v1路演 end
|
|
|
+
|
|
|
+ //交流反馈
|
|
|
+ {
|
|
|
+ condition = " AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND create_time > ? "
|
|
|
+ userFeedbackList, e := rai_serve.GetCygxUserFeedbackList(condition+" ORDER BY user_feedback_id ASC ", pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxUserFeedbackList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //交流反馈明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND source = 'userfeedback' AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, startWeekDate)
|
|
|
+ listBillByuserFeedback, e := rai_serve.GetCygxRaiCompanyUserBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapRscalendarBill := make(map[string]bool)
|
|
|
+ for _, v := range listBillByuserFeedback {
|
|
|
+ mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ mapDelRscalendarBill := make(map[string]bool)
|
|
|
+ for _, v := range userFeedbackList {
|
|
|
+ mapDelRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.UserFeedbackId)] = true
|
|
|
+ }
|
|
|
+ for _, v := range listBillByuserFeedback {
|
|
|
+ if !mapDelRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] { // 如果内容存在就插入删除ID中
|
|
|
+ delBillIds = append(delBillIds, v.BillId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range userFeedbackList {
|
|
|
+ if mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.UserFeedbackId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiCompanyUserBill)
|
|
|
+ item.Content = v.Content
|
|
|
+ item.ServeTypeId = 6
|
|
|
+ item.ServeTypeName = "交流反馈"
|
|
|
+ item.UserId = v.UserId
|
|
|
+ item.Mobile = v.Mobile
|
|
|
+ item.Email = v.Email
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.RealName = v.RealName
|
|
|
+ item.ServeCount = 1
|
|
|
+ if mapUserMaker[v.UserId] {
|
|
|
+ item.IsKp = 1
|
|
|
+ item.ServeCount = item.ServeCount * 3
|
|
|
+ }
|
|
|
+ item.SourceId = v.UserFeedbackId
|
|
|
+ item.Source = utils.CYGX_OBJ_USER_FEEDBACK
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.CreateTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //交流反馈 end
|
|
|
+ //fmt.Println("items", len(items))
|
|
|
+ //return
|
|
|
+ if len(items) > 0 {
|
|
|
+ var itemsAdd []*rai_serve.CygxRaiCompanyUserBill
|
|
|
+ for k, v := range items {
|
|
|
+ itemsAdd = append(itemsAdd, v)
|
|
|
+ if len(itemsAdd)%2000 == 0 {
|
|
|
+ fmt.Println(k)
|
|
|
+ e = rai_serve.AddCygxRaiCompanyUserBilllMulti(itemsAdd)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxRaiServeBillMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ itemsAdd = make([]*rai_serve.CygxRaiCompanyUserBill, 0)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ e = rai_serve.AddCygxRaiCompanyUserBilllMulti(itemsAdd)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxRaiCompanyUserBilllMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("delBillIds", (delBillIds))
|
|
|
+ fmt.Println("UpdateCygxRaiCompanyUserBill end")
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// 更新权益客户最近四周是否有决策人互动记录
|
|
|
+func UpdateCompanyProductIsUserMaker() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("更新权益客户最近四周是否有决策人互动记录 失败: UpdateCompanyProductIsUserMaker Err"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ fmt.Println(" UpdateCompanyProductIsUserMaker start")
|
|
|
+ now := time.Now()
|
|
|
+ weeks := 3
|
|
|
+ monday := now.AddDate(0, 0, -int(now.Weekday()-time.Monday)-weeks*7)
|
|
|
+
|
|
|
+ startDate := monday.Format(utils.FormatDate)
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ condition = ` AND week_start_date >= ? AND is_kp = 1 GROUP BY company_id `
|
|
|
+ pars = append(pars, startDate)
|
|
|
+
|
|
|
+ //获取近四周之内含有KP的公司
|
|
|
+ listKpCompanyId, e := rai_serve.GetCygxRaiCompanyUserBillListAll(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiCompanyUserBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var companyIds []int
|
|
|
+ for _, v := range listKpCompanyId {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(companyIds) == 0 {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println(len(companyIds))
|
|
|
+
|
|
|
+ e = company.UpdateRaiCompanyProductIsUserMakerByCompanyids(companyIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("UpdateRaiCompanyProductIsUserMakerByCompanyids, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println(" UpdateCompanyProductIsUserMaker end")
|
|
|
+ return
|
|
|
+}
|