123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- package services
- import (
- "errors"
- "eta/eta_api/models"
- "eta/eta_api/models/system"
- "eta/eta_api/utils"
- "fmt"
- "strconv"
- "strings"
- "time"
- )
- // GetEnglishVideoCoverList 封面库列表
- func GetEnglishVideoCoverList(condition string, pars []interface{}, orderRule string, startSize, pageSize int) (total int, resp *models.EnglishVideoCoverListResp, err error) {
- resp = new(models.EnglishVideoCoverListResp)
- total, list, e := models.GetEnglishVideoCoverPageList(condition, pars, orderRule, startSize, pageSize)
- if e != nil {
- err = errors.New("获取封面库列表失败, Err:" + e.Error())
- return
- }
- if len(list) == 0 {
- return
- }
- respList := make([]*models.EnglishVideoCoverItem, 0)
- for _, v := range list {
- item := &models.EnglishVideoCoverItem{
- Id: v.Id,
- CoverName: v.CoverName,
- CoverUrl: v.CoverUrl,
- CreateTime: v.CreateTime.Format(utils.FormatDateTime),
- ModifyTime: v.ModifyTime.Format(utils.FormatDateTime),
- }
- respList = append(respList, item)
- }
- resp.List = respList
- return
- }
- // SaveEnglishVideoCover 保存视频封面
- func SaveEnglishVideoCover(coverId int, coverName, coverUrl string) (resp *models.EnglishVideoCoverItem, errMsg string, err error) {
- resp = new(models.EnglishVideoCoverItem)
- nowTime := time.Now().Local()
- // 更新
- if coverId > 0 {
- item, e := models.GetEnglishVideoCoverById(coverId)
- if e != nil {
- if e.Error() == utils.ErrNoRow() {
- errMsg = "封面不存在"
- err = errors.New(errMsg)
- return
- }
- errMsg = "封面信息有误"
- err = errors.New("获取封面图失败, Err:" + e.Error())
- return
- }
- updateCols := make([]string, 0)
- updateCols = append(updateCols, "CoverName", "CoverUrl", "ModifyTime")
- item.CoverName = coverName
- item.CoverUrl = coverUrl
- item.ModifyTime = nowTime
- if e := item.Update(updateCols); e != nil {
- errMsg = "更新失败"
- err = errors.New("更新封面图失败, Err:" + e.Error())
- }
- resp = formatEnglishVideoCoverItem(item)
- return
- }
- // 新增
- newCover := &models.EnglishVideoCover{
- CoverName: coverName,
- CoverUrl: coverUrl,
- CreateTime: nowTime,
- ModifyTime: nowTime,
- }
- if e := newCover.Add(); e != nil {
- errMsg = "新增失败"
- err = errors.New("新增封面图失败, Err:" + e.Error())
- }
- resp = formatEnglishVideoCoverItem(newCover)
- return
- }
- func formatEnglishVideoCoverItem(item *models.EnglishVideoCover) (resp *models.EnglishVideoCoverItem) {
- resp = new(models.EnglishVideoCoverItem)
- if item != nil {
- resp.Id = item.Id
- resp.CoverName = item.CoverName
- resp.CoverUrl = item.CoverUrl
- resp.CreateTime = item.CreateTime.Format(utils.FormatDateTime)
- resp.ModifyTime = item.ModifyTime.Format(utils.FormatDateTime)
- }
- return
- }
- // SoftDeleteEnglishVideoCover 删除封面图
- func SoftDeleteEnglishVideoCover(coverId int) (errMsg string, err error) {
- if _, e := models.GetEnglishVideoCoverById(coverId); e != nil {
- errMsg = "封面图信息有误"
- err = errors.New("获取封面图失败, Err:" + e.Error())
- return
- }
- if e := models.DeleteEnglishVideoCover(coverId); e != nil {
- errMsg = "删除失败"
- err = errors.New("删除封面图失败, Err:" + e.Error())
- }
- return
- }
- // SaveEnglishVideo 创建线上路演
- func SaveEnglishVideo(req models.SaveEnglishVideoReq, adminInfo *system.Admin) (newReportId int, videoCode string, err error, errMsg string) {
- // 查询分类是否存在
- req.Overview = strings.Replace(req.Overview, "Powered by Froala Editor", "", -1)
- var classifyIds []int
- classifyIds = append(classifyIds, req.ClassifyIdFirst)
- if req.ClassifyIdSecond > 0 {
- classifyIds = append(classifyIds, req.ClassifyIdSecond)
- }
- classifyList, err := models.GetEnglishReportClassifyByIds(classifyIds)
- if err != nil {
- err = fmt.Errorf("查询线上路演分类出错")
- errMsg = fmt.Sprintf("查询线上路演分类出错, Err: %v", err)
- return
- }
- firstClassify := new(models.EnglishClassify)
- secondClassify := new(models.EnglishClassify)
- for _, v := range classifyList {
- if v.ParentId == v.RootId {
- firstClassify = v
- } else if v.ParentId > 0 {
- secondClassify = v
- }
- }
- if firstClassify == nil {
- err = fmt.Errorf("一级分类不存在")
- return
- }
- if req.ClassifyIdSecond > 0 && secondClassify == nil {
- err = fmt.Errorf("二级分类不存在")
- return
- }
- if req.ClassifyIdSecond > 0 && secondClassify.ParentId != firstClassify.Id {
- err = fmt.Errorf("二级分类错误")
- return
- }
- if req.Id > 0 {
- item, e := models.GetEnglishVideoItemById(req.Id)
- if e != nil {
- if e.Error() == utils.ErrNoRow() {
- err = fmt.Errorf("路演视频不存在")
- return
- }
- err = fmt.Errorf("查询线上路演出错")
- errMsg = fmt.Sprintf("查询线上路演出错, Err: %v", e)
- return
- }
- item.ClassifyIdFirst = req.ClassifyIdFirst
- item.ClassifyNameFirst = firstClassify.ClassifyName
- item.ClassifyIdSecond = req.ClassifyIdSecond
- if secondClassify != nil {
- item.ClassifyNameSecond = secondClassify.ClassifyName
- }
- item.Title = req.Title
- item.Abstract = req.Abstract
- //item.Author = req.Author
- item.State = req.State
- item.VideoUrl = req.VideoUrl
- item.VideoCoverUrl = req.VideoCoverUrl
- item.VideoSeconds = req.VideoSeconds
- item.Overview = req.Overview
- e = models.EditEnglishVideo(item, req.Id)
- if e != nil {
- err = errors.New("更新报告失败")
- errMsg = fmt.Sprintf("更新报告失败, Err: %v", e)
- return
- }
- newReportId = item.Id
- videoCode = item.VideoCode
- return
- }
- item := new(models.EnglishVideo)
- item.ClassifyIdFirst = req.ClassifyIdFirst
- item.ClassifyNameFirst = firstClassify.ClassifyName
- item.ClassifyIdSecond = req.ClassifyIdSecond
- if secondClassify != nil {
- item.ClassifyNameSecond = secondClassify.ClassifyName
- }
- item.VideoUrl = req.VideoUrl
- item.VideoCoverUrl = req.VideoCoverUrl
- item.VideoSeconds = req.VideoSeconds
- item.Title = req.Title
- item.Abstract = req.Abstract
- //item.Author = req.Author
- item.State = req.State
- if req.State == 2 {
- item.PublishTime = time.Now()
- }
- item.Overview = req.Overview
- item.AdminId = adminInfo.AdminId
- item.AdminRealName = adminInfo.RealName
- item.CreateTime = time.Now()
- item.ModifyTime = time.Now()
- e := models.AddEnglishVideo(item)
- if e != nil {
- err = errors.New("新增路演视频失败")
- errMsg = fmt.Sprintf("新增路演视频失败, Err: %v", e)
- return
- }
- newReportId = item.Id
- videoCode = utils.MD5(strconv.Itoa(item.Id))
- //修改唯一编码
- {
- go models.ModifyEnglishVideoCode(item.Id, videoCode)
- }
- if req.State == 2 {
- go UpdateEnglishVideoEs(newReportId, 2)
- }
- return
- }
|