Forráskód Böngészése

Merge branch 'mfyx_3.6' of http://8.136.199.33:3000/cxzhang/hongze_mfyx into debug

xingzai 7 hónapja
szülő
commit
415db598cd
2 módosított fájl, 10 hozzáadás és 904 törlés
  1. 1 0
      controllers/activity.go
  2. 9 904
      services/activity_points.go

+ 1 - 0
controllers/activity.go

@@ -2026,6 +2026,7 @@ func (this *ActivityCoAntroller) VivoPointRecord() {
 			br.ErrMsg = "获取信息失败,Err:" + err.Error()
 			return
 		}
+		go services.YanXuanActivityVivoPointsBillSignupAdd(activityId, user.UserId) // 用户观看音视频研选扣点
 	}
 	br.Ret = 200
 	br.Success = true

+ 9 - 904
services/activity_points.go

@@ -1,11 +1,9 @@
 package services
 
 import (
-	"encoding/json"
 	"errors"
 	"fmt"
 	"hongze/hongze_mfyx/models"
-	"hongze/hongze_mfyx/models/company"
 	"hongze/hongze_mfyx/utils"
 	"strconv"
 	"time"
@@ -132,915 +130,22 @@ func YanXuanActivityPointsBillSubmitMeeting(activityId, adminId int) (err error)
 	return
 }
 
