瀏覽代碼

no message

xingzai 8 月之前
父節點
當前提交
11687bdf8c
共有 4 個文件被更改,包括 315 次插入136 次删除
  1. 19 0
      models/rai_serve/rai_serve_week_bill.go
  2. 1 1
      services/cygx_yanxuan_special_company.go
  3. 289 135
      services/rai_serve_count.go
  4. 6 0
      services/task.go

+ 19 - 0
models/rai_serve/rai_serve_week_bill.go

@@ -41,6 +41,25 @@ func AddCygxRaiServeWeekBillMulti(items []*CygxRaiServeWeekBill) (err error) {
 	return
 }
 
+// UpdateCygxRaiServeWeekBillMulti 批量修改客户周度信息
+func UpdateCygxRaiServeWeekBillMulti(items []*CygxRaiServeWeekBill) (err error) {
+	o := orm.NewOrm()
+	p, err := o.Raw("UPDATE cygx_rai_serve_week_bill SET user_total = ? , week_serve_count =? ,modify_time = ?   WHERE company_id = ?  AND week_start_date = ?  ").Prepare()
+	if err != nil {
+		return
+	}
+	defer func() {
+		_ = p.Close() // 别忘记关闭 statement
+	}()
+	for _, v := range items {
+		_, err = p.Exec(v.UserTotal, v.WeekServeCount, v.ModifyTime, v.CompanyId, v.WeekStartDate)
+		if err != nil {
+			return
+		}
+	}
+	return
+}
+
 // 列表
 func GetCygxRaiServeWeekBillListAll(condition string, pars []interface{}) (items []*CygxRaiServeWeekBill, err error) {
 	if condition == "" {

+ 1 - 1
services/cygx_yanxuan_special_company.go

@@ -118,7 +118,7 @@ func AddSpecialRecord(user *models.WxUserItem, specialId, stopTime int) (err err
 		item.YanxuanSpecialId = specialId
 		item.StopTime = stopTime
 		item.PermissionCode = permissionCode
-		go CygxRaiServeBillRedisAdd(detail.Title, utils.CYGX_OBJ_YANXUANSPECIAL, user.UserId, user.CompanyId, specialId, utils.REGISTER_PLATFORM, item.CreateTime) // 权益服务统计添加到Redis队列中
+		//go CygxRaiServeBillRedisAdd(detail.Title, utils.CYGX_OBJ_YANXUANSPECIAL, user.UserId, user.CompanyId, specialId, utils.REGISTER_PLATFORM, item.CreateTime) // 权益服务统计添加到Redis队列中
 
 		_, e = models.AddCygxYanxuanSpecialRecord(item) // 添加历史记录
 		if e != nil {

+ 289 - 135
services/rai_serve_count.go

@@ -1,6 +1,7 @@
 package services
 
 import (
+	"context"
 	"encoding/json"
 	"errors"
 	"fmt"
@@ -15,10 +16,60 @@ import (
 
 //权益服务统计
 
+//上线跑的脚本
+//func initJob() {
+//	UpdateRaiServeCompany()              //1
+//	UpdateCygxRaiServeBillByCompanyIds() //2
+//	UpdateCygxRaiServeBillWeek()         // 3
+//	UpdateWeekAvg()                      // 4
+//}
+
+//func init() {
+//	UpdateWeekAvg() //1
+//}
+
 //func init() {
-//	UpdateRaiServeCompany()
+//	//UpdateRaiServeCompany()              //1
+//	//UpdateCygxRaiServeBillByCompanyIds() //2
+//	//UpdateCygxRaiServeBillWeekTask() // 3
+//	//UpdateWeekAvg()                      // 4
 //}
 
+// 定时任务处理权益服务公司
+func UpdateRaiServeCompanyDate(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("定时任务处理权益服务公司 失败 UpdateRaiServeCompanyDate  ,err:", err.Error()), 2)
+		}
+	}()
+	err = UpdateRaiServeCompany()
+	return
+}
+
+// 定时任务处理权益服务记录明细
+func UpdateRaiServeBillDate(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("定时任务处理权益服务公司 失败 UpdateRaiServeBillDate  ,err:", err.Error()), 2)
+		}
+	}()
+	err = UpdateCygxRaiServeBillByCompanyIds() // 处理个人流水记录
+	if err != nil {
+		return
+	}
+	err = UpdateCygxRaiServeBillWeekTask() // 更新周度服务明细
+	if err != nil {
+		return
+	}
+	err = UpdateWeekAvg() //更新最近四周平均覆盖率,是否标红,权限,时间,金额
+	if err != nil {
+		return
+	}
+	return
+}
+
 // 更新现有的权益服务客户数据
 func UpdateRaiServeCompany() (err error) {
 	defer func() {
@@ -328,111 +379,6 @@ type RaiServeBillRedis struct {
 	ViewTime         time.Time `comment:"浏览时间"`
 }
 
-// 权益服务统计添加到Redis队列中
-func CygxRaiServeBillRedisAdd(content, source string, userId, comapnyId, sourceId, registerPlatform int, viewTime time.Time) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println(err)
-			msg := fmt.Sprint("source:", source, "userId:", userId, "sourceId", sourceId)
-			go utils.SendAlarmMsg("权益服务统计添加到Redis队列中,写入Redis队列消息失败 CygxRaiServeBillRedisAdd:"+err.Error()+msg, 2)
-		}
-	}()
-	log := &rai_serve.RaiServeBillRedis{Content: content, Source: source, UserId: userId, ComapnyId: comapnyId, SourceId: sourceId, RegisterPlatform: registerPlatform, ViewTime: viewTime}
-	if utils.Re == nil {
-		err := utils.Rc.LPush(utils.CYGX_RAI_SERVE_BILL_KEY, log)
-		if err != nil {
-			fmt.Println("RaiServeBillRedis LPush Err:" + err.Error())
-		}
-	}
-	return
-}
-
-// CygxRaiServeBillRedisAddReduce 处理权益服务统计
-func CygxRaiServeBillRedisAddReduce() (err error) {
-	for {
-		//SourceType int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
-		utils.Rc.Brpop(utils.CYGX_RAI_SERVE_BILL_KEY, func(b []byte) {
-			var log rai_serve.RaiServeBillRedis
-			if err := json.Unmarshal(b, &log); err != nil {
-				fmt.Println("json unmarshal wrong!")
-				go utils.SendAlarmMsg("处理权益服务统计Redis队列消息失败:"+err.Error()+string(b), 2)
-			}
-			//如果不是共享给 权益服务组的,则不处理
-			taotalRaiServe, err := company.GetCompanyProductAaiServeCount(log.ComapnyId, utils.RAI_SERVE_GROUP_ID)
-			if err != nil {
-				go utils.SendAlarmMsg("处理权益服务统计Redis队列消息失败:GetCompanyProductAaiServeCount"+err.Error()+string(b), 2)
-			}
-			fmt.Println("taotaRaiServe", taotalRaiServe)
-			if taotalRaiServe == 0 {
-				return
-			}
-
-			//如果已经有记录了就不处理
-			taotalSource, err := rai_serve.GetCygxRaiServeBillCountByUserAndSource(log.UserId, log.SourceId, log.Source)
-			if err != nil {
-				go utils.SendAlarmMsg("处理权益服务统计Redis队列消息失败:GetCygxRaiServeBillCountByUserAndSource"+err.Error()+string(b), 2)
-			}
-			if taotalSource > 0 {
-				return
-			}
-			switch log.Source {
-			case utils.CYGX_OBJ_YANXUANSPECIAL: //研选专栏阅读记录处理
-				go RaiServeBillRedisAddReduceByYanxuanspecial(log)
-				fmt.Println("研选专栏阅读记录处理")
-				break
-
-			default:
-				fmt.Println(string(b))
-				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
-			}
-		})
-	}
-}
-
-// 处理权益服务统计->研选阅读记录
-func RaiServeBillRedisAddReduceByYanxuanspecial(log rai_serve.RaiServeBillRedis) (err error) {
-	source := log.Source
-	userId := log.UserId
-	sourceId := log.SourceId
-	defer func() {
-		if err != nil {
-			go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("source:", source, "userId:", userId, "sourceId", sourceId), 2)
-		}
-	}()
-	wxUser, e := models.GetWxUserItemByUserId(userId)
-	if e != nil {
-		err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
-		return
-	}
-	item := new(rai_serve.CygxRaiServeBill)
-	item.Content = log.Content
-	item.ServeTypeId = 5
-	item.ServeTypeName = "阅读uv"
-	item.UserId = wxUser.UserId
-	item.Mobile = wxUser.Mobile
-	item.Email = wxUser.Email
-	item.CompanyId = wxUser.CompanyId
-	item.CompanyName = wxUser.CompanyName
-	item.RealName = wxUser.RealName
-	item.RegisterPlatform = log.RegisterPlatform
-	item.ServeCount = 0.5
-
-	if wxUser.IsMaker == 1 {
-		item.IsKp = wxUser.IsMaker
-		item.ServeCount = item.ServeCount * 3
-	}
-	item.SourceId = log.SourceId
-	item.Source = log.Source
-	item.CreateTime = time.Now()
-	item.ViewTime = log.ViewTime.Format(utils.FormatDateTime)
-	err = rai_serve.AddCygxRaiServeBill(item)
-	return
-}
-
-//func init() {
-//	UpdateWeekAvg()
-//}
-
 // 批量更新企业服务明细记录
 func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 	defer func() {
@@ -441,6 +387,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 			go utils.SendAlarmMsg("批量更新企业服务明细记录失败: UpdateCygxRaiServeBillByCompanyIds Err"+err.Error(), 2)
 		}
 	}()
