Browse Source

Merge branch 'mfyx_3.6' of http://8.136.199.33:3000/hongze/hongze_cygx

xingzai 7 months ago
parent
commit
c09f42f24a

+ 25 - 22
controllers/activity.go

@@ -465,29 +465,32 @@ func (this *ActivityCoAntroller) Detail() {
 		//处理音频回放
 		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 {
-			activityInfo.FileType = 1
-			activityInfo.AudioLink = true
-			activityInfo.VoiceList = mapActivityVoice[activityId]
-		}
 
-		//处理视频回放
-		mapActivityVideo, err := services.GetActivityVideoResp(mapActivityId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "GetActivityVideoResp,Err:" + err.Error()
-			return
-		}
-		if mapActivityVideo[activityId] != nil {
-			activityInfo.FileType = 2
-			activityInfo.AudioLink = true
-			activityInfo.VideoDetail = mapActivityVideo[activityId]
+		if activityInfo.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN { // 研选的音视频不在查研展示
+			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 {
+				activityInfo.FileType = 1
+				activityInfo.AudioLink = true
+				activityInfo.VoiceList = mapActivityVoice[activityId]
+			}
+
+			//处理视频回放
+			mapActivityVideo, err := services.GetActivityVideoResp(mapActivityId)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "GetActivityVideoResp,Err:" + err.Error()
+				return
+			}
+			if mapActivityVideo[activityId] != nil {
+				activityInfo.FileType = 2
+				activityInfo.AudioLink = true
+				activityInfo.VideoDetail = mapActivityVideo[activityId]
+			}
 		}
 		//8.5 小程序活动详情页 除专家电话外 其余属于新产业的活动 ,不显示 new 标签
 		if activityInfo.ActivityTypeName != "专家电话会" {

+ 1 - 1
controllers/home.go

@@ -671,7 +671,7 @@ func (this *HomeController) NewList() {
 	//	condition += `  AND IF ( source = 'activity' , source_id  NOT IN (` + utils.GetOrmInReplace(lenyiDongactivityIds) + `) ,1=1 ) `
 	//	pars = append(pars, yiDongactivityIds)
 	//} else {
-	condition += ` AND source NOT IN ('activity','activityspecial','newchart','industrialsourceHz','industrialsourceYx') ` + conditionInit
+	condition += ` AND source NOT IN ('activity','activityspecial','newchart','industrialsourceHz','industrialsourceYx')   AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 )  ` + conditionInit
 	//conditionActivity, err := services.GetActivityonditionList(user, "", "", "", "1,2,3", "", 0, 0, "", 0, 1)
 	conditionActivity, err := services.ActivityConditioninitSql(user, "", 0)
 	if err != nil && err.Error() != utils.ErrNoRow() {

+ 9 - 1
models/activity_video.go

@@ -81,7 +81,15 @@ func GetCygxActivityVideoByActivityId(activityId int) (item *CygxActivityVideo,
 	return
 }
 
-// GetCygxActivityVideoByActivityId 获取活动视频
+// 获取数量
+func GetCygxActivityVideoCount(activityId int) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_video   WHERE activity_id = ? `
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, activityId).QueryRow(&count)
+	return
+}
+
+// GetCygxActivityVideoReqByActivityId 获取活动视频
 func GetCygxActivityVideoReqByActivityId(activityId int) (item *CygxActivityVideoReq, err error) {
 	sql := `SELECT * FROM cygx_activity_video WHERE video_id = ? LIMIT 1 `
 	err = orm.NewOrm().Raw(sql, activityId).QueryRow(&item)

+ 32 - 0
models/activity_vivo_points_set.go

@@ -0,0 +1,32 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxActivityVivoPointsSet struct {
+	PointSetId   int       `orm:"column(point_set_id);pk";comment:"主键id"`
+	ActivityId   int       `comment:"活动ID"`
+	PointsObject string    `comment:"扣点设置方式 1:同报名参会时的扣点数、2:输入其余点数"`
+	PointsNum    float64   `comment:"扣点数量"`
+	GoodsMoney   float64   `comment:"商品总价"`
+	Source       string    `comment:"来源 activityvideo 活动视频、activityvoice 活动音频"`
+	CreateTime   time.Time `comment:"创建时间"`
+	ModifyTime   time.Time `comment:"更新时间"`
+}
+
+// 根据活动ID判断音视频是否设置了扣点
+func GetCygxActivityVivoPointsSetCountByActivityId(activityId int) (count int, err error) {
+	o := orm.NewOrm()
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_vivo_points_set  WHERE activity_id =?  `
+	err = o.Raw(sqlCount, activityId).QueryRow(&count)
+	return
+}
+
+func GetCygxActivityVivoPointsSetByActivityId(activityId int) (item *CygxActivityVivoPointsSet, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_activity_vivo_points_set WHERE activity_id = ?  `
+	err = o.Raw(sql, activityId).QueryRow(&item)
+	return
+}

+ 8 - 0
models/activity_voice.go

@@ -103,6 +103,14 @@ func GetCygxActivityVoiceByActivityId(activityId int) (item *CygxActivityVoice,
 	return
 }
 
+// 获取数量
+func GetCygxActivityVoiceCount(activityId int) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_voice   WHERE activity_id = ? `
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, activityId).QueryRow(&count)
+	return
+}
+
 // 列表
 func GetActivityVoiceList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityVoiceResp, err error) {
 	o := orm.NewOrm()

+ 106 - 0
services/activity_points.go

@@ -174,6 +174,10 @@ func YanXuanActivityPointsBillReduce() (err error) {
 				go YanXuanCompanyCompanyTryOutReduce(log)
 				fmt.Println("7:正式专试用定时任务更新研选扣点。")
 				break
+			case 8:
+				go YanXuanActivityVivoPointsBillSignupReduce(log)
+				fmt.Println("8:播放研选扣点音视频。")
+				break
 			default:
 				fmt.Println(string(b))
 				go utils.SendAlarmMsg("处理研选活动扣点处理Redis队列消息失败:"+string(b), 2)
@@ -1092,3 +1096,105 @@ func YanXuanCompanyCompanyTryOutReduce(log models.YanXuanActivityPointsRedis) (e
 
 	return
 }
+
+// 8:用户观看音视频研选扣点处理
+func YanXuanActivityVivoPointsBillSignupReduce(log models.YanXuanActivityPointsRedis) (err error) {
+	//func YanXuanActivityPointsBillSubmitMeetingReduce(activityId int) (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
+	//获取活动是否扣点以及扣点规则明细
+	vivoPointsSetDetail, e := models.GetCygxActivityVivoPointsSetByActivityId(activityId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCygxActivityVivoPointsSetByActivityId" + e.Error())
+		return
+	}
+	if vivoPointsSetDetail == nil {
+		return
+	}
+
+	var vivoName string
+
+	activityInfo, e := models.GetAddActivityInfoByActivityId(activityId)
+	if e != nil {
+		err = errors.New("GetAddActivityInfoByActivityId" + e.Error())
+		return
+	}
+	totalVi, e := models.GetCygxActivityVideoCount(activityId)
+	if e != nil {
+		err = errors.New("GetCygxActivityVideoCount" + e.Error())
+		return
+	}
+	if totalVi > 0 {
+		activityVideoInfo, e := models.GetCygxActivityVideoByActivityId(activityId)
+		if e != nil {
+			err = errors.New("GetCygxActivityVideoByActivityId, Err: " + e.Error())
+			return
+		}
+		vivoName = activityVideoInfo.VideoName // 视频名称
+	} else {
+		totalVo, e := models.GetCygxActivityVoiceCount(activityId)
+		if e != nil {
+			err = errors.New("GetCygxActivityVoiceCount" + e.Error())
+			return
+		}
+		if totalVo > 0 {
+			activityVoiceInfo, e := models.GetCygxActivityVoiceByActivityId(activityId)
+			if e != nil {
+				err = errors.New("GetCygxActivityVoiceByActivityId, Err: " + e.Error())
+				return
+			}
+			vivoName = activityVoiceInfo.VoiceName // 音频名称
+		}
+	}
+
+	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 = -vivoPointsSetDetail.PointsNum
+	item.RegisterPlatform = log.RegisterPlatform
+	item.AdminId = log.AdminId
+	item.Source = log.Source
+	item.ChartPermissionId = activityInfo.ChartPermissionId
+	item.DoType = 1
+	item.Content = "查看活动回放-" + vivoName
+	item.Points = companyPointsNum - vivoPointsSetDetail.PointsNum
+	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
+}

+ 5 - 9
services/es_comprehensive.go

@@ -1556,7 +1556,7 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 	keyWord = "%" + keyWord + "%"
 	var conditionTitle string
 	var parsTitle []interface{}
-	conditionTitle = " AND search_title LIKE ? "
+	conditionTitle = " AND search_title LIKE ? AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 ) "
 	parsTitle = append(parsTitle, keyWord)
 	totalTitle, e := models.GetResourceDataCount(conditionTitle, parsTitle)
 	if e != nil {
@@ -1567,7 +1567,7 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 	var conditionContent string
 	var parsContent []interface{}
 
-	conditionContent = " AND search_content LIKE ? AND search_title  NOT LIKE ?  "
+	conditionContent = " AND search_content LIKE ? AND search_title  NOT LIKE ?  AND IF   ( source IN('activityvoice','activityvideo') , chart_permission_id != 31 ,1=1 ) "
 	parsContent = append(parsContent, keyWord, keyWord)
 	totalContent, e := models.GetResourceDataCount(conditionContent, parsContent)
 	if e != nil {
@@ -1577,11 +1577,10 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 	var searchTotal int
 	searchTotal = (startSize/pageSize + 1) * pageSize
 	var list []*models.CygxResourceData
-	fmt.Println("totalTitle", totalTitle)
-	fmt.Println("totalContent", totalContent)
-	fmt.Println(searchTotal)
+	//fmt.Println("totalTitle", totalTitle)
+	//fmt.Println("totalContent", totalContent)
+	//fmt.Println(searchTotal)
 	if totalTitle >= searchTotal {
-		fmt.Println("1")
 		//全部都是标题搜索
 		list, e = models.GetResourceDataListCondition(conditionTitle, parsTitle, startSize, pageSize)
 		if e != nil && e.Error() != utils.ErrNoRow() {
@@ -1589,7 +1588,6 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 			return
 		}
 	} else if totalTitle <= searchTotal-pageSize {
-		fmt.Println("2")
 		//全部都是内容搜索
 		startSize = startSize - totalTitle
 
@@ -1599,9 +1597,7 @@ func SqlComprehensiveSearch(keyWord string, startSize, pageSize int) (result []*
 			return
 		}
 	} else {
-		fmt.Println("3")
 		//一半标题搜索,一半内容搜索
-
 		list, e = models.GetResourceDataListCondition(conditionTitle, parsTitle, startSize, pageSize)
 		if e != nil && e.Error() != utils.ErrNoRow() {
 			err = errors.New("GetResourceDataListCondition, Err: " + e.Error())

+ 4 - 4
services/micro_roadshow.go

@@ -384,10 +384,10 @@ func GetMicroRoadShowPageListV12(pageSize, currentIndex, sourceId, tableType int
 		conditionAskserie += ` AND a.chart_permission_id IN (` + chartPermissionIds + `)`
 	}
 	//发布状态
-	audioAct += ` AND  b.publish_status = 1 `
-	videoAct += ` AND  b.publish_status = 1 `
-	videoMico += ` AND  a.publish_status = 1 `
-	conditionAskserie += ` AND  a.publish_status = 1 `
+	audioAct += ` AND  b.publish_status = 1 AND  b.chart_permission_id  != 31 `
+	videoAct += ` AND  b.publish_status = 1  AND  b.chart_permission_id  != 31 `
+	videoMico += ` AND  a.publish_status = 1 AND  a.chart_permission_id  != 31 `
+	conditionAskserie += ` AND  a.publish_status = 1  AND  a.chart_permission_id  != 31 `
 
 	total, videoList, e = models.GetMicroRoadShowVideoPageListV12(startSize, pageSize, audioAct, audioActPars, videoAct, videoActPars, videoMico, videoMicoPars, conditionAskserie, askseriePars)
 	if e != nil {

+ 2 - 2
services/order.go

@@ -149,7 +149,7 @@ func HandleOrderByWechatPay(itemCallback *Transaction) {
 			err = errors.New("AddCygxOrderUserCard, Err: " + e.Error())
 			return
 		}
-	} else if orderDetail.OrderType == 2 {
+	} else if orderDetail.OrderType == 2 || orderDetail.OrderType == 3 {
 		//如果是活动,把单场付费信息的活动写入 用户虚拟资产表
 		itemOrderVirtualAsset := new(order.CygxOrderVirtualAsset)
 		itemOrderVirtualAsset.OrderCode = orderDetail.OrderCode
@@ -292,7 +292,7 @@ func HandleOrderRefundByWechatPay(itemCallback *Transaction) {
 			err = errors.New("RemoveCygxOrderUserCard, Err: " + e.Error())
 			return
 		}
-	} else if orderDetail.OrderType == 2 {
+	} else if orderDetail.OrderType == 2 || orderDetail.OrderType == 3 {
 		//如果是活动,把单场付费信息的活动写入 用户虚拟资产表
 		itemOrderVirtualAsset := new(order.CygxOrderVirtualAsset)
 		itemOrderVirtualAsset.OrderCode = orderDetail.OrderCode