Ver Fonte

广播与信息发布 功能完成

sixian há 3 anos atrás
pai
commit
1b3e9a0632

+ 9 - 0
app/device/dao/infoBoardDao.go

@@ -1,6 +1,7 @@
 package dao
 
 import (
+	"fmt"
 	"gorm.io/gorm"
 	"iot_manager_service/util/common"
 	"time"
@@ -117,3 +118,11 @@ func (c InfoBoard) GetDevicesByResolution() []InfoBoard {
 		c.Resolution, c.TenantId).Find(&devices)
 	return devices
 }
+
+func (c InfoBoard) GetDevicesByIds(ids string) []InfoBoard {
+	var devices []InfoBoard
+	Db.Debug().Model(&c).Where("id in ("+ids+")"+" and tenant_id = ?  and is_deleted = 0",
+		c.TenantId).Scan(&devices)
+	fmt.Printf("devices = %v", devices)
+	return devices
+}

+ 7 - 0
app/device/dao/ipBroadcastDao.go

@@ -109,3 +109,10 @@ func (c IpBroadcast) GetAll() []IpBroadcast {
 		c.IsDeleted).Scan(&devices)
 	return devices
 }
+
+func (c IpBroadcast) GetByIds(ids string) []IpBroadcast {
+	var devices []IpBroadcast
+	Db.Debug().Model(&c).Where(" tenant_id = ? and is_deleted = ?", c.TenantId,
+		c.IsDeleted).Where("id in (" + ids + ")").Scan(&devices)
+	return devices
+}

+ 7 - 0
app/device/service/infoBoardService.go

@@ -130,3 +130,10 @@ func (s *infoBoardService) GetByResolution(tenantId, resolution int) []dao.InfoB
 	}
 	return device.GetDevicesByResolution()
 }
+
+func (s *infoBoardService) GetByIds(tenantId int, ids string) []dao.InfoBoard {
+	device := &dao.InfoBoard{
+		TenantId: tenantId,
+	}
+	return device.GetDevicesByIds(ids)
+}

+ 8 - 0
app/device/service/ipBroadcastService.go

@@ -146,3 +146,11 @@ func (s *ipBroadcastService) GetAll(tenantId int) []dao.IpBroadcast {
 	}
 	return device.GetAll()
 }
+
+func (s *ipBroadcastService) GetByIds(tenantId int, ids string) []dao.IpBroadcast {
+	device := &dao.IpBroadcast{
+		TenantId:  tenantId,
+		IsDeleted: 0,
+	}
+	return device.GetByIds(ids)
+}

+ 6 - 0
app/multimedia/controller/programController.go

@@ -171,6 +171,12 @@ func (c *programCtl) Audit(ctx *gin.Context) {
 		ctx.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
 		return
 	}
+	// 链接
+	err := service.PublishLibrariesService.Audit(req)
+	if err != nil {
+		ctx.JSON(http.StatusOK, common.ParamsInvalidResponse(err.Error(), nil))
+		return
+	}
 
 	ctx.JSON(http.StatusOK, common.SuccessResponse(common.Success, nil))
 }

+ 69 - 3
app/multimedia/controller/publishLibrariesController.go

@@ -5,10 +5,12 @@ import (
 	"iot_manager_service/app/middleware"
 	"iot_manager_service/app/multimedia/model"
 	"iot_manager_service/app/multimedia/service"
+	service2 "iot_manager_service/app/system/service"
 	"iot_manager_service/util/common"
 	"math"
 	"net/http"
 	"strconv"
+	"strings"
 )
 
 var PublishLibraries = new(PublishLibrariesCtl)