-// YanXuanActivityPointsBillReduce 处理研选活动扣点
-func YanXuanActivityPointsBillReduce() (err error) {
-	for {
-		//SourceType int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
-		utils.Rc.Brpop(utils.CYGX_YANXUAN_POINTS_KEY, func(b []byte) {
-			var log models.YanXuanActivityPointsRedis
-			if err := json.Unmarshal(b, &log); err != nil {
-				fmt.Println("json unmarshal wrong!")
-				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+err.Error()+string(b), 2)
-			}
-			switch log.SourceType {
-			case 1:
-				go YanXuanActivityPointsBillSignupAddReduce(log)
-				fmt.Println("1:报名")
-				break
-			case 2:
-				go YanXuanActivityPointsBillSignupCancelReduce(log)
-				fmt.Println(" 2:取消报名")
-				break
-			case 3:
-				go YanXuanActivityPointsBillActivityEditReduce(log)
-				fmt.Println("3:活动编辑")
-				break
-			case 4:
-				go YanXuanActivityPointsBillActivityPublishAndCancelReduce(log)
-				fmt.Println("4:活动发布、取消发布")
-				break
-			case 5:
-				go YanXuanActivityPointsBillSubmitMeetingReduce(log)
-				fmt.Println("5:活动到会研选扣点处理。")
-			case 6:
-				go YanXuanCompanyApprovalReduce(log)
-				fmt.Println("6:研选审批通过的时候研选扣点更新。")
-				break
-			case 7:
-				go YanXuanCompanyCompanyTryOutReduce(log)
-				fmt.Println("7:正式专试用定时任务更新研选扣点。")
-				break
-			default:
-				fmt.Println(string(b))
-				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
-			}
-		})
-	}
-}
-
-// 1:用户报名
-func YanXuanActivityPointsBillSignupAddReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println(err)
-			go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
-		}
-	}()
-	//加2000毫秒的延迟
-	time.Sleep(2 * time.Second)
-	activityId := log.ActivityId
-	userId := log.UserId
-
-	//获取活动是否扣点以及扣点规则明细
-	activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
-		return
-	}
-	if activityPointsSetDetail == nil {
-		return
-	}
-	if activityPointsSetDetail.UserPointsNum == 0 || activityPointsSetDetail.PointsType != 1 {
-		return // 如果不是报名即扣点的这种形式,那么就不做任何处理
-	}
-
-	activityInfo, e := models.GetAddActivityInfoById(activityId)
-	if e != nil {
-		err = errors.New("GetAddActivityInfoById" + e.Error())
-		return
-	}
-	user, e := models.GetWxUserItemByUserId(userId)
-	if e != nil {
-		err = errors.New("GetWxUserItemByUserId" + e.Error())
-		return
-	}
-
-	// 获取用户所在公司剩余的点
-	companyPointsNum, e := models.GetCompanyPoints(user.CompanyId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyPoints, Err: " + e.Error())
-		return
-	}
-	//获取需要添加的流水信息
-	var items []*models.CygxActivityPointsBill
-	item := new(models.CygxActivityPointsBill)
-	item.UserId = user.UserId
-	item.ActivityId = activityId
-	item.CreateTime = time.Now()
-	item.Mobile = user.Mobile
-	item.Email = user.Email
-	item.CompanyId = user.CompanyId
-	item.CompanyName = user.CompanyName
-	item.RealName = user.RealName
-	item.BillDetailed = -activityPointsSetDetail.UserPointsNum
-	item.RegisterPlatform = log.RegisterPlatform
-	item.AdminId = log.AdminId
-	item.Source = log.Source
-	item.ChartPermissionId = activityInfo.ChartPermissionId
-	item.DoType = 1
-	item.Content = activityInfo.ActivityName + "--报名"
-	item.Points = companyPointsNum - activityPointsSetDetail.UserPointsNum
-	items = append(items, item)
-
-	//更新对应机构的剩余点数
-	var itemCompanys []*models.CygxActivityPointsCompany
-	itemCompany := new(models.CygxActivityPointsCompany)
-	itemCompany.CompanyId = user.CompanyId
-	itemCompany.Points = item.Points
-	itemCompany.ModifyTime = time.Now()
-	itemCompanys = append(itemCompanys, itemCompany)
-
-	err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-	return
-}
-
-// 2:用户取消报名
-func YanXuanActivityPointsBillSignupCancelReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println(err)
-			go utils.SendAlarmMsg("用户取消报名扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
-		}
-	}()
-
-	activityId := log.ActivityId
-	userId := log.UserId
-
-	//获取活动是否扣点以及扣点规则明细
-	activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
-		return
-	}
-	if activityPointsSetDetail == nil {
-		return
-	}
-	if activityPointsSetDetail.UserPointsNum == 0 || activityPointsSetDetail.PointsType != 1 {
-		return // 如果不是报名即扣点的这种形式,那么就不做任何处理
-	}
-
-	activityInfo, e := models.GetAddActivityInfoById(activityId)
-	if e != nil {
-		err = errors.New("GetAddActivityInfoById" + e.Error())
-		return
-	}
-	user, e := models.GetWxUserItemByUserId(userId)
-	if e != nil {
-		err = errors.New("GetWxUserItemByUserId" + e.Error())
-		return
-	}
-
-	// 获取用户所在公司剩余的点
-	companyPointsNum, e := models.GetCompanyPoints(user.CompanyId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyPoints, Err: " + e.Error())
-		return
-	}
-
-	//查询最新的一条针对这个用户的扣点记录
-	var condition string
-	var pars []interface{}
-	condition += ` AND activity_id = ? AND user_id = ?  AND bill_detailed < 0   ORDER BY id DESC LIMIT 1  `
-	pars = append(pars, activityId, userId)
-	activityPointsBillDetail, e := models.GetCygxActivityPointsBillDetailByCondition(condition, pars)
-	if e != nil {
-		err = errors.New("activityPointsBillDetail" + e.Error())
-		return
-	}
-
-	//获取需要添加的流水信息
-	var items []*models.CygxActivityPointsBill
-	item := new(models.CygxActivityPointsBill)
-	item.UserId = user.UserId
-	item.ActivityId = activityId
-	item.CreateTime = time.Now()
-	item.Mobile = user.Mobile
-	item.Email = user.Email
-	item.CompanyId = user.CompanyId
-	item.CompanyName = user.CompanyName
-	item.RealName = user.RealName
-	item.BillDetailed = -activityPointsBillDetail.BillDetailed
-	item.RegisterPlatform = log.RegisterPlatform
-	item.AdminId = log.AdminId
-	item.Source = log.Source
-	item.ChartPermissionId = activityInfo.ChartPermissionId
-	item.DoType = 2
-	item.Content = activityInfo.ActivityName + "--取消报名"
-	item.Points = companyPointsNum - activityPointsBillDetail.BillDetailed
-	items = append(items, item)
-
-	//更新对应机构的剩余点数
-	var itemCompanys []*models.CygxActivityPointsCompany
-	itemCompany := new(models.CygxActivityPointsCompany)
-	itemCompany.CompanyId = user.CompanyId
-	itemCompany.Points = item.Points
-	itemCompany.ModifyTime = time.Now()
-	itemCompanys = append(itemCompanys, itemCompany)
-
-	err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-	return
-}
-
-// 3:活动编辑
-func YanXuanActivityPointsBillActivityEditReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println(err)
-			go utils.SendAlarmMsg("用户报名活动扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
-		}
-	}()
-
-	activityId := log.ActivityId
-
-	//获取活动是否扣点以及扣点规则明细
-	activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
-		return
-	}
-	if activityPointsSetDetail == nil {
-		return
-	}
-	if activityPointsSetDetail.CompanyPointsNum == 0 {
-		return // 如果不是办会人,即扣点的这种形式,那么就不做任何处理
-	}
-	comapnyId := activityPointsSetDetail.CompanyId
-	activityInfo, e := models.GetAddActivityInfoByActivityId(activityId)
-	if e != nil {
-		err = errors.New("GetAddActivityInfoByActivityId" + e.Error())
-		return
-	}
-	if activityInfo.PublishStatus == 0 {
-		return // 未发布的活动不做处理
-	}
-	comapny, e := models.GetCompanyById(comapnyId)
-	if e != nil {
-		err = errors.New("GetCompanyById" + e.Error())
-		return
-	}
-
-	// 获取用户所在公司剩余的点
-	companyPointsNum, e := models.GetCompanyPoints(comapny.CompanyId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyPoints, Err: " + e.Error())
-		return
-	}
-
-	//查询最新的一条针对这个公司的扣点记录
-	var condition string
-	var pars []interface{}
-	condition += ` AND activity_id = ? AND company_id = ? AND mobile = '' AND bill_detailed < 0   ORDER BY id DESC LIMIT 1  `
-	pars = append(pars, activityId, comapnyId)
-	activityPointsBillDetail, e := models.GetCygxActivityPointsBillDetailByCondition(condition, pars)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyPoints, Err: " + e.Error())
-		return
-	}
-	var items []*models.CygxActivityPointsBill
-	item := new(models.CygxActivityPointsBill)
-	var itemCompanys []*models.CygxActivityPointsCompany
-	itemCompany := new(models.CygxActivityPointsCompany)
-
-	if activityPointsBillDetail == nil { //如果是空的就添加
-		//获取需要添加的流水信息
-		//item.UserId = user.UserId
-		item.ActivityId = activityId
-		item.CreateTime = time.Now()
-		//item.Mobile = user.Mobile
-		//item.Email = user.Email
-		item.CompanyId = comapny.CompanyId
-		item.CompanyName = comapny.CompanyName
-		//item.RealName = user.RealName
-		item.BillDetailed = -activityPointsSetDetail.CompanyPointsNum
-		item.RegisterPlatform = log.RegisterPlatform
-		item.AdminId = log.AdminId
-		item.Source = log.Source
-		item.ChartPermissionId = activityInfo.ChartPermissionId
-		item.DoType = 1
-		item.Content = activityInfo.ActivityName + "--办会"
-		item.Points = companyPointsNum - activityPointsSetDetail.CompanyPointsNum
-		items = append(items, item)
-
-		//更新对应机构的剩余点数
-		itemCompany.CompanyId = comapny.CompanyId
-		itemCompany.Points = item.Points
-		itemCompany.ModifyTime = time.Now()
-		itemCompanys = append(itemCompanys, itemCompany)
-		e = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-		if e != nil && e.Error() != utils.ErrNoRow() {
-			err = errors.New("AddCygxActivityPointsBillMulti, Err: " + e.Error())
-			return
-		}
-	} else {
-		//如果存在就进行对比修改
-		if activityPointsSetDetail.CompanyPointsNum != -activityPointsBillDetail.BillDetailed {
-			item.Id = activityPointsBillDetail.Id
-			item.BillDetailed = -activityPointsSetDetail.CompanyPointsNum
-			item.Points = companyPointsNum - activityPointsBillDetail.BillDetailed - activityPointsSetDetail.CompanyPointsNum
-			items = append(items, item)
-
-			//更新对应机构的剩余点数
-			itemCompany.CompanyId = comapny.CompanyId
-			itemCompany.Points = item.Points
-			itemCompany.ModifyTime = time.Now()
-			itemCompanys = append(itemCompanys, itemCompany)
-			e = models.UpdateCygxActivityPointsBillMulti(items, itemCompanys)
-			if e != nil && e.Error() != utils.ErrNoRow() {
-				err = errors.New("UpdateCygxActivityPointsBillMulti, Err: " + e.Error())
-				return
-			}
-		}
-	}
-	return
-}
-
-// 4:活动发布取消发布
-func YanXuanActivityPointsBillActivityPublishAndCancelReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	defer func() {
-		if err != nil {
-			fmt.Println(err)
-			go utils.SendAlarmMsg("活动发布扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "userId", log.UserId), 2)
-		}
-	}()
-
-	activityId := log.ActivityId
-	publishStatus := log.PublishStatus
-	//comapnyId := log.ComapnyId
-
-	//获取活动是否扣点以及扣点规则明细
-	activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
-		return
-	}
-	if activityPointsSetDetail == nil {
-		return
-	}
-	if activityPointsSetDetail.CompanyPointsNum == 0 && activityPointsSetDetail.PointsType == 2 {
-		//if activityPointsSetDetail.CompanyPointsNum == 0 {
-		return // 如果不是办会人扣点,且对用户是到会扣点的这种形式,那么就不做任何处理
-	}
-
-	activityInfo, e := models.GetAddActivityInfoByActivityId(activityId)
-	if e != nil {
-		err = errors.New("GetAddActivityInfoByActivityId" + e.Error())
-		return
-	}
-
-	comapnyId := activityPointsSetDetail.CompanyId
-	var items []*models.CygxActivityPointsBill
-
-	var itemCompanys []*models.CygxActivityPointsCompany
-	mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
-	if publishStatus == 1 {
-		fmt.Println("//活动发布")
-		if comapnyId > 0 {
-			comapny, e := models.GetCompanyById(comapnyId)
-			if e != nil {
-				err = errors.New("GetCompanyById" + e.Error())
-				return
-			}
-			// 获取用户所在公司剩余的点
-			companyPointsNum, e := models.GetCompanyPoints(comapny.CompanyId)
-			if e != nil && e.Error() != utils.ErrNoRow() {
-				err = errors.New("GetCompanyPoints, Err: " + e.Error())
-				return
-			}
-			item := new(models.CygxActivityPointsBill)
-			item.ActivityId = activityId
-			item.CreateTime = time.Now()
-			//item.Mobile = user.Mobile
-			//item.Email = user.Email
-			item.CompanyId = comapny.CompanyId
-			item.CompanyName = comapny.CompanyName
-			//item.RealName = user.RealName
-			item.BillDetailed = -activityPointsSetDetail.CompanyPointsNum
-			item.RegisterPlatform = log.RegisterPlatform
-			item.AdminId = log.AdminId
-			item.Source = log.Source
-			item.ChartPermissionId = activityInfo.ChartPermissionId
-			item.DoType = 1
-			item.Content = activityInfo.ActivityName + "--办会"
-			item.Points = companyPointsNum - activityPointsSetDetail.CompanyPointsNum
-			items = append(items, item)
-
-			//更新对应机构的剩余点数
-			itemCompany := new(models.CygxActivityPointsCompany)
-			itemCompany.CompanyId = comapny.CompanyId
-			itemCompany.Points = item.Points
-			itemCompany.ModifyTime = time.Now()
-			itemCompanys = append(itemCompanys, itemCompany)
-			mapCompanyPoints[comapnyId] = item.Points
-		}
-
-		if activityPointsSetDetail.UserPointsNum > 0 && activityPointsSetDetail.PointsType == 1 {
-			//如果扣点形式选的是报名即扣点,那么就对已经报名的用户所在机构进行扣点
-			var condition string
-			var pars []interface{}
-			condition = ` AND do_fail_type = 0 AND activity_id  = ?`
-			pars = append(pars, activityId)
-
-			listSignup, e := models.GetActivitySignupList(condition, pars)
-			if e != nil && e.Error() != utils.ErrNoRow() {
-				err = errors.New("GetActivitySignupList, Err: " + e.Error())
-				return
-			}
-			var companyIds []int
-			if len(listSignup) > 0 {
-				for _, v := range listSignup {
-					companyIds = append(companyIds, v.CompanyId)
-				}
-				pars = make([]interface{}, 0)
-				condition = ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
-				pars = append(pars, companyIds)
-
-				//获取这些公司剩余的点数
-				conpanyList, e := models.GetCygxActivityPointsCompanyList(condition, pars)
-				if e != nil && e.Error() != utils.ErrNoRow() {
-					err = errors.New("GetCygxActivityPointsCompanyList, Err: " + e.Error())
-					return
-				}
-
-				for _, v := range conpanyList {
-					if mapCompanyPoints[v.CompanyId] == 0 {
-						mapCompanyPoints[v.CompanyId] = v.Points
-					}
-				}
-
-				for _, user := range listSignup {
-					item := new(models.CygxActivityPointsBill)
-					item.ActivityId = activityId
-					item.CreateTime = time.Now()
-					item.Mobile = user.Mobile
-					item.UserId = user.UserId
-					item.Email = user.Email
-					item.CompanyId = user.CompanyId
-					item.CompanyName = user.CompanyName
-					item.RealName = user.RealName
-					item.BillDetailed = -activityPointsSetDetail.UserPointsNum
-					item.RegisterPlatform = log.RegisterPlatform
-					item.AdminId = log.AdminId
-					item.Source = log.Source
-					item.ChartPermissionId = activityInfo.ChartPermissionId
-					item.DoType = 1
-					item.Content = activityInfo.ActivityName + "--发布活动"
-					mapCompanyPoints[user.CompanyId] -= activityPointsSetDetail.UserPointsNum //通过map处理机构剩余点数
-					item.Points = mapCompanyPoints[user.CompanyId]
-					items = append(items, item)
-
-					//更新对应机构的剩余点数
-					itemCompany := new(models.CygxActivityPointsCompany)
-					itemCompany.CompanyId = user.CompanyId
-					itemCompany.Points = item.Points
-					itemCompany.ModifyTime = time.Now()
-					itemCompanys = append(itemCompanys, itemCompany)
-					mapCompanyPoints[user.CompanyId] = item.Points
-				}
-			}
-		}
-
-	} else {
-		fmt.Println("//活动取消发布")
-		//活动取消发布
-
-		if comapnyId > 0 {
-			comapny, e := models.GetCompanyById(comapnyId)
-			if e != nil {
-				err = errors.New("GetCompanyById" + e.Error())
-				return
-			}
-			// 获取用户所在公司剩余的点
-			companyPointsNum, e := models.GetCompanyPoints(comapny.CompanyId)
-			if e != nil && e.Error() != utils.ErrNoRow() {
-				err = errors.New("GetCompanyPoints, Err: " + e.Error())
-				return
-			}
-			item := new(models.CygxActivityPointsBill)
-			item.ActivityId = activityId
-			item.CreateTime = time.Now()
-			//item.Mobile = user.Mobile
-			//item.Email = user.Email
-			item.CompanyId = comapny.CompanyId
-			item.CompanyName = comapny.CompanyName
-			//item.RealName = user.RealName
-			item.BillDetailed = activityPointsSetDetail.CompanyPointsNum
-			item.RegisterPlatform = log.RegisterPlatform
-			item.AdminId = log.AdminId
-			item.Source = log.Source
-			item.ChartPermissionId = activityInfo.ChartPermissionId
-			item.DoType = 2
-			item.Content = activityInfo.ActivityName + "--取消办会"
-			item.Points = companyPointsNum + activityPointsSetDetail.CompanyPointsNum
-			items = append(items, item)
-			//更新对应机构的剩余点数
-			itemCompany := new(models.CygxActivityPointsCompany)
-			itemCompany.CompanyId = comapny.CompanyId
-			itemCompany.Points = item.Points
-			itemCompany.ModifyTime = time.Now()
-			itemCompanys = append(itemCompanys, itemCompany)
-			mapCompanyPoints[comapnyId] = item.Points
-		}
-
-		if activityPointsSetDetail.UserPointsNum > 0 && activityPointsSetDetail.PointsType == 1 {
-			//如果扣点形式选的是报名即扣点,那么就对已经报名的用户所在机构进行返点
-			var condition string
-			var pars []interface{}
-			condition = ` AND do_fail_type = 0 AND activity_id  = ?`
-			pars = append(pars, activityId)
-
-			listSignup, e := models.GetActivitySignupList(condition, pars)
-			if e != nil && e.Error() != utils.ErrNoRow() {
-				err = errors.New("GetActivitySignupList, Err: " + e.Error())
-				return
-			}
-			var companyIds []int
-			if len(listSignup) > 0 {
-				for _, v := range listSignup {
-					companyIds = append(companyIds, v.CompanyId)
-				}
-				pars = make([]interface{}, 0)
-				condition = ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
-				pars = append(pars, companyIds)
-
-				//获取这些公司剩余的点数
-				conpanyList, e := models.GetCygxActivityPointsCompanyList(condition, pars)
-				if e != nil && e.Error() != utils.ErrNoRow() {
-					err = errors.New("GetCygxActivityPointsCompanyList, Err: " + e.Error())
-					return
-				}
-
-				for _, v := range conpanyList {
-					if mapCompanyPoints[v.CompanyId] == 0 {
-						mapCompanyPoints[v.CompanyId] = v.Points
-					}
-				}
-
-				pars = make([]interface{}, 0)
-				condition = ` AND activity_id = ?   `
-				pars = append(pars, activityId)
-				//获取扣点的流水记录
-				activityPointsBillList, e := models.GetCygxActivityPointsBillList(condition, pars)
-				if e != nil && e.Error() != utils.ErrNoRow() {
-					err = errors.New("GetCygxActivityPointsBillList" + e.Error())
-					return
-				}
-				mapUserBill := make(map[int]bool)
-				for _, v := range activityPointsBillList {
-					mapUserBill[v.UserId] = true
-				}
-
-				for _, user := range listSignup {
-					if !mapUserBill[user.UserId] {
-						continue // 如果用户的扣点记录不存在,那么就不进行返点处理
-					}
-					item := new(models.CygxActivityPointsBill)
-					item.ActivityId = activityId
-					item.CreateTime = time.Now()
-					item.Mobile = user.Mobile
-					item.UserId = user.UserId
-					item.Email = user.Email
-					item.CompanyId = user.CompanyId
-					item.CompanyName = user.CompanyName
-					item.RealName = user.RealName
-					item.BillDetailed = activityPointsSetDetail.UserPointsNum
-					item.RegisterPlatform = log.RegisterPlatform
-					item.AdminId = log.AdminId
-					item.Source = log.Source
-					item.ChartPermissionId = activityInfo.ChartPermissionId
-					item.DoType = 2
-					item.Content = activityInfo.ActivityName + "--取消活动"
-					mapCompanyPoints[user.CompanyId] += activityPointsSetDetail.UserPointsNum //通过map处理机构剩余点数
-					item.Points = mapCompanyPoints[user.CompanyId]
-					items = append(items, item)
-
-					//更新对应机构的剩余点数
-					itemCompany := new(models.CygxActivityPointsCompany)
-					itemCompany.CompanyId = user.CompanyId
-					itemCompany.Points = item.Points
-					itemCompany.ModifyTime = time.Now()
-					itemCompanys = append(itemCompanys, itemCompany)
-					mapCompanyPoints[user.CompanyId] = item.Points
-				}
-			}
-		}
-	}
-	e = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("AddCygxActivityPointsBillMulti, Err: " + e.Error())
-		return
-	}
-	return
-}
-
-//func init() {
-//	log := models.YanXuanActivityPointsRedis{ActivityId: 2385, SourceType: 5, RegisterPlatform: utils.REGISTER_PLATFORM, Source: 4, CreateTime: time.Now()}
-//	YanXuanActivityPointsBillSubmitMeetingReduce(log)
-//}
-
-// 5:活动到会研选扣点处理
-func YanXuanActivityPointsBillSubmitMeetingReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	//func YanXuanActivityPointsBillSubmitMeetingReduce(activityId int) (err error) {
+// 8 用户观看音视频研选扣点
+func YanXuanActivityVivoPointsBillSignupAdd(activityId, uid int) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
-			go utils.SendAlarmMsg("活动到会研选扣点,处理Redis队列消息失败:"+err.Error()+fmt.Sprint("ActivityId", log.ActivityId, "adminId", log.AdminId), 2)
-		}
-	}()
-
-	activityId := log.ActivityId
-	//获取活动是否扣点以及扣点规则明细
-	activityPointsSetDetail, e := models.GetCygxActivityPointsSetDetail(activityId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsSetDetail" + e.Error())
-		return
-	}
-	if activityPointsSetDetail == nil {
-		return
-	}
-	if activityPointsSetDetail.PointsType != 2 {
-		return // 如果不是到会即扣点,的这种形式,那么就不做任何处理
-	}
-
-	activityInfo, e := models.GetAddActivityInfoByActivityId(activityId)
-	if e != nil {
-		err = errors.New("GetAddActivityInfoByActivityId" + e.Error())
-		return
-	}
-	var companyIds []int
-	mapCompanyPoints := make(map[int]float64) //一组公司的剩余点数
-	var condition string
-	var pars []interface{}
-	condition += ` AND activity_id = ? AND  is_meeting = 1 `
-	pars = append(pars, activityId)
-
-	//获取提交到会的人员信息
-	signUpDetailList, e := models.GetSignupDetailList(condition, pars)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetSignupDetailList" + e.Error())
-		return
-	}
-	if len(signUpDetailList) == 0 {
-		return
-	}
-	for _, v := range signUpDetailList {
-		companyIds = append(companyIds, v.CompanyId)
-	}
-
-	//return
-	pars = make([]interface{}, 0)
-	condition = ` AND company_id IN (` + utils.GetOrmInReplace(len(companyIds)) + `)`
-	pars = append(pars, companyIds)
-	//获取这些公司剩余的点数
-	conpanyList, e := models.GetCygxActivityPointsCompanyList(condition, pars)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsCompanyList, Err: " + e.Error())
-		return
-	}
-
-	pars = make([]interface{}, 0)
-	condition = ` AND activity_id = ? AND  mobile  != ''  `
-	pars = append(pars, activityId)
-	//获取扣点的流水记录
-	activityPointsBillList, e := models.GetCygxActivityPointsBillList(condition, pars)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCygxActivityPointsBillList" + e.Error())
-		return
-	}
-	mapActivityPointsBill := make(map[string]*models.CygxActivityPointsBill)
-	for _, v := range activityPointsBillList {
-		mapActivityPointsBill[v.Mobile] = v
-	}
-	//return
-	for _, v := range conpanyList {
-		if v.CompanyId != 0 {
-			mapCompanyPoints[v.CompanyId] = v.Points
-		}
-	}
-
-	//return
-	var items []*models.CygxActivityPointsBill
-	var itemCompanys []*models.CygxActivityPointsCompany
-	for _, user := range signUpDetailList {
-		item := new(models.CygxActivityPointsBill)
-		item.ActivityId = activityId
-		item.CreateTime = time.Now()
-		item.UserId = user.UserId
-		item.Mobile = user.Mobile
-		item.Email = user.Email
-		item.CompanyId = user.CompanyId
-		item.CompanyName = user.CompanyName
-		item.RealName = user.RealName
-		item.RegisterPlatform = log.RegisterPlatform
-		item.AdminId = log.AdminId
-		item.Source = log.Source
-		item.ChartPermissionId = activityInfo.ChartPermissionId
-		//如果没有扣点记录就对他们进行扣点处理
-		if mapActivityPointsBill[user.Mobile] == nil {
-			item.BillDetailed = -activityPointsSetDetail.UserPointsNum
-			item.DoType = 1
-			item.Content = activityInfo.ActivityName + "--活动到会"
-			item.Points = mapCompanyPoints[user.CompanyId] - activityPointsSetDetail.UserPointsNum
-			items = append(items, item)
-			//更新对应机构的剩余点数
-			itemCompany := new(models.CygxActivityPointsCompany)
-			itemCompany.CompanyId = user.CompanyId
-			itemCompany.Points = item.Points
-			itemCompany.ModifyTime = time.Now()
-			itemCompanys = append(itemCompanys, itemCompany)
-			mapCompanyPoints[user.CompanyId] = item.Points
-		} else {
-			//第二次提交改成未到会的,对其进行返点处理
-			if mapActivityPointsBill[user.Mobile].BillDetailed < 0 {
-				item.BillDetailed = activityPointsSetDetail.UserPointsNum
-				item.DoType = 2
-				item.Content = activityInfo.ActivityName + "--活动取消到会"
-				item.Points = mapCompanyPoints[user.CompanyId] + activityPointsSetDetail.UserPointsNum
-				items = append(items, item)
-
-				//更新对应机构的剩余点数
-				itemCompany := new(models.CygxActivityPointsCompany)
-				itemCompany.CompanyId = user.CompanyId
-				itemCompany.Points = item.Points
-				itemCompany.ModifyTime = time.Now()
-				itemCompanys = append(itemCompanys, itemCompany)
-				mapCompanyPoints[user.CompanyId] = item.Points
-			}
-		}
-	}
-	e = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("AddCygxActivityPointsBillMulti, Err: " + e.Error())
-		return
-	}
-	return
-}
-
-// 6:研选审批通过的时候研选扣点更新
-func YanXuanCompanyApprovalReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	time.Sleep(5 * time.Second) // 延迟5秒处理
-	defer func() {
-		if err != nil {
-			fmt.Println(err)
-			go utils.SendAlarmMsg("研选审批通过的时候研选扣点更新,处理Redis队列消息失败:"+err.Error()+fmt.Sprint(log), 2)
+			msg := fmt.Sprint("activityId:", activityId, "userId:", uid)
+			go utils.SendAlarmMsg("用户观看音视频研选扣点,写入Redis队列消息失败:"+err.Error()+msg, 2)
 		}
 	}()
