xingzai 10 месяцев назад
Родитель
Сommit
66eb7e4865

+ 31 - 28
controllers/activity.go

@@ -780,6 +780,8 @@ func (this *ActivityNoLoginController) Detail() {
 		return
 		return
 	}
 	}
 	resp.IsResearchSpecial = isResearchSpecial
 	resp.IsResearchSpecial = isResearchSpecial
+	var mapActivityId []int
+	mapActivityId = append(mapActivityId, activityId)
 	if havePower {
 	if havePower {
 		resp.HasPermission = 1
 		resp.HasPermission = 1
 		//permissionArr := make([]string, 0)
 		//permissionArr := make([]string, 0)
@@ -864,34 +866,6 @@ func (this *ActivityNoLoginController) Detail() {
 		}
 		}
 		detailResp.Listndustrial = industrialList
 		detailResp.Listndustrial = industrialList
 
 
-		//处理音频回放
-		var mapActivityId []int
-		mapActivityId = append(mapActivityId, activityId)
-		mapActivityVoice, err := services.GetActivityVoiceResp(mapActivityId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "GetActivityVoiceResp,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
-			return
-		}
-		if mapActivityVoice[activityId] != nil {
-			detailResp.FileType = 1
-			detailResp.AudioLink = true
-			detailResp.VoiceDetail = mapActivityVoice[activityId]
-		}
-		//处理视频回放
-		mapActivityVideo, err := services.GetActivityVideoResp(mapActivityId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "GetActivityVideoResp,Err:" + err.Error()
-			return
-		}
-
-		if mapActivityVideo[activityId] != nil {
-			detailResp.FileType = 2
-			detailResp.AudioLink = true
-			detailResp.VideoDetail = mapActivityVideo[activityId]
-		}
-
 		//处理不同的报名方式按钮回显
 		//处理不同的报名方式按钮回显
 		mapActivitySignup, err := services.GetActivitySignupResp(mapActivityId, user)
 		mapActivitySignup, err := services.GetActivitySignupResp(mapActivityId, user)
 		if err != nil {
 		if err != nil {
@@ -918,6 +892,15 @@ func (this *ActivityNoLoginController) Detail() {
 		resp.IsCompanyApply = services.GetUserApplyRecordCountByCompanyIdPay(user.CompanyId)         //获取客户是否有过历史申请记录
 		resp.IsCompanyApply = services.GetUserApplyRecordCountByCompanyIdPay(user.CompanyId)         //获取客户是否有过历史申请记录
 		resp.IsNeedBusinessCard = services.GetCygxUserBusinessCardCount(user.UserId, user.CompanyId) //是否需要上传名片
 		resp.IsNeedBusinessCard = services.GetCygxUserBusinessCardCount(user.UserId, user.CompanyId) //是否需要上传名片
 	}
 	}
+
+	//处理音频回放
+	mapActivityVoice, err := services.GetActivityVoiceResp(mapActivityId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "GetActivityVoiceResp,Err:" + err.Error() + "activityId:" + strconv.Itoa(activityId)
+		return
+	}
+
 	// 判断是否属于研选类型的活动
 	// 判断是否属于研选类型的活动
 	if strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 	if strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
 		resp.IsResearch = true
 		resp.IsResearch = true
@@ -956,6 +939,26 @@ func (this *ActivityNoLoginController) Detail() {
 	}
 	}
 	detailResp.ShareImg = services.GetActivityShareImg(activityInfo)
 	detailResp.ShareImg = services.GetActivityShareImg(activityInfo)
 	detailResp.AuthInfo.HasPermission = resp.HasPermission
 	detailResp.AuthInfo.HasPermission = resp.HasPermission
+
+	if mapActivityVoice[activityId] != nil {
+		detailResp.FileType = 1
+		detailResp.AudioLink = true
+		detailResp.VoiceDetail = mapActivityVoice[activityId]
+	}
+	//处理视频回放
+	mapActivityVideo, err := services.GetActivityVideoResp(mapActivityId)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "GetActivityVideoResp,Err:" + err.Error()
+		return
+	}
+
+	if mapActivityVideo[activityId] != nil {
+		detailResp.FileType = 2
+		detailResp.AudioLink = true
+		detailResp.VideoDetail = mapActivityVideo[activityId]
+	}
+
 	resp.Detail = detailResp
 	resp.Detail = detailResp
 	br.Ret = 200
 	br.Ret = 200
 	br.Success = true
 	br.Success = true

+ 3 - 2
controllers/micro_roadshow.go

