|
@@ -14,9 +14,9 @@ import (
|
|
|
|
|
|
//权益服务统计
|
|
|
|
|
|
-func init() {
|
|
|
- UpdateRaiServeCompany()
|
|
|
-}
|
|
|
+//func init() {
|
|
|
+// UpdateRaiServeCompany()
|
|
|
+//}
|
|
|
|
|
|
// 更新现有的权益服务客户数据
|
|
|
func UpdateRaiServeCompany() (err error) {
|
|
@@ -553,7 +553,377 @@ func RaiServeBillRedisAddReduceByYanxuanspecial(log rai_serve.RaiServeBillRedis)
|
|
|
item.SourceId = log.SourceId
|
|
|
item.Source = log.Source
|
|
|
item.CreateTime = time.Now()
|
|
|
- item.ViewTime = log.ViewTime
|
|
|
+ item.ViewTime = log.ViewTime.Format(utils.FormatDateTime)
|
|
|
err = rai_serve.AddCygxRaiServeBill(item)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func init() {
|
|
|
+ UpdateCygxRaiServeBillByCompanyIds()
|
|
|
+}
|
|
|
+
|
|
|
+// 批量更新企业服务明细记录
|
|
|
+func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("批量更新企业服务明细记录失败: UpdateCygxRaiServeBillByCompanyIds Err"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ companyList, e := rai_serve.GetCygxRaiServeCompanyAllList()
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeCompanyAllList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyIds []int
|
|
|
+ var items []*rai_serve.CygxRaiServeBill
|
|
|
+ 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)
|
|
|
+ for _, v := range listisMakeruser {
|
|
|
+ mapUserMaker[v.UserId] = true
|
|
|
+ }
|
|
|
+ fmt.Println(mapUserMaker)
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ createTime := time.Now().AddDate(0, 0, -80) // 查询12周以内的数据
|
|
|
+
|
|
|
+ condition = " AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND create_time > ? "
|
|
|
+ pars = append(pars, companyIds, createTime)
|
|
|
+
|
|
|
+ //研选专栏阅读记录内容
|
|
|
+ {
|
|
|
+ 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, createTime)
|
|
|
+ listBillByYanxuanspecial, e := rai_serve.GetCygxRaiServeBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeBillListAll, 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.CygxRaiServeBill)
|
|
|
+ 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
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ //return
|
|
|
+ var articleIds []int
|
|
|
+ for _, v := range listArticleRecord {
|
|
|
+ articleIds = append(articleIds, v.ArticleId)
|
|
|
+ }
|
|
|
+
|
|
|
+ var conditionArticle string
|
|
|
+ var parsArticle []interface{}
|
|
|
+ conditionArticle += ` AND article_id IN (` + utils.GetOrmInReplace(len(articleIds)) + `) `
|
|
|
+ parsArticle = append(parsArticle, articleIds)
|
|
|
+ listArticle, e := models.GetCygxCygxArticleList(conditionArticle, parsArticle, 0, len(articleIds))
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
+ err = errors.New("GetCygxCygxArticleList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapArticleTitle := make(map[int]string)
|
|
|
+
|
|
|
+ for _, v := range listArticle {
|
|
|
+ mapArticleTitle[v.ArticleId] = v.Title
|
|
|
+ }
|
|
|
+ fmt.Println(mapArticleTitle[10080])
|
|
|
+ //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, createTime)
|
|
|
+ listBillByArticle, e := rai_serve.GetCygxRaiServeBillListAll(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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range listArticleRecord {
|
|
|
+ if mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ArticleId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiServeBill)
|
|
|
+ item.Content = mapArticleTitle[v.ArticleId]
|
|
|
+ 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.ArticleId
|
|
|
+ item.Source = utils.CYGX_OBJ_ARTICLE
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.CreateTime
|
|
|
+ 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, createTime)
|
|
|
+ listBillByArticle, e := rai_serve.GetCygxRaiServeBillListAll(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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range signUpDetailList {
|
|
|
+ if mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiServeBill)
|
|
|
+ item.Content = v.ActivityName
|
|
|
+ if v.ActivityType == 1 {
|
|
|
+ item.ServeTypeId = 1
|
|
|
+ item.ServeTypeName = "线上活动"
|
|
|
+ } else {
|
|
|
+ item.ServeTypeId = 2
|
|
|
+ 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_ACTIVITY
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ViewTime = v.ActivityTime
|
|
|
+ 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, createTime)
|
|
|
+ listBillByArticle, e := rai_serve.GetCygxRaiServeBillListAll(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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range activitySpecialList {
|
|
|
+ if mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiServeBill)
|
|
|
+ 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
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //专项调研活动记录内容 end
|
|
|
+
|
|
|
+ //1v1路演
|
|
|
+ {
|
|
|
+ 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, createTime)
|
|
|
+ listBillByArticle, e := rai_serve.GetCygxRaiServeBillListAll(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
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range activitySpecialList {
|
|
|
+ if mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ item := new(rai_serve.CygxRaiServeBill)
|
|
|
+ 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
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //1v1路演 end
|
|
|
+
|
|
|
+ fmt.Println(len(items))
|
|
|
+ e = rai_serve.AddCygxRaiServeBillMulti(items)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxRaiServeBillMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|