+	fmt.Println("UpdateCygxRaiServeBillByCompanyIds start")
 	companyList, e := rai_serve.GetCygxRaiServeCompanyAllList()
 	if e != nil {
 		err = errors.New("GetCygxRaiServeCompanyAllList, Err: " + e.Error())
@@ -453,7 +400,6 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 	}
 
 	lencompanyId := len(companyIds)
-
 	listisMakeruser, e := models.GetWxUserisMakerByCompanyIds(companyIds)
 	if e != nil {
 		err = errors.New("GetWxUserisMakerByCompanyIds, Err: " + e.Error())
@@ -463,7 +409,6 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 	for _, v := range listisMakeruser {
 		mapUserMaker[v.UserId] = true
 	}
-	fmt.Println(mapUserMaker)
 
 	var condition string
 	var pars []interface{}
@@ -554,29 +499,6 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 			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{}
@@ -903,16 +825,16 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 	}
 	//交流反馈 end
 
-	fmt.Println(len(items))
 	e = rai_serve.AddCygxRaiServeBillMulti(items)
 	if e != nil {
 		err = errors.New("AddCygxRaiServeBillMulti, Err: " + e.Error())
 		return
 	}
-
+	fmt.Println("UpdateCygxRaiServeBillByCompanyIds end")
 	return
 }
 