@@ -307,16 +307,17 @@ func (this *MicroRoadShowController) VideoHistoryAdd() {
 	sourceId := req.SourceId
 	sourceId := req.SourceId
 	playSeconds := req.PlaySeconds
 	playSeconds := req.PlaySeconds
 	sourceType := req.SourceType
 	sourceType := req.SourceType
+	inviteShareCode := req.InviteShareCode
 
 
 	if sourceType == 0 {
 	if sourceType == 0 {
 		sourceType = 1
 		sourceType = 1
 	}
 	}
 	if sourceType == 1 {
 	if sourceType == 1 {
 		//添加活动音频的播放记录
 		//添加活动音频的播放记录
-		go services.AddActivityVoiceHistory(user, sourceId, playSeconds)
+		go services.AddActivityVoiceHistory(user, sourceId, playSeconds, inviteShareCode)
 	} else if sourceType == 2 {
 	} else if sourceType == 2 {
 		//添加活动视频的播放记录
 		//添加活动视频的播放记录
-		go services.AddActivityVideoHistory(user, sourceId, playSeconds)
+		go services.AddActivityVideoHistory(user, sourceId, playSeconds, inviteShareCode)
 	} else if sourceType == 3 {
 	} else if sourceType == 3 {
 		//添加产业视频播放记录
 		//添加产业视频播放记录
 		go services.AddMicroRoadshowVideoRecord(user, sourceId, playSeconds)
 		go services.AddMicroRoadshowVideoRecord(user, sourceId, playSeconds)

+ 4 - 4
models/activity.go

@@ -299,10 +299,10 @@ type VivoPointsResp struct {
 	PointPermission int    `description:"1:点数充足、2点数不足需付费、3:只能付费"`
 	PointPermission int    `description:"1:点数充足、2点数不足需付费、3:只能付费"`
 	CompanyPoints   string `description:"公司剩余点数"`
 	CompanyPoints   string `description:"公司剩余点数"`
 	ActivityPoints  string `description:"本场活动要扣除的点数"`
 	ActivityPoints  string `description:"本场活动要扣除的点数"`
-	Title           string `description:"标题"`
-	ResourceUrl     string `description:"链接"`
-	Type            int    `description:"类型: 1-活动音频; 2-活动视频;"`
-	PlaySeconds     string `description:"音视频时长"`
+	//Title           string `description:"标题"`
+	//ResourceUrl     string `description:"链接"`
+	//Type            int    `description:"类型: 1-活动音频; 2-活动视频;"`
+	//PlaySeconds     string `description:"音视频时长"`
 }
 }
 
 
 type CygxYidongActivityUrlResp struct {
 type CygxYidongActivityUrlResp struct {

+ 4 - 3
models/micro_roadshow.go

@@ -66,9 +66,10 @@ func GetMicroRoadshowVideoByVideoId(videoId int) (item *CygxMicroRoadshowVideo,
 }
 }
 
 
 type AddVideoHistoryReq struct {
 type AddVideoHistoryReq struct {
-	SourceId    int `description:"资源ID"`
-	PlaySeconds int `description:"播放时长"`
-	SourceType  int `description:"音视频来源: 1-活动音频; 2-活动视频; 3-产业视频; 4-系列问答"`
+	SourceId        int    `description:"资源ID"`
+	PlaySeconds     int    `description:"播放时长"`
+	SourceType      int    `description:"音视频来源: 1-活动音频; 2-活动视频; 3-产业视频; 4-系列问答"`
+	InviteShareCode string `description:"销售账号邀请码"`
 }
 }
 
 
 type CygxMicroRoadshowVideoHistory struct {
 type CygxMicroRoadshowVideoHistory struct {

+ 42 - 18
services/cygx_activity_video_history.go

@@ -49,7 +49,7 @@ import (
 //}
 //}
 
 
 // 记录用户活动音频播放记录
 // 记录用户活动音频播放记录
-func AddActivityVideoHistory(user *models.WxUserItem, activityId, playSeconds int) {
+func AddActivityVideoHistory(user *models.WxUserItem, activityId, playSeconds int, inviteShareCode string) {
 	// 十分钟之内的合并
 	// 十分钟之内的合并
 	key := utils.CYGX_VIDEO_HISTORY_KEY + utils.CYGX_OBJ_ACTIVITYVIDEO + strconv.Itoa(activityId) + "_" + strconv.Itoa(user.UserId)
 	key := utils.CYGX_VIDEO_HISTORY_KEY + utils.CYGX_OBJ_ACTIVITYVIDEO + strconv.Itoa(activityId) + "_" + strconv.Itoa(user.UserId)
 	if utils.Rc.IsExist(key) {
 	if utils.Rc.IsExist(key) {
@@ -59,7 +59,7 @@ func AddActivityVideoHistory(user *models.WxUserItem, activityId, playSeconds in
 	var err error
 	var err error
 	defer func() {
 	defer func() {
 		if err != nil {
 		if err != nil {
-			go utils.SendAlarmMsg(fmt.Sprint("记录用户活动音频播放记录失败 AddActivityVoiceHistory Err:", err.Error(), "活动ID:", activityId, "UserId:", user.UserId), 2)
+			go utils.SendAlarmMsg(fmt.Sprint("添加活动视频的播放记录失败 AddActivityVideoHistory Err:", err.Error(), "活动ID:", activityId, "UserId:", user.UserId), 2)
 		}
 		}
 	}()
 	}()
 	activityVideoInfo, e := models.GetCygxActivityVideoByActivityId(activityId)
 	activityVideoInfo, e := models.GetCygxActivityVideoByActivityId(activityId)
@@ -91,27 +91,30 @@ func AddActivityVideoHistory(user *models.WxUserItem, activityId, playSeconds in
 	//添加记录
 	//添加记录
 	e = models.AddCygxActivityVideoHistory(item)
 	e = models.AddCygxActivityVideoHistory(item)
 	if e != nil {
 	if e != nil {
-		err = errors.New("AddCygxActivityVoiceHistory, Err: " + e.Error())
+		err = errors.New("AddCygxActivityVideoHistory, Err: " + e.Error())
 		return
 		return
 	}
 	}
 	//播放记录加1
 	//播放记录加1
 	e = models.UpdateActivityVideoCounts(activityId)
 	e = models.UpdateActivityVideoCounts(activityId)
 	if e != nil {
 	if e != nil {
-		err = errors.New("UpdateCygxActivityVoiceCounts, Err: " + e.Error())
+		err = errors.New("UpdateActivityVideoCounts, Err: " + e.Error())
 		return
 		return
 	}
 	}
 	//设置消息提醒
 	//设置消息提醒
 	go ActivityVideoUserRmind(user, activityId, 1)
 	go ActivityVideoUserRmind(user, activityId, 1)
+
+	go AddCygxUserAdminShareHistory(user, utils.CYGX_OBJ_ACTIVITYVIDEO, activityVideoInfo.VideoName, inviteShareCode, activityId)
+
 	return
 	return
 }
 }
 
 
 // 记录用户活动音频播放记录
 // 记录用户活动音频播放记录
-func AddActivityVoiceHistory(user *models.WxUserItem, activityId, playSeconds int) {
-	key := utils.CYGX_VIDEO_HISTORY_KEY + utils.CYGX_OBJ_ACTIVITYVOICE + strconv.Itoa(activityId) + "_" + strconv.Itoa(user.UserId)
-	if utils.Rc.IsExist(key) {
+func AddActivityVoiceHistory(user *models.WxUserItem, activityId, playSeconds int, inviteShareCode string) {
+	if playSeconds == 0 {
 		return
 		return
 	}
 	}
-	utils.Rc.Put(key, 1, 10*time.Minute)
+	key := utils.CYGX_VIDEO_HISTORY_KEY + utils.CYGX_OBJ_ACTIVITYVOICE + strconv.Itoa(activityId) + "_" + strconv.Itoa(user.UserId)
+
 	var err error
 	var err error
 	defer func() {
 	defer func() {
 		if err != nil {
 		if err != nil {
@@ -138,19 +141,40 @@ func AddActivityVoiceHistory(user *models.WxUserItem, activityId, playSeconds in
 	if sellerItem != nil {
 	if sellerItem != nil {
 		item.SellerName = sellerItem.RealName
 		item.SellerName = sellerItem.RealName
 	}
 	}
-	//添加记录
-	e = models.AddCygxActivityVoiceHistory(item)
+	activityVoiceInfo, e := models.GetCygxActivityVoiceByActivityId(activityId)
 	if e != nil {
 	if e != nil {
-		err = errors.New("AddCygxActivityVoiceHistory, Err: " + e.Error())
+		err = errors.New("GetCygxActivityVoiceByActivityId, Err: " + e.Error())
 		return
 		return
 	}
 	}
-	//播放记录加1
-	e = models.UpdateCygxActivityVoiceCounts(activityId)
-	if e != nil {
-		err = errors.New("UpdateCygxActivityVoiceCounts, Err: " + e.Error())
-		return
+	if !utils.Rc.IsExist(key) {
+		//添加记录
+		e = models.AddCygxActivityVoiceHistory(item)
+		if e != nil {
+			err = errors.New("AddCygxActivityVoiceHistory, Err: " + e.Error())
+			return
+		}
+		//播放记录加1
+		e = models.UpdateCygxActivityVoiceCounts(activityId)
+		if e != nil {
+			err = errors.New("UpdateCygxActivityVoiceCounts, Err: " + e.Error())
+			return
+		}
+		utils.Rc.Put(key, 1, 10*time.Minute)
+		//设置消息提醒
+		go ActivityVideoUserRmind(user, activityId, 2)
+		go AddCygxUserAdminShareHistory(user, utils.CYGX_OBJ_ACTIVITYVOICE, activityVoiceInfo.VoiceName, inviteShareCode, activityId)
+	} else {
+		lastItem, e := models.GetLastCygxActivityVoiceHistory(activityId, user.UserId)
+		if e != nil {
+			err = errors.New("GetLastCygxActivityVoiceHistory, Err: " + e.Error())
+			return
+		}
+		e = models.UpdateLastCygxActivityVoiceHistory(strconv.Itoa(playSeconds), lastItem.Id)
+		if e != nil {
+			err = errors.New("UpdateLastCygxActivityVoiceHistory, Err: " + e.Error())
+			return
+		}
 	}
 	}
-	//设置消息提醒
-	go ActivityVideoUserRmind(user, activityId, 2)
+
 	return
 	return
 }
 }

+ 21 - 21
services/order.go

@@ -195,27 +195,27 @@ func GetActivityVivoPoints(item *models.ActivityDetail, wxUser *models.WxUserIte
 		}
 		}
 	}
 	}
 
 
-	if vivoPointsSetDetail.Source == utils.CYGX_OBJ_ACTIVITYVIDEO { //活动视频
-		activityVideoInfo, e := models.GetCygxActivityVideoByActivityId(activityId)
-		if e != nil {
-			err = errors.New("GetCygxActivityVideoByActivityId, Err: " + e.Error())
-			return
-		}
-		vivoPointsResp.Type = 2
-		vivoPointsResp.Title = activityVideoInfo.VideoName
-		vivoPointsResp.ResourceUrl = activityVideoInfo.VideoUrl
-		vivoPointsResp.PlaySeconds = activityVideoInfo.VideoDuration
-	} else if vivoPointsSetDetail.Source == utils.CYGX_OBJ_ACTIVITYVOICE { //活动音频
-		activityVoiceInfo, e := models.GetCygxActivityVoiceByActivityId(activityId)
-		if e != nil {
-			err = errors.New("GetCygxActivityVoiceByActivityId, Err: " + e.Error())
-			return
-		}
-		vivoPointsResp.Type = 1
-		vivoPointsResp.Title = activityVoiceInfo.VoiceName
-		vivoPointsResp.ResourceUrl = activityVoiceInfo.VoiceUrl
-		vivoPointsResp.PlaySeconds = activityVoiceInfo.VoicePlaySeconds
-	}
+	//if vivoPointsSetDetail.Source == utils.CYGX_OBJ_ACTIVITYVIDEO { //活动视频
+	//	activityVideoInfo, e := models.GetCygxActivityVideoByActivityId(activityId)
+	//	if e != nil {
+	//		err = errors.New("GetCygxActivityVideoByActivityId, Err: " + e.Error())
+	//		return
+	//	}
+	//	vivoPointsResp.Type = 2
+	//	vivoPointsResp.Title = activityVideoInfo.VideoName
+	//	vivoPointsResp.ResourceUrl = activityVideoInfo.VideoUrl
+	//	vivoPointsResp.PlaySeconds = activityVideoInfo.VideoDuration
+	//} else if vivoPointsSetDetail.Source == utils.CYGX_OBJ_ACTIVITYVOICE { //活动音频
+	//	activityVoiceInfo, e := models.GetCygxActivityVoiceByActivityId(activityId)
+	//	if e != nil {
+	//		err = errors.New("GetCygxActivityVoiceByActivityId, Err: " + e.Error())
+	//		return
+	//	}
+	//	vivoPointsResp.Type = 1
+	//	vivoPointsResp.Title = activityVoiceInfo.VoiceName
+	//	vivoPointsResp.ResourceUrl = activityVoiceInfo.VoiceUrl
+	//	vivoPointsResp.PlaySeconds = activityVoiceInfo.VoicePlaySeconds
+	//}
 	return
 	return
 }
 }
 
 

+ 6 - 1
services/user_admin_share.go

@@ -89,8 +89,13 @@ func AddCygxUserAdminShareHistory(user *models.WxUserItem, source, sourceTitle,
 		item.Action = "查看活动"
 		item.Action = "查看活动"
 	case utils.CYGX_OBJ_ARTICLE:
 	case utils.CYGX_OBJ_ARTICLE:
 		item.Action = "查看报告"
 		item.Action = "查看报告"
-	case utils.CYGX_OBJ_YANXUANSPECIAL:
+	case utils.CYGX_OBJ_ACTIVITYVIDEO:
 		item.Action = "查看专栏"
 		item.Action = "查看专栏"
+	case utils.CYGX_OBJ_ACTIVITYVOICE:
+		item.Action = "查看活动回放"
+	case utils.CYGX_OBJ_YANXUANSPECIAL:
+		item.Action = "查看活动回放"
+
 	case "login":
 	case "login":
 		item.Action = "注册"
 		item.Action = "注册"
 	}
 	}