xingzai hai 7 meses
pai
achega
642cfeff45
Modificáronse 4 ficheiros con 36 adicións e 5 borrados
  1. 2 2
      models/rai_serve/rai_serve_week_bill.go
  2. 11 0
      models/wx_user.go
  3. 21 3
      services/rai_serve_count.go
  4. 2 0
      services/task.go

+ 2 - 2
models/rai_serve/rai_serve_week_bill.go

@@ -44,7 +44,7 @@ func AddCygxRaiServeWeekBillMulti(items []*CygxRaiServeWeekBill) (err error) {
 // 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()
+	p, err := o.Raw("UPDATE cygx_rai_serve_week_bill SET user_total = ? , week_serve_count =? , coverage_rate =? ,modify_time = ?   WHERE company_id = ?  AND week_start_date = ?  ").Prepare()
 	if err != nil {
 		return
 	}
@@ -52,7 +52,7 @@ func UpdateCygxRaiServeWeekBillMulti(items []*CygxRaiServeWeekBill) (err error)
 		_ = p.Close() // 别忘记关闭 statement
 	}()
 	for _, v := range items {
-		_, err = p.Exec(v.UserTotal, v.WeekServeCount, v.ModifyTime, v.CompanyId, v.WeekStartDate)
+		_, err = p.Exec(v.UserTotal, v.WeekServeCount, v.CoverageRate, v.ModifyTime, v.CompanyId, v.WeekStartDate)
 		if err != nil {
 			return
 		}

+ 11 - 0
models/wx_user.go

@@ -575,6 +575,17 @@ func GetWxUserListByUserIds(userIds string) (list []*WxUserItem, err error) {
 	return
 }
 
+// GetWxUserListByUserIdsArr 根据用户ID集合获取用户
+func GetWxUserListByUserIdsArr(userIds []int) (list []*WxUserItem, err error) {
+	lenArr := len(userIds)
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := ` SELECT u.*, c.company_name FROM wx_user AS u
+			INNER JOIN company AS c ON c.company_id = u.company_id 
+			WHERE user_id IN (` + utils.GetOrmInReplace(lenArr) + `)  `
+	_, err = o.Raw(sql, userIds).QueryRows(&list)
+	return
+}
+
 // GetWxUserByMobiles 根据用户手机号获取用户详情
 func GetWxUserByMobiles(mobiles []string) (items []*WxUser, err error) {
 	lenmobiles := len(mobiles)

+ 21 - 3
services/rai_serve_count.go

@@ -49,6 +49,7 @@ func UpdateRaiServeCompanyDate(cont context.Context) (err error) {
 
 // 定时任务处理权益服务记录明细
 func UpdateRaiServeBillDate(cont context.Context) (err error) {
+	//func UpdateRaiServeBillDate() (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -515,6 +516,21 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 			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("GetCygxRaiServeBillListAll, 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
@@ -528,7 +544,7 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 			item.Email = v.Email
 			item.CompanyId = v.CompanyId
 			item.CompanyName = v.CompanyName
-			item.RealName = v.RealName
+			item.RealName = mapUserName[v.UserId]
 			item.RegisterPlatform = v.RegisterPlatform
 			item.ServeCount = 0.5
 
@@ -981,10 +997,12 @@ func UpdateCygxRaiServeBillWeekTask() (err error) {
 	mapWeekbill := make(map[string]bool)
 	mapWeekbillUserTotal := make(map[string]int)
 	mapWeekbillWeekServeCount := make(map[string]float64)
+	mapWeekbillWeekCoverageRate := 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
+		mapWeekbillWeekCoverageRate[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", v.WeekStartDate)] = v.CoverageRate
 	}
 
 	var items []*rai_serve.CygxRaiServeWeekBill
@@ -1013,7 +1031,7 @@ func UpdateCygxRaiServeBillWeekTask() (err error) {
 			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 {
+				if mapWeekbillUserTotal[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] == item.UserTotal && mapWeekbillWeekServeCount[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] == item.WeekServeCount && mapWeekbillWeekCoverageRate[fmt.Sprintf("CID_", v.CompanyId, "WEEK_", item.WeekStartDate)] == item.CoverageRate {
 					continue // 如果互动量相等,且人数相等,就不修改
 				}
 				itemsUpdate = append(itemsUpdate, item)
@@ -1030,7 +1048,7 @@ func UpdateCygxRaiServeBillWeekTask() (err error) {
 			return
 		}
 	}
-
+	fmt.Println("itemsUpdate", len(itemsUpdate))
 	if len(itemsUpdate) > 0 {
 		e = rai_serve.UpdateCygxRaiServeWeekBillMulti(itemsUpdate)
 		if e != nil {

+ 2 - 0
services/task.go

@@ -159,6 +159,8 @@ func Task() {
 		task.AddTask("定时任务处理权益服务记录明细", updateRaiServeBillDate) //定时任务处理权益服务记录明细
 	}
 
+	//UpdateRaiServeBillDate()
+
 	//if utils.RunMode != "release" {
 	//	getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章
 	//	task.AddTask("getArticleListByApi", getArticleListByApi)