package controllers
|
|
import (
|
"basic.com/pubsub/protomsg.git"
|
"basic.com/valib/bhomeclient.git"
|
"encoding/json"
|
"github.com/satori/go.uuid"
|
"vamicro/system-service/models"
|
"vamicro/system-service/service"
|
)
|
|
type VoiceController struct{}
|
|
type VoiceMenu struct {
|
Id string `json:"id"`
|
Name string `json:"name"`
|
Path string `json:"path"`
|
}
|
|
// @Summary 查找所有报警声音
|
// @Description 查找所有报警声音
|
// @Produce json
|
// @Tags 报警声音
|
// @Success 200 {string} json "{"code":200, msg:"",data:"",success:true}"
|
// @Failure 500 {string} json "{"code":500, msg:"",data:"[]",success:false}"
|
// @Router /data/api-v/voice/findAll [GET]
|
func (vc *VoiceController) FindAll(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
var voiceMenus = make([]VoiceMenu, 0)
|
var voice models.Voice
|
voices, err := voice.FindAll()
|
//config.Server.Voices
|
if err == nil {
|
for _, v := range voices {
|
voiceMenus = append(voiceMenus, VoiceMenu{
|
Id: v.Id,
|
Name: v.Name,
|
Path: v.Path,
|
})
|
}
|
}
|
return &bhomeclient.Reply{Success: true, Data: voiceMenus}
|
}
|
|
// @Summary 获取报警声音列表
|
// @Description 获取报警声音列表
|
// @Security ApiKeyAuth
|
// @Produce json
|
// @Tags 报警声音
|
// @Param id formData string false "id"
|
// @Param name formData string true "名称"
|
// @Param mp3File formData string true "mp3文件地址"
|
// @Param g711aFile formData string true "g711a文件地址"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/voice/add [post]
|
func (vc *VoiceController) Add(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
id := c.PostForm("id")
|
name := c.PostForm("name")
|
mp3File := c.PostForm("mp3File")
|
//g711aFile := c.PostForm("g711aFile")
|
if name == "" {
|
return &bhomeclient.Reply{Msg: "name不能为空"}
|
}
|
if mp3File == "" {
|
return &bhomeclient.Reply{Msg: "音频文件不能为空"}
|
}
|
b := false
|
var err error
|
v := models.Voice{
|
Name: name,
|
Path: mp3File,
|
}
|
|
dbMsg := protomsg.DbChangeMessage{
|
Table: protomsg.TableChanged_T_Voice,
|
}
|
|
if id == "" { //新增
|
v.Id = uuid.NewV4().String()
|
b, err = v.Insert()
|
|
dbMsg.Action = protomsg.DbAction_Insert
|
dbMsg.Id = v.Id
|
} else { //更新
|
v.Id = id
|
b, err = v.Update()
|
|
dbMsg.Action = protomsg.DbAction_Update
|
dbMsg.Id = id
|
}
|
|
if err == nil {
|
pb, _ := json.Marshal(dbMsg)
|
h.Bk.Publish(service.ProcName, pb)
|
return &bhomeclient.Reply{Success: b, Msg: "保存成功"}
|
} else {
|
return &bhomeclient.Reply{Msg: err.Error()}
|
}
|
}
|
|
// @Summary 删除报警声音
|
// @Description 删除报警声音
|
// @Security ApiKeyAuth
|
// @Produce json
|
// @Tags 报警声音
|
// @Param id query string true "id"
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
|
// @Router /data/api-v/voice/del [delete]
|
func (vc *VoiceController) Del(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
id := c.Query("id")
|
if id == "" {
|
return &bhomeclient.Reply{Msg: "id不能为空"}
|
}
|
var v models.Voice
|
b, err := v.DeleteById(id)
|
if b {
|
dbMsg := protomsg.DbChangeMessage{
|
Table: protomsg.TableChanged_T_Voice,
|
Id: id,
|
Action: protomsg.DbAction_Delete,
|
}
|
pb, _ := json.Marshal(dbMsg)
|
h.Bk.Publish(service.ProcName, pb)
|
return &bhomeclient.Reply{Success: true, Msg: "删除成功"}
|
} else {
|
return &bhomeclient.Reply{Msg: err.Error()}
|
}
|
}
|
|
// @Security ApiKeyAuth
|
// @Summary 上传音频
|
// @Description 上传音频
|
// @Accept x-www-form-urlencoded
|
// @Produce json
|
// @Tags 报警声音
|
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
|
// @Failure 500 {string} json "{"code":500, success:false, msg:"", data:""}"
|
// @Router /data/api-v/voice/upload [post]
|
func (vc *VoiceController) Upload(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
|
file, err := c.FormFile()
|
if err == nil {
|
var sv service.SysService
|
if file.Name == "" || len(file.Bytes) == 0 {
|
return &bhomeclient.Reply{Msg: "音频上传错误"}
|
}
|
filename := file.Name
|
audioPath, err := sv.UploadVoice(file.Bytes, filename)
|
if err != nil {
|
if err.Error() == "audio format error" {
|
return &bhomeclient.Reply{Msg: "声音只允许mp3,wav,wma的格式"}
|
} else {
|
return &bhomeclient.Reply{Msg: "声音上传失败:" + err.Error()}
|
}
|
}
|
return &bhomeclient.Reply{Success: true, Data: audioPath}
|
}
|
return &bhomeclient.Reply{Msg: "未找到上传声音文件"}
|
}
|