-	comapnyId := log.ComapnyId
-
-	comapnyDetail, e := models.GetCompanyById(comapnyId)
-	if e != nil {
-		err = errors.New("GetCompanyById" + e.Error())
-		return
-	}
-	total, e := models.GetCygxActivityPointsCompanyCountByCompanyId(comapnyId)
-	if e != nil {
-		err = errors.New("GetCygxActivityPointsCompanyCountByCompanyId, Err: " + e.Error())
-		return
-	}
-
-	//查询研选的权限状态
-	var condition string
-	var pars []interface{}
-	condition += " AND company_id = ? AND status = ? AND chart_permission_id = ?   ORDER BY company_report_permission_id DESC LIMIT 1  "
-	pars = append(pars, comapnyId, "正式", utils.CHART_PERMISSION_ID_YANXUAN)
-	companyReportPermissionDetail, e := models.GetCompanyReportPermissionDetailByCondition(condition, pars)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyPoints, Err: " + e.Error())
-		return
-	}
-	if companyReportPermissionDetail == nil {
-		return // 如果不存在就不做研选扣点处理
-	}
-
-	//获取最近的一条审批合同信息
-	newCompanyApprovalDetail, e := company.GetCompanyApprovalById(comapnyId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyApprovalById, Err: " + e.Error())
-		return
-	}
-	if newCompanyApprovalDetail == nil {
-		return
-	}
-	companyContractId := newCompanyApprovalDetail.CompanyContractId
-
-	totalYxPerminssion, e := company.GetCompanyContractPermissionCheck(companyContractId, utils.CHART_PERMISSION_ID_YANXUAN)
-	if e != nil {
-		err = errors.New("GetCompanyContractPermissionCheck, Err: " + e.Error())
-		return
-	}
-	// 如果最新的审批合同里没有研选的权限,那么就不做处理
-	if totalYxPerminssion == 0 {
-		return
-	}
-
-	var billDetailed float64
-	var content string
-	//ExpensiveYx               int       `description:"权益研选: 0->3w; 1->5w;2->10W"` 3W3次、5W 15次,20w:40次 ,
-	if companyReportPermissionDetail.ExpensiveYx == 1 {
-		billDetailed = 15
-		content = "买方研选(5W)转正"
-	} else if companyReportPermissionDetail.ExpensiveYx == 2 {
-		billDetailed = 40
-		content = "买方研选(10w)转正"
-	} else {
-		billDetailed = 3
-		content = "买方研选(3W)转正"
-	}
-
-	//获取需要添加的流水信息
-	var items []*models.CygxActivityPointsBill
-	item := new(models.CygxActivityPointsBill)
-	//item.UserId = user.UserId
-	//item.ActivityId = activityId
-	item.CreateTime = time.Now()
-	//item.Mobile = user.Mobile
-	//item.Email = user.Email
-	item.CompanyId = comapnyDetail.CompanyId
-	item.CompanyName = comapnyDetail.CompanyName
-	//item.RealName = user.RealName
-	item.BillDetailed = billDetailed
-	item.RegisterPlatform = log.RegisterPlatform
-	item.AdminId = log.AdminId
-	item.Source = log.Source
-	//item.ChartPermissionId = activityInfo.ChartPermissionId
-	item.DoType = 2
-	item.Content = content
-	item.Points = billDetailed
-	items = append(items, item)
-
-	//更新对应机构的剩余点数
-	var itemCompanys []*models.CygxActivityPointsCompany
-	itemCompany := new(models.CygxActivityPointsCompany)
-	itemCompany.CompanyId = comapnyDetail.CompanyId
-	itemCompany.CompanyName = comapnyDetail.CompanyName
-	itemCompany.Points = item.Points
-	itemCompany.CreateTime = time.Now()
-	itemCompany.ModifyTime = time.Now()
-	itemCompanys = append(itemCompanys, itemCompany)
-	//判断是否存在记录,如果有就一个新增一个修改,如果没有就同时新增
-	if total == 0 {
-		err = models.AddCygxActivityPointsBillAndCompanyMulti(items, itemCompanys)
-	} else {
-		err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-	}
-
-	return
-}
-
-// 7:正式专试用定时任务更新研选扣点
-func YanXuanCompanyCompanyTryOutReduce(log models.YanXuanActivityPointsRedis) (err error) {
-	defer func() {
+	//SourceType int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。 8:用户观看音视频研选扣点"`
+	log := &models.YanXuanActivityPointsRedis{UserId: uid, ActivityId: activityId, SourceType: 8, RegisterPlatform: utils.REGISTER_PLATFORM, Source: 1, CreateTime: time.Now()}
+	if utils.Re == nil {
+		err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
 		if err != nil {
-			fmt.Println(err)
-			go utils.SendAlarmMsg("正式专试用定时任务更新研选扣点更新,处理Redis队列消息失败:"+err.Error()+fmt.Sprint(log), 2)
+			fmt.Println("YanXuanActivityPointsRedis LPush Err:" + err.Error())
 		}
-	}()
-	comapnyId := log.ComapnyId
-
-	comapny, e := models.GetCompanyById(comapnyId)
-	if e != nil {
-		err = errors.New("GetCompanyById" + e.Error())
-		return
 	}
-	// 获取用户所在公司剩余的点
-	companyPointsNum, e := models.GetCompanyPoints(comapnyId)
-	if e != nil && e.Error() != utils.ErrNoRow() {
-		err = errors.New("GetCompanyPoints, Err: " + e.Error())
-		return
-	}
-	if companyPointsNum <= 0 {
-		return
-	}
-	//获取需要添加的流水信息
-	var items []*models.CygxActivityPointsBill
-	item := new(models.CygxActivityPointsBill)
-	//item.UserId = user.UserId
-	//item.ActivityId = activityId
-	item.CreateTime = time.Now()
-	//item.Mobile = user.Mobile
-	//item.Email = user.Email
-	item.CompanyId = comapny.CompanyId
-	item.CompanyName = comapny.CompanyName
-	//item.RealName = user.RealName
-	item.BillDetailed = -companyPointsNum
-	item.RegisterPlatform = log.RegisterPlatform
-	item.AdminId = log.AdminId
-	item.Source = log.Source
-	//item.ChartPermissionId = activityInfo.ChartPermissionId
-	item.DoType = 2
-	item.Content = "到期清零"
-	item.Points = 0
-	items = append(items, item)
-
-	//更新对应机构的剩余点数
-	var itemCompanys []*models.CygxActivityPointsCompany
-	itemCompany := new(models.CygxActivityPointsCompany)
-	itemCompany.CompanyId = comapny.CompanyId
-	itemCompany.Points = 0
-	itemCompany.CreateTime = time.Now()
-	itemCompany.ModifyTime = time.Now()
-	itemCompanys = append(itemCompanys, itemCompany)
-
-	err = models.AddCygxActivityPointsBillMulti(items, itemCompanys)
-
 	return
 }