|
@@ -559,9 +559,9 @@ func RaiServeBillRedisAddReduceByYanxuanspecial(log rai_serve.RaiServeBillRedis)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-//func init() {
|
|
|
-// UpdateCygxRaiServeBillByCompanyIds()
|
|
|
-//}
|
|
|
+func init() {
|
|
|
+ UpdateCygxRaiServeBillWeek()
|
|
|
+}
|
|
|
|
|
|
// 批量更新企业服务明细记录
|
|
|
func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
@@ -671,6 +671,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
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)
|
|
|
}
|
|
|
}
|
|
@@ -747,6 +748,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
item.Source = utils.CYGX_OBJ_ARTICLE
|
|
|
item.CreateTime = time.Now()
|
|
|
item.ViewTime = v.CreateTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
items = append(items, item)
|
|
|
}
|
|
|
}
|
|
@@ -806,6 +808,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
item.Source = utils.CYGX_OBJ_ACTIVITY
|
|
|
item.CreateTime = time.Now()
|
|
|
item.ViewTime = v.ActivityTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
items = append(items, item)
|
|
|
}
|
|
|
}
|
|
@@ -860,6 +863,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
item.Source = utils.CYGX_OBJ_ACTIVITYSPECIAL
|
|
|
item.CreateTime = time.Now()
|
|
|
item.ViewTime = v.ActivityTime
|
|
|
+ item.WeekStartDate, item.WeekEndDate = utils.GetMondayAndSundayByTimeString(item.ViewTime)
|
|
|
items = append(items, item)
|
|
|
}
|
|
|
}
|
|
@@ -929,6 +933,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
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)
|
|
|
items = append(items, item)
|
|
|
}
|
|
|
}
|
|
@@ -982,6 +987,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
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)
|
|
|
}
|
|
|
}
|
|
@@ -996,3 +1002,83 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
|
|
|
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func UpdateCygxRaiServeBillWeek() (err error) {
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ fmt.Println(err)
|
|
|
+ go utils.SendAlarmMsg("批量更新企业服务明细记录失败: UpdateCygxRaiServeBillByCompanyIds Err"+err.Error(), 2)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ now := time.Now()
|
|
|
+ weeks := 12
|
|
|
+
|
|
|
+ companyList, e := rai_serve.GetCygxRaiServeCompanyAllList()
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeCompanyAllList, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var companyIds []int
|
|
|
+
|
|
|
+ for _, v := range companyList {
|
|
|
+ companyIds = append(companyIds, v.CompanyId)
|
|
|
+ }
|
|
|
+
|
|
|
+ listCompanyUserNum, e := models.GetWxUserNumByCompanyIds(companyIds)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetWxUserisMakerByCompanyIds, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapCompanyUserNum := make(map[int]int) //企业对应的用户数量
|
|
|
+ for _, v := range listCompanyUserNum {
|
|
|
+ mapCompanyUserNum[v.CompanyId] = v.UserNum
|
|
|
+ }
|
|
|
+ lencompanyId := len(companyIds)
|
|
|
+ //研选阅读明细
|
|
|
+ var conditionBill string
|
|
|
+ var parsBill []interface{}
|
|
|
+ conditionBill = " AND company_id IN (" + utils.GetOrmInReplace(lencompanyId) + ") AND view_time > ? "
|
|
|
+ parsBill = append(parsBill, companyIds, time.Now().AddDate(0, 0, -80))
|
|
|
+ listBillByYanxuanspecial, e := rai_serve.GetCygxRaiServeBillListAll(conditionBill, parsBill)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("GetCygxRaiServeBillListAll, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ mapWeekServeCount := make(map[string]float64)
|
|
|
+ for _, v := range listBillByYanxuanspecial {
|
|
|
+ mapWeekServeCount[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", v.WeekStartDate)] += v.ServeCount
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println(companyIds)
|
|
|
+ var items []*rai_serve.CygxRaiServeWeekBill
|
|
|
+ for _, v := range companyList {
|
|
|
+ for i := 0; i < weeks; i++ {
|
|
|
+ item := new(rai_serve.CygxRaiServeWeekBill)
|
|
|
+ // 计算当前周的周一
|
|
|
+ monday := now.AddDate(0, 0, -int(now.Weekday()-time.Monday)-i*7)
|
|
|
+ // 计算当前周的周日
|
|
|
+ sunday := monday.AddDate(0, 0, 6)
|
|
|
+ item.WeekStartDate = monday.Format(utils.FormatDate)
|
|
|
+ item.WeekEndDate = sunday.Format(utils.FormatDate)
|
|
|
+ item.CompanyId = v.CompanyId
|
|
|
+ item.CompanyName = v.CompanyName
|
|
|
+ item.UserTotal = mapCompanyUserNum[v.CompanyId]
|
|
|
+ item.WeekServeCount = mapWeekServeCount[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)]
|
|
|
+ if mapCompanyUserNum[v.CompanyId] > 0 {
|
|
|
+ item.CoverageRate = item.WeekServeCount / float64(mapCompanyUserNum[v.CompanyId])
|
|
|
+ }
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ items = append(items, item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ e = rai_serve.AddCygxRaiServeWeekBillMulti(items)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("AddCygxRaiServeWeekBillMulti, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|