+// 更新周度服务明细
 func UpdateCygxRaiServeBillWeek() (err error) {
 	defer func() {
 		if err != nil {
@@ -977,7 +899,7 @@ func UpdateCygxRaiServeBillWeek() (err error) {
 			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.CoverageRate = item.WeekServeCount / float64(mapCompanyUserNum[v.CompanyId]) * 100
 			}
 			item.CreateTime = time.Now()
 			item.ModifyTime = time.Now()
@@ -992,6 +914,136 @@ func UpdateCygxRaiServeBillWeek() (err error) {
 	return
 }
 
+func UpdateCygxRaiServeBillWeekTask() (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg("批量更新企业服务明细记录失败: UpdateCygxRaiServeBillByCompanyIds Err"+err.Error(), 2)
+		}
+	}()
+	fmt.Println("UpdateCygxRaiServeBillWeekTask start")
+	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)
+	if lencompanyId == 0 {
+		return
+	}
+	//明细
+	startDate := time.Now().AddDate(0, 0, -80)
+	var conditionBill string
+	var parsBill []interface{}
+	conditionBill = "  AND   company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND view_time > ?  "
+	parsBill = append(parsBill, companyIds, startDate)
+	listBill, 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 listBill {
+		mapWeekServeCount[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", v.WeekStartDate)] += v.ServeCount
+	}
+
+	var conditionWeek string
+	var parsWeek []interface{}
+
+	conditionWeek = ` AND week_start_date >= ? `
+	parsWeek = append(parsWeek, startDate)
+
+	listWeekBill, e := rai_serve.GetCygxRaiServeWeekBillListAll(conditionWeek, parsWeek)
+	if e != nil {
+		err = errors.New("GetCygxRaiServeWeekBillListAll, Err: " + e.Error())
+		return
+	}
+
+	mapWeekbill := make(map[string]bool)
+	mapWeekbillUserTotal := make(map[string]int)
+	mapWeekbillWeekServeCount := make(map[string]float64)
+	for _, v := range listWeekBill {
+		mapWeekbill[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", v.WeekStartDate)] = true
+		mapWeekbillUserTotal[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", v.WeekStartDate)] = v.UserTotal
+		mapWeekbillWeekServeCount[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", v.WeekStartDate)] = v.WeekServeCount
+	}
+
+	var items []*rai_serve.CygxRaiServeWeekBill
+	var itemsUpdate []*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
+			//超过本周的,互动总人数不做修改
+			if i > 0 && mapWeekbillUserTotal[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] > 0 {
+				item.UserTotal = mapWeekbillUserTotal[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)]
+			} else {
+				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]) * 100
+			}
+			item.CreateTime = time.Now()
+			item.ModifyTime = time.Now()
+			if mapWeekbill[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] {
+				if mapWeekbillUserTotal[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] == item.UserTotal && mapWeekbillWeekServeCount[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] == item.WeekServeCount {
+					continue // 如果互动量相等,且人数相等,就不修改
+				}
+				itemsUpdate = append(itemsUpdate, item)
+			} else {
+				items = append(items, item)
+			}
+		}
+	}
+
+	if len(items) > 0 {
+		e = rai_serve.AddCygxRaiServeWeekBillMulti(items)
+		if e != nil {
+			err = errors.New("AddCygxRaiServeWeekBillMulti, Err: " + e.Error())
+			return
+		}
+	}
+
+	if len(itemsUpdate) > 0 {
+		e = rai_serve.UpdateCygxRaiServeWeekBillMulti(itemsUpdate)
+		if e != nil {
+			err = errors.New("AddCygxRaiServeWeekBillMulti, Err: " + e.Error())
+			return
+		}
+	}
+
+	fmt.Println("UpdateCygxRaiServeBillWeekTask end")
+	return
+}
+
+// 更新最近四周平均覆盖率,是否标红,权限,时间,金额
 func UpdateWeekAvg() (err error) {
 	defer func() {
 		if err != nil {
@@ -999,6 +1051,7 @@ func UpdateWeekAvg() (err error) {
 			go utils.SendAlarmMsg("批量更新企业服务明细记录失败: UpdateCygxRaiServeBillByCompanyIds Err"+err.Error(), 2)
 		}
 	}()
+	fmt.Println(" UpdateWeekAvg  start")
 	now := time.Now()
 	weeks := 3
 	monday := now.AddDate(0, 0, -int(now.Weekday()-time.Monday)-weeks*7)
@@ -1019,7 +1072,7 @@ func UpdateWeekAvg() (err error) {
 
 	mapWeekServeCount := make(map[int]float64) //四周平均率总合
 	for _, v := range listWeekBill {
-		mapWeekServeCount[v.CompanyId] += v.WeekServeCount * 100
+		mapWeekServeCount[v.CompanyId] += v.CoverageRate
 	}
 
 	//获取近四周含有Kp 的公司
@@ -1149,3 +1202,104 @@ func UpdateWeekAvg() (err error) {
 	fmt.Println(" UpdateWeekAvg  end")
 	return
 }
+
+// 权益服务统计添加到Redis队列中
+func CygxRaiServeBillRedisAdd(content, source string, userId, comapnyId, sourceId, registerPlatform int, viewTime time.Time) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			msg := fmt.Sprint("source:", source, "userId:", userId, "sourceId", sourceId)
+			go utils.SendAlarmMsg("权益服务统计添加到Redis队列中,写入Redis队列消息失败 CygxRaiServeBillRedisAdd:"+err.Error()+msg, 2)
+		}
+	}()
+	log := &rai_serve.RaiServeBillRedis{Content: content, Source: source, UserId: userId, ComapnyId: comapnyId, SourceId: sourceId, RegisterPlatform: registerPlatform, ViewTime: viewTime}
+	if utils.Re == nil {
+		err := utils.Rc.LPush(utils.CYGX_RAI_SERVE_BILL_KEY, log)
+		if err != nil {
+			fmt.Println("RaiServeBillRedis LPush Err:" + err.Error())
+		}
+	}
+	return
+}
+
+// CygxRaiServeBillRedisAddReduce 处理权益服务统计
+func CygxRaiServeBillRedisAddReduce() (err error) {
+	for {
+		//SourceType int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
+		utils.Rc.Brpop(utils.CYGX_RAI_SERVE_BILL_KEY, func(b []byte) {
+			var log rai_serve.RaiServeBillRedis
+			if err := json.Unmarshal(b, &log); err != nil {
+				fmt.Println("json unmarshal wrong!")
+				go utils.SendAlarmMsg("处理权益服务统计Redis队列消息失败:"+err.Error()+string(b), 2)
+			}
+			//如果不是共享给 权益服务组的,则不处理
+			taotalRaiServe, err := company.GetCompanyProductAaiServeCount(log.ComapnyId, utils.RAI_SERVE_GROUP_ID)
+			if err != nil {
+				go utils.SendAlarmMsg("处理权益服务统计Redis队列消息失败:GetCompanyProductAaiServeCount"+err.Error()+string(b), 2)
+			}
+			fmt.Println("taotaRaiServe", taotalRaiServe)
+			if taotalRaiServe == 0 {
+				return
+			}
+
+			//如果已经有记录了就不处理
+			taotalSource, err := rai_serve.GetCygxRaiServeBillCountByUserAndSource(log.UserId, log.SourceId, log.Source)
+			if err != nil {
+				go utils.SendAlarmMsg("处理权益服务统计Redis队列消息失败:GetCygxRaiServeBillCountByUserAndSource"+err.Error()+string(b), 2)
+			}
+			if taotalSource > 0 {
+				return
+			}
+			switch log.Source {
+			case utils.CYGX_OBJ_YANXUANSPECIAL: //研选专栏阅读记录处理
+				go RaiServeBillRedisAddReduceByYanxuanspecial(log)
+				fmt.Println("研选专栏阅读记录处理")
+				break
+
+			default:
+				fmt.Println(string(b))
+				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
+			}
+		})
+	}
+}
+
+// 处理权益服务统计->研选阅读记录
+func RaiServeBillRedisAddReduceByYanxuanspecial(log rai_serve.RaiServeBillRedis) (err error) {
+	source := log.Source
+	userId := log.UserId
+	sourceId := log.SourceId
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("source:", source, "userId:", userId, "sourceId", sourceId), 2)
+		}
+	}()
+	wxUser, e := models.GetWxUserItemByUserId(userId)
+	if e != nil {
+		err = errors.New("GetWxUserItemByUserId, Err: " + e.Error())
+		return
+	}
+	item := new(rai_serve.CygxRaiServeBill)
+	item.Content = log.Content
+	item.ServeTypeId = 5
+	item.ServeTypeName = "阅读uv"
+	item.UserId = wxUser.UserId
+	item.Mobile = wxUser.Mobile
+	item.Email = wxUser.Email
+	item.CompanyId = wxUser.CompanyId
+	item.CompanyName = wxUser.CompanyName
+	item.RealName = wxUser.RealName
+	item.RegisterPlatform = log.RegisterPlatform
+	item.ServeCount = 0.5
+
+	if wxUser.IsMaker == 1 {
+		item.IsKp = wxUser.IsMaker
+		item.ServeCount = item.ServeCount * 3
+	}
+	item.SourceId = log.SourceId
+	item.Source = log.Source
+	item.CreateTime = time.Now()
+	item.ViewTime = log.ViewTime.Format(utils.FormatDateTime)
+	err = rai_serve.AddCygxRaiServeBill(item)
+	return
+}

+ 6 - 0
services/task.go

@@ -151,6 +151,12 @@ func Task() {
 
 		handleOrderRefundTask := task.NewTask("handleOrderRefundTask", "0 */1 * * * *", HandleOrderRefundTask)
 		task.AddTask("定时任务处理退款回调", handleOrderRefundTask) //定时任务处理退款回调
+
+		updateRaiServeCompanyDate := task.NewTask("updateRaiServeCompanyDate", "0 */1 * * * *", UpdateRaiServeCompanyDate)
+		task.AddTask("定时任务处理权益服务公司", updateRaiServeCompanyDate) //定时任务处理权益服务公司
+
+		updateRaiServeBillDate := task.NewTask("updateRaiServeBillDate", "0 */10 * * * *", UpdateRaiServeBillDate)
+		task.AddTask("定时任务处理权益服务记录明细", updateRaiServeBillDate) //定时任务处理权益服务记录明细
 	}
 
 	//if utils.RunMode != "release" {