|
@@ -3,11 +3,16 @@ package community
|
|
|
import (
|
|
|
"errors"
|
|
|
"hongze/hongze_yb/models/response"
|
|
|
+ "hongze/hongze_yb/models/tables/chart_permission"
|
|
|
"hongze/hongze_yb/models/tables/company_product"
|
|
|
"hongze/hongze_yb/models/tables/yb_community_video"
|
|
|
"hongze/hongze_yb/models/tables/yb_community_video_play_log"
|
|
|
+ "hongze/hongze_yb/models/tables/yb_road_video"
|
|
|
+ "hongze/hongze_yb/services/company"
|
|
|
"hongze/hongze_yb/services/user"
|
|
|
"hongze/hongze_yb/utils"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -55,13 +60,23 @@ func GetVideoList(pageIndex, pageSize, videoId, varietyTagId int, keywords strin
|
|
|
}
|
|
|
|
|
|
// SaveVideoPlayLog 记录用户播放视频日志
|
|
|
-func SaveVideoPlayLog(userInfo user.UserInfo, videoId, sourceAgent int) (errMsg string, err error) {
|
|
|
- video, e := yb_community_video.GetItemById(videoId)
|
|
|
- if e != nil {
|
|
|
- errMsg = "视频不存在或未发布"
|
|
|
- err = errors.New("获取视频信息失败, Err: " + e.Error())
|
|
|
- return
|
|
|
+func SaveVideoPlayLog(userInfo user.UserInfo, videoId, sourceAgent int, videoType int8) (errMsg string, err error) {
|
|
|
+ if videoType == 1 {
|
|
|
+ _, e := yb_community_video.GetItemById(videoId)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = "视频不存在或未发布"
|
|
|
+ err = errors.New("获取视频信息失败, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ _, e := yb_road_video.GetItemById(videoId)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = "视频不存在或未发布"
|
|
|
+ err = errors.New("获取视频信息失败, Err: " + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
companyInfo, e := company_product.GetByCompany2ProductId(userInfo.CompanyID, 1)
|
|
|
if e != nil && e != utils.ErrNoRow {
|
|
|
errMsg = "保存失败"
|
|
@@ -70,12 +85,14 @@ func SaveVideoPlayLog(userInfo user.UserInfo, videoId, sourceAgent int) (errMsg
|
|
|
}
|
|
|
companyName := "潜在客户"
|
|
|
companyStatus := "潜在"
|
|
|
+ sellerId := 0
|
|
|
if companyInfo != nil && companyInfo.CompanyID > 0 {
|
|
|
companyName = companyInfo.CompanyName
|
|
|
companyStatus = companyInfo.Status
|
|
|
+ sellerId = companyInfo.SellerID
|
|
|
}
|
|
|
item := &yb_community_video_play_log.YbCommunityVideoPlayLog{
|
|
|
- CommunityVideoID: video.CommunityVideoID,
|
|
|
+ CommunityVideoID: videoId,
|
|
|
UserID: int(userInfo.UserID),
|
|
|
Mobile: userInfo.Mobile,
|
|
|
RealName: userInfo.RealName,
|
|
@@ -84,7 +101,8 @@ func SaveVideoPlayLog(userInfo user.UserInfo, videoId, sourceAgent int) (errMsg
|
|
|
CompanyName: companyName,
|
|
|
CompanyStatus: companyStatus,
|
|
|
SourceAgent: sourceAgent,
|
|
|
- SellerID: companyInfo.SellerID,
|
|
|
+ SellerID: sellerId,
|
|
|
+ Type: videoType,
|
|
|
CreateTime: time.Now().Local(),
|
|
|
}
|
|
|
if e = item.Create(); e != nil {
|
|
@@ -94,3 +112,103 @@ func SaveVideoPlayLog(userInfo user.UserInfo, videoId, sourceAgent int) (errMsg
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// GetRoadVideoList 获取线上路演视频列表
|
|
|
+func GetRoadVideoList(userInfo user.UserInfo, pageIndex, pageSize, videoId, chartPermissionId int, keywords string) (resp response.RoadVideoItemResp, err error) {
|
|
|
+ list := make([]*response.RoadVideoItem, 0)
|
|
|
+ //获取有权限的permissionID
|
|
|
+ validPermissionList, err := company.GetValidPermissionByCompany2ProductId(userInfo.CompanyID, 1)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionIds := ""
|
|
|
+ for _, v := range validPermissionList {
|
|
|
+ permissionIds += "'"+strconv.Itoa(v.ChartPermissionID) + "'|"
|
|
|
+ }
|
|
|
+ if permissionIds == "" {
|
|
|
+ resp.List = list
|
|
|
+ resp.Paging = response.GetPaging(pageIndex, pageSize, 0)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionIds = strings.Trim(permissionIds,"|")
|
|
|
+ condition := `is_deleted = 0 AND publish_state = 1 and chart_permission_ids REGEXP "(`+permissionIds+`)"`
|
|
|
+ var par []interface{}
|
|
|
+ // 分享点进来的直接定位到具体视频
|
|
|
+ if videoId > 0 {
|
|
|
+ condition += " and road_video_id = ?"
|
|
|
+ par = append(par, videoId)
|
|
|
+ } else {
|
|
|
+ if chartPermissionId > 0 {
|
|
|
+ condition += ` and FIND_IN_SET("'`+strconv.Itoa(chartPermissionId)+`'", chart_permission_ids)`
|
|
|
+ }
|
|
|
+ if keywords != "" {
|
|
|
+ condition += " and title like ? "
|
|
|
+ par = append(par,"%" + keywords + "%")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ videoList, total, e := yb_road_video.GetPageListByCondition(condition, par, pageIndex, pageSize)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("获取视频列表失败, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(videoList) <= 0 {
|
|
|
+ resp.List = list
|
|
|
+ resp.Paging = response.GetPaging(pageIndex, pageSize, 0)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ chartPermissionIdSlice := make([]int, 0)
|
|
|
+ chartNameMap := make(map[string]string)
|
|
|
+ for _, v := range videoList {
|
|
|
+ tmp := strings.Split(v.ChartPermissionIds, ",")
|
|
|
+ for _, t1 := range tmp {
|
|
|
+ i, _ := strconv.Atoi(strings.Trim(t1, "'"))
|
|
|
+ chartPermissionIdSlice = append(chartPermissionIdSlice, i)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(chartPermissionIdSlice) > 0 {
|
|
|
+ chartList, e := chart_permission.GetListByIds(chartPermissionIdSlice)
|
|
|
+ if e != nil {
|
|
|
+ err = errors.New("获取品种信息失败, Err:" + e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range chartList {
|
|
|
+ chartNameMap["'"+strconv.Itoa(int(v.ChartPermissionID))+"'"] = v.ChartPermissionName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var chartPermissionNames string
|
|
|
+ for _, v := range videoList {
|
|
|
+ chartPermissionNames = ""
|
|
|
+ tmpSlice := strings.Split(v.ChartPermissionIds, ",")
|
|
|
+ if len(tmpSlice) > 0 {
|
|
|
+ for _, cid := range tmpSlice {
|
|
|
+ if name, ok := chartNameMap[cid]; ok {
|
|
|
+ chartPermissionNames += name + ","
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if chartPermissionNames != "" {
|
|
|
+ chartPermissionNames = strings.Trim(chartPermissionNames, ",")
|
|
|
+ }
|
|
|
+ item := &response.RoadVideoItem{
|
|
|
+ RoadVideoID: v.RoadVideoID,
|
|
|
+ Title: v.Title,
|
|
|
+ ChartPermissionIds: v.ChartPermissionIds,
|
|
|
+ ChartPermissionName: chartPermissionNames,
|
|
|
+ CoverImgUrl: v.CoverImgURL,
|
|
|
+ VideoUrl: v.VideoURL,
|
|
|
+ VideoSeconds: v.VideoSeconds,
|
|
|
+ PublishState: v.PublishState,
|
|
|
+ AdminId: v.AdminId,
|
|
|
+ AdminRealName: v.AdminRealName,
|
|
|
+ PublishTime: v.PublishTime.Format(utils.FormatDateTime),
|
|
|
+ CreateTime: v.CreateTime.Format(utils.FormatDateTime),
|
|
|
+ ModifyTime: v.ModifyTime.Format(utils.FormatDateTime),
|
|
|
+ }
|
|
|
+ list = append(list, item)
|
|
|
+ }
|
|
|
+ resp.List = list
|
|
|
+ resp.Paging = response.GetPaging(pageIndex, pageSize, int(total))
|
|
|
+ return
|
|
|
+}
|