@@ -19,21 +21,29 @@ func (c *PublishLibrariesCtl) List(ctx *gin.Context) {
 	searchValue := ctx.Query("searchValue")
 	current, _ := strconv.Atoi(ctx.Query("current"))
 	size, _ := strconv.Atoi(ctx.Query("size"))
-
+	sysType, _ := strconv.Atoi(ctx.Query("sysType"))
 	if current == 0 {
 		current = 1
 	}
 	if size <= 0 || size > 100 {
 		size = 10
 	}
-
 	value, _ := ctx.Get(middleware.Authorization)
 	claims := value.(*middleware.Claims)
-	libraries, err := service.PublishLibrariesService.List(claims.TenantId, searchValue, current, size)
+
+	libraries, err := service.PublishLibrariesService.List(claims.TenantId, searchValue, current, size, sysType)
+	for i, library := range libraries {
+		stime := library.StartTime.DateString()
+		etime := library.EndTime.DateString()
+		libraries[i].PlayPeriod = stime + " - " + etime
+		libraries[i].ResolutionName = service2.DictService.GetResolutionName(library.TenantId, library.Resolution)
+		libraries[i].CountDeviceNum = len(strings.Split(library.InfoId, ","))
+	}
 	if err != nil {
 		ctx.JSON(http.StatusOK, err)
 		return
 	}
+
 	pages := math.Ceil(float64(len(libraries)) / float64(size))
 	rsp := model.RsqPublishLibrariesList{
 		Current: current,
@@ -44,3 +54,59 @@ func (c *PublishLibrariesCtl) List(ctx *gin.Context) {
 	}
 	ctx.JSON(http.StatusOK, common.SuccessResponse(common.Success, rsp))
 }
+
+func (c *PublishLibrariesCtl) GetLibraryList(ctx *gin.Context) {
+	id := ctx.Query("id")
+	librariesId, e := strconv.Atoi(id)
+	if e != nil {
+		ctx.JSON(http.StatusOK, common.ParamsInvalidResponse(e.Error(), nil))
+		return
+	}
+	value, _ := ctx.Get(middleware.Authorization)
+	claims := value.(*middleware.Claims)
+
+	programId, err := service.PublishLibrariesService.GetProgram(librariesId)
+	if err != nil {
+		ctx.JSON(http.StatusOK, common.ParamsInvalidResponse(e.Error(), nil))
+		return
+	}
+
+	list, errors := service.ProgramService.GetLibraryList(claims.TenantId, programId)
+	if errors != nil {
+		ctx.JSON(http.StatusOK, e)
+		return
+	}
+	ctx.JSON(http.StatusOK, common.SuccessResponse(common.Success, list))
+}
+
+// AffiliateEquipment 关联设备
+func (c *PublishLibrariesCtl) AffiliateEquipment(ctx *gin.Context) {
+	sysType, _ := strconv.Atoi(ctx.Query("sysType"))
+	deviceIds := ctx.Query("infoId") //设备id
+	value, _ := ctx.Get(middleware.Authorization)
+	claims := value.(*middleware.Claims)
+
+	devices, err := service.ProgramService.RelationDeviceListByIds(claims.TenantId, sysType, deviceIds)
+	if err != nil {
+		ctx.JSON(http.StatusOK, err)
+		return
+	}
+
+	ctx.JSON(http.StatusOK, common.SuccessResponse(common.Success, devices))
+}
+
+// 变更状态
+func (c *PublishLibrariesCtl) UpdateStatus(ctx *gin.Context) {
+	id, _ := strconv.Atoi(ctx.Query("id"))
+	status, _ := strconv.Atoi(ctx.Query("status"))
+	name := ctx.Query("name")
+	value, _ := ctx.Get(middleware.Authorization)
+	claims := value.(*middleware.Claims)
+
+	_, err := service.PublishLibrariesService.UpdateStatus(claims.TenantId, id, status, name)
+	if err != nil {
+		ctx.JSON(http.StatusOK, err)
+		return
+	}
+	ctx.JSON(http.StatusOK, common.SuccessResponse(common.Success, nil))
+}

+ 48 - 27
app/multimedia/dao/publishLibrariesDao.go

@@ -1,36 +1,42 @@
 package dao
 
 import (
+	"fmt"
+	"iot_manager_service/util/common"
 	"time"
 )
 
 type PublishLibraries struct {
-	Id               uint      `gorm:"column:id;type:int(10) unsigned;primary_key;AUTO_INCREMENT;" json:"id"` // 编号
-	Name             string    `gorm:"column:name;type:varchar(64)" json:"name"`                              // 名称
-	Resolution       int       `gorm:"column:resolution;type:int(11)" json:"resolution"`                      // 分辨率
-	Duration         int64     `gorm:"column:duration;type:bigint(20);default:0" json:"duration"`             // 统计文件时长
-	FileSize         int64     `gorm:"column:file_size;type:bigint(20);default:0" json:"file_size"`           // 统计文件大小
-	InfoId           string    `gorm:"column:info_id;type:varchar(4000)" json:"info_id"`                      // 信息屏ID 组合
-	ImgDuration      int       `gorm:"column:img_duration;type:int(11);default:0" json:"img_duration"`        // 图片播放时长(毫秒)
-	StartTime        time.Time `gorm:"column:start_time;type:date" json:"start_time"`                         // 播放开始时间
-	EndTime          time.Time `gorm:"column:end_time;type:date" json:"end_time"`                             // 播放结束时间
-	NotificationType string    `gorm:"column:notification_type;type:varchar(60)" json:"notification_type"`    // 通知类型 组合1短信2邮件3电话4微信
-	CreateTime       time.Time `gorm:"column:create_time;type:datetime" json:"create_time"`                   // 新增时间
-	CreateUser       string    `gorm:"column:create_user;type:varchar(60)" json:"create_user"`                // 新增记录操作用户ID
-	CreateName       string    `gorm:"column:create_name;type:varchar(64)" json:"create_name"`                // 新增用户姓名
-	UpdateTime       time.Time `gorm:"column:update_time;type:datetime" json:"update_time"`                   // 修改时间
-	UpdateUser       string    `gorm:"column:update_user;type:varchar(60)" json:"update_user"`                // 修改用户
-	IsDeleted        int       `gorm:"column:is_deleted;type:int(11);default:0" json:"is_deleted"`            // 是否删除 0=未删除,1=删除
-	Status           int       `gorm:"column:status;type:int(11)" json:"status"`                              // 状态 0审核1播放2暂停3取消4过期5审核不通过
-	TenantId         int       `gorm:"column:tenant_id;type:int(11)" json:"tenant_id"`                        // 租户ID
-	Remarks          string    `gorm:"column:remarks;type:varchar(4000)" json:"remarks"`                      // 备注
-	SysType          int       `gorm:"column:sys_type;type:int(11);default:0" json:"sys_type"`                // 系统类型:0-多媒体系统,1-广播系统
-	KsTime           time.Time `gorm:"column:ks_time;type:bigint(20)" json:"ks_time"`                         // 播放开始时间
-	JsTime           time.Time `gorm:"column:js_time;type:bigint(20)" json:"js_time"`                         // 播放结束时间
-	FileId           int       `gorm:"column:file_id;type:int(11)" json:"file_id"`                            // 文件ID,系统类型为广播系统时使用
-	TaskId           int       `gorm:"column:task_id;type:int(11)" json:"task_id"`                            // 任务ID,发布后才有用于控制启动与停止
-	PlayTime         int       `gorm:"column:play_time;type:int(11);default:1" json:"play_time"`              // 播放次数(1-100)
-	PlayInterval     int       `gorm:"column:play_interval;type:int(11);default:0" json:"play_interval"`      // 播放间隔(0-360秒)
+	ID               int64       `gorm:"column:id;type:int(10) unsigned;primary_key;AUTO_INCREMENT;comment:编号" json:"id" :"ID"`                             // 编号
+	Name             string      `gorm:"column:name;type:varchar(64);comment:名称" json:"name" :"Name"`                                                       // 名称
+	Resolution       int         `gorm:"column:resolution;type:int(11);comment:分辨率" json:"resolution" :"Resolution"`                                        // 分辨率
+	Duration         int64       `gorm:"column:duration;type:bigint(20);default:0;comment:统计文件时长" json:"duration" :"Duration"`                              // 统计文件时长
+	FileSize         int64       `gorm:"column:file_size;type:bigint(20);default:0;comment:统计文件大小" json:"fileSize" :"FileSize"`                             // 统计文件大小
+	InfoId           string      `gorm:"column:info_id;type:varchar(4000);comment:信息屏ID 组合" json:"infoId" :"InfoId"`                                        // 信息屏ID 组合
+	ImgDuration      int         `gorm:"column:img_duration;type:int(11);default:0;comment:图片播放时长(毫秒)" json:"imgDuration" :"ImgDuration"`                   // 图片播放时长(毫秒)
+	StartTime        common.Time `gorm:"column:start_time;type:date;comment:播放开始时间" json:"startTime" :"StartTime"`                                          // 播放开始时间
+	EndTime          common.Time `gorm:"column:end_time;type:date;comment:播放结束时间" json:"endTime" :"EndTime"`                                                // 播放结束时间
+	NotificationType string      `gorm:"column:notification_type;type:varchar(60);comment:通知类型 组合1短信2邮件3电话4微信" json:"notificationType" :"NotificationType"` // 通知类型 组合1短信2邮件3电话4微信
+	CreateTime       time.Time   `gorm:"column:create_time;type:datetime;comment:新增时间" json:"createTime" :"CreateTime"`                                     // 新增时间
+	CreateUser       int64       `gorm:"column:create_user;type:varchar(60);comment:增记录操作用户ID" json:"createUser" :"CreateUser"`                             // 新增记录操作用户ID
+	CreateName       string      `gorm:"column:create_name;type:varchar(64);comment:新增用户姓名" json:"createName" :"CreateName"`                                // 新增用户姓名
+	UpdateTime       time.Time   `gorm:"column:update_time;type:datetime;comment:修改时间" json:"updateTime" :"UpdateTime"`                                     // 修改时间
+	UpdateUser       string      `gorm:"column:update_user;type:varchar(60);comment:修改用户" json:"updateUser" :"UpdateUser"`                                  // 修改用户
+	IsDeleted        int         `gorm:"column:is_deleted;type:int(11);default:0;comment:是否删除 0=未删除,1=删除" json:"isDeleted" :"IsDeleted"`                    // 是否删除 0=未删除,1=删除
+	Status           int         `gorm:"column:status;type:int(11);comment:状态 0审核1播放2暂停3取消4过期5审核不通过" json:"status" :"Status"`                               // 状态 0审核1播放2暂停3取消4过期5审核不通过
+	TenantId         int         `gorm:"column:tenant_id;type:int(11);comment:租户ID" json:"tenantTd" :"TenantId"`                                            // 租户ID
+	Remarks          string      `gorm:"column:remarks;type:varchar(4000);comment:系统类型:0-多媒体系统,1-广播系统" json:"remarks" :"Remarks"`                           // 备注
+	SysType          int         `gorm:"column:sys_type;type:int(11);default:0;comment:编号" json:"sysStype" :"SysType"`                                      // 系统类型:0-多媒体系统,1-广播系统
+	KsTime           string      `gorm:"column:ks_time;type:varchar(50);comment:播放开始时间" json:"ksTime" :"KsTime"`                                            // 播放开始时间
+	JsTime           string      `gorm:"column:js_time;type:varchar(50);comment:播放结束时间" json:"jsTime" :"JsTime"`                                            // 播放结束时间
+	FileId           int         `gorm:"column:file_id;type:int(11);comment:文件ID,系统类型为广播系统时使用" json:"fileId" :"FileId"`                                     // 文件ID,系统类型为广播系统时使用
+	TaskId           int         `gorm:"column:task_id;type:int(11);comment:任务ID,发布后才有用于控制启动与停止" json:"taskId" :"TaskId"`                                   // 任务ID,发布后才有用于控制启动与停止
+	PlayTime         int         `gorm:"column:play_time;type:int(11);default:1;comment:播放次数(1-100)" json:"playTime" :"PlayTime"`                           // 播放次数(1-100)
+	PlayInterval     int         `gorm:"column:play_interval;type:int(11);default:0;comment: 播放间隔(0-360秒)" json:"playInterval" :"PlayInterval"`             // 播放间隔(0-360秒)
+
+	PlayPeriod     string `gorm:"-"  json:"playPeriod"`              //播放期间
+	ResolutionName string `gorm:"-" json:"resolutionName"`           //分辨率
+	CountDeviceNum int    `gorm:"-;default:0" json:"countDeviceNum"` //关联设备数量
 }
 
 func (PublishLibraries) TableName() string {
@@ -39,6 +45,21 @@ func (PublishLibraries) TableName() string {
 
 func (c *PublishLibraries) GetList(offset int, limit int) ([]PublishLibraries, error) {
 	var list []PublishLibraries
-	err := Db.Debug().Model(&c).Where("tenant_id = ? and is_deleted = 0", c.TenantId).Find(&list).Error
+	err := Db.Debug().Model(&c).Where("tenant_id = ? and sys_type=? and is_deleted = 0", c.TenantId, c.SysType).Find(&list).Error
 	return list, err
 }
+
+func (c *PublishLibraries) Create() error {
+	fmt.Printf("c = %v", c)
+	return Db.Debug().Model(&c).Save(c).Error
+}
+
+func (c *PublishLibraries) Update() error {
+	return Db.Debug().Model(&c).Where(" id = ? ", c.ID).Updates(&c).Error
+}
+
+func (c *PublishLibraries) GetProgram() (int, error) {
+	var librarie PublishLibraries
+	err := Db.Debug().Model(&c).Where("id = ?", c.ID).First(&librarie).Error
+	return librarie.FileId, err
+}

+ 18 - 9
app/multimedia/model/program.go

@@ -2,6 +2,7 @@ package model
 
 import (
 	"iot_manager_service/app/multimedia/dao"
+	"iot_manager_service/util/common"
 )
 
 const (
@@ -45,14 +46,22 @@ type ProgramDevice struct {
 	PublicName string `json:"publicName"` //设备名
 }
 
+type ProgramDeviceList struct {
+	DeviceName   string `json:"deviceName"`
+	LampPoleName string `json:"lampPoleName"`
+	Address      string `json:"address"`
+}
+
 type ReqProgramAudit struct {
-	Duration           int64  `json:"duration"`           //统计文件时长
-	ProgramLibrariesId int    `json:"programLibrariesId"` //节目制作ID
-	ImgDuration        int    `json:"imgDuration"`        //图片时长
-	NotificationType   string `json:"notificationType"`   //通知类型 组合1短信2邮件3电话4微信
-	StartTime          string `json:"startTime"`          //播放开始日期
-	EndTime            string `json:"endTime"`            //播放结束日期
-	InfoId             string `json:"infoId"`             //设备id组合(原信息屏ID组合),使用,隔开
-	Resolution         int    `json:"resolution"`         //分辨率
-	SysType            int    `json:"sysType"`            //系统类型:0-多媒体系统,1-广播系统
+	Duration           int64       `json:"duration"`           //统计文件时长
+	ProgramLibrariesId int         `json:"programLibrariesId"` //节目制作ID
+	ImgDuration        int         `json:"imgDuration"`        //图片时长
+	NotificationType   string      `json:"notificationType"`   //通知类型 组合1短信2邮件3电话4微信
+	StartTime          common.Time `json:"startTime"`          //播放开始日期
+	EndTime            common.Time `json:"endTime"`            //播放结束日期
+	InfoId             string      `json:"infoId"`             //设备id组合(原信息屏ID组合),使用,隔开
+	Resolution         int         `json:"resolution"`         //分辨率
+	SysType            int         `json:"sysType"`            //系统类型:0-多媒体系统,1-广播系统
+	JsTime             string      `json:"jsTime"`             //播放时间
+	KsTime             string      `json:"ksTime"`             //播放时间
 }

+ 30 - 0
app/multimedia/service/programService.go

@@ -217,3 +217,33 @@ func (s *programService) RelationDeviceList(tenantId, sysType, resolution int) (
 	}
 	return details, nil
 }
+
+func (s *programService) RelationDeviceListByIds(tenantId, sysType int, deviceIds string) ([]model.ProgramDeviceList,
+	*common.Errors) {
+	deviceList := []model.ProgramDeviceList{}
+	if sysType == model.SysTypeInfoBar {
+		infoBoardDevices := deviceService.InfoBoardService.GetByIds(tenantId, deviceIds)
+		//fmt.Printf("infoBoardDevices = %v", infoBoardDevices)
+		for _, device := range infoBoardDevices {
+			deviceList = append(deviceList, model.ProgramDeviceList{
+				DeviceName:   device.InfoName,
+				LampPoleName: device.LampPoleName,
+				Address:      device.IPAddress,
+			})
+		}
+	} else if sysType == model.SysTypeBroadcast {
+		ipBroadcastDevices := deviceService.IpBroadcastService.GetByIds(tenantId, deviceIds)
+		for _, device := range ipBroadcastDevices {
+			group, _ := deviceService.LampPoleGroupService.Get(device.GroupId)
+			deviceList = append(deviceList, model.ProgramDeviceList{
+				DeviceName:   device.CastName,
+				LampPoleName: group.PoleGroupName,
+				Address:      device.IPAddress,
+			})
+		}
+	} else {
+		return nil, nil
+	}
+
+	return deviceList, nil
+}

+ 98 - 1
app/multimedia/service/publishLibrariesService.go

@@ -1,18 +1,28 @@
 package service
 
 import (
+	"fmt"
 	"iot_manager_service/app/multimedia/dao"
+	"iot_manager_service/app/multimedia/model"
 	"iot_manager_service/util/common"
+	"iot_manager_service/util/logger"
+	"strings"
+	"time"
 )
 
 var PublishLibrariesService = new(publishLibrariesService)
 
 type publishLibrariesService struct{}
 
-func (s *publishLibrariesService) List(tenantId int, searchValue string, current, size int) ([]dao.PublishLibraries,
+/**
+TODO: 此接口都未对接边缘端
+*/
+
+func (s *publishLibrariesService) List(tenantId int, searchValue string, current, size int, sysType int) ([]dao.PublishLibraries,
 	*common.Errors) {
 	program := &dao.PublishLibraries{
 		TenantId: tenantId,
+		SysType:  sysType,
 	}
 	offset := (current - 1) * size
 	limit := size
@@ -25,3 +35,90 @@ func (s *publishLibrariesService) List(tenantId int, searchValue string, current
 	}
 	return list, nil
 }
+
+// Audit 素材发布
+func (s *publishLibrariesService) Audit(req model.ReqProgramAudit) error {
+	if !common.MultimediaEfficacyTime(req.StartTime, req.EndTime, req.KsTime) {
+		panic("任务时间已过,请重新定义时间。")
+	}
+	program := dao.Program{ID: req.ProgramLibrariesId}
+	err := program.Get()
+	if err != nil {
+		return err
+	}
+	update := PublishLibrariesService.Create(&program, req)
+	fmt.Printf("update = %v", update)
+
+	return nil
+}
+
+// SaveOrUpdate 保存
+func (s *publishLibrariesService) Create(program *dao.Program, req model.ReqProgramAudit) *common.Errors {
+	fmt.Printf("program = %v", program)
+	remarks := "多媒体系统"
+	if program.SysType == 1 {
+		remarks = "广播系统"
+	}
+	infoIds := req.InfoId
+	infoIds = strings.Trim(infoIds, ",")
+	infoIds = strings.ReplaceAll(infoIds, "-1", "")
+	infoIds = strings.ReplaceAll(infoIds, ",-1", "") //新id
+	libraries := &dao.PublishLibraries{
+		Name:             program.Name,
+		Resolution:       program.Resolution,
+		Duration:         program.Duration,
+		FileSize:         program.FileSize,
+		InfoId:           infoIds,
+		ImgDuration:      program.ImgDuration,
+		StartTime:        req.StartTime,
+		EndTime:          req.EndTime,
+		NotificationType: "0",
+		CreateTime:       time.Now(),
+		CreateUser:       program.CreateUser,
+		CreateName:       "",
+		UpdateTime:       time.Now(),
+		UpdateUser:       "",
+		IsDeleted:        0,
+		Status:           1,
+		TenantId:         program.TenantId,
+		Remarks:          remarks,
+		SysType:          program.SysType,
+		KsTime:           req.KsTime,
+		JsTime:           req.JsTime,
+		FileId:           program.ID,
+	}
+	libraries.CreateTime = time.Now()
+	if err := libraries.Create(); err != nil {
+		logger.Logger.Errorf("Create err = %s \n", err.Error())
+		return common.FailResponse(err.Error(), nil)
+	}
+	fmt.Printf("libraries = %v", libraries)
+	//TODO: 日志保存
+	return common.SuccessResponse(common.Succeeded, nil)
+}
+
+// GetProgram 取节目
+func (s *publishLibrariesService) GetProgram(id int) (int, error) {
+	libraries := dao.PublishLibraries{ID: int64(id)}
+	program, err := libraries.GetProgram()
+	return program, err
+}
+
+func (s *publishLibrariesService) putPublishLibraries(programId int, publishLibraries dao.PublishLibraries) {
+
+}
+
+// UpdateStatus 状态变更
+func (s *publishLibrariesService) UpdateStatus(tenantId int, id int, status int, name string) (bool, error) {
+	update := &dao.PublishLibraries{
+		TenantId: tenantId,
+		ID:       int64(id),
+		Status:   status,
+		Name:     name,
+	}
+	err := update.Update()
+	if err != nil {
+		return false, err
+	}
+	return true, nil
+}

+ 3 - 0
router/router.go

@@ -496,6 +496,9 @@ func InitRouter(engine *gin.Engine) {
 	publishLibraries := engine.Group("/api/longchi/multimedia/publishlibraries")
 	{
 		publishLibraries.GET("/list", multimedia.PublishLibraries.List)
+		publishLibraries.POST("/getLibraryList", multimedia.PublishLibraries.GetLibraryList)
+		publishLibraries.GET("/affiliate-equipment", multimedia.PublishLibraries.AffiliateEquipment)
+		publishLibraries.POST("/updateStatus", multimedia.PublishLibraries.UpdateStatus)
 	}
 
 	operationGroup := engine.Group("/api/longchi/operation")

+ 18 - 0
util/common/common.go

@@ -153,3 +153,21 @@ type TableModelAuto struct {
 	Model   interface{}
 	Comment string
 }
+
+// MultimediaEfficacyTime ip音柱效验时间是否在当前时间之前
+func MultimediaEfficacyTime(stime Time, etime Time, time2 string) bool {
+	stimeStr := stime.String()
+	etimeStr := etime.String()
+	if stimeStr == "" || etimeStr == "" || time2 == "" {
+		return true
+	}
+	currDate := time.Now().Format("2006-01-02")
+
+	kstime := currDate + time2
+	nowTime, _ := time.Parse("2006-01-02 15:04:05", kstime)
+	time3 := time.Now()
+	if etimeStr == stimeStr && currDate == etimeStr && time3.Before(nowTime) {
+		return false
+	}
+	return true
+}

+ 4 - 0
util/common/time.go

@@ -34,6 +34,10 @@ func (t Time) String() string {
 	return time.Time(t).Format(timeFormat2)
 }
 
+func (t Time) DateString() string {
+	return time.Time(t).Format(timeFormat1)
+}
+
 func (t Time) local() time.Time {
 	loc, _ := time.LoadLocation(timezone)
 	return time.Time(t).In(loc)