|
|
package openapi
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
"oppmg/common/log"
|
|
|
"oppmg/models"
|
|
|
"oppmg/protocol"
|
|
|
"strconv"
|
|
|
|
|
|
"github.com/astaxie/beego"
|
|
|
)
|
|
|
|
|
|
type OpenApiController struct {
|
|
|
beego.Controller
|
|
|
}
|
|
|
|
|
|
func (this *OpenApiController) ResposeJson(msg *protocol.ResponseMessage) {
|
|
|
this.Data["json"] = msg
|
|
|
this.ServeJSON()
|
|
|
}
|
|
|
|
|
|
//Finish 实现beego.ControllerInterface 的接口
|
|
|
func (this *OpenApiController) Finish() {
|
|
|
strByte, _ := json.Marshal(this.Data["json"])
|
|
|
length := len(strByte)
|
|
|
if length > 1000 {
|
|
|
log.Info(fmt.Sprintf("<====Send to client: RspBodyData: %s......", string(strByte[:1000])))
|
|
|
} else {
|
|
|
log.Info(fmt.Sprintf("<====Send to client: RspBodyData: %s", string(strByte)))
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//Prepare 实现beego.ControllerInterface 的接口
|
|
|
func (this *OpenApiController) Prepare() {
|
|
|
this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Origin", "*")
|
|
|
this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Headers", "*")
|
|
|
if this.Ctx.Input.Method() == "OPTIONS" {
|
|
|
this.Ctx.ResponseWriter.WriteHeader(204)
|
|
|
this.Ctx.ResponseWriter.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
|
|
|
this.Ctx.WriteString("")
|
|
|
return
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
|
|
|
//GetChangeMedia 获取机会的图片、音频、视频的地址
|
|
|
//@router /common/chance/media
|
|
|
func (c *OpenApiController) GetChangeMedia() {
|
|
|
var msg *protocol.ResponseMessage
|
|
|
defer func() {
|
|
|
c.ResposeJson(msg)
|
|
|
}()
|
|
|
type Parameter struct {
|
|
|
ChanceId string `json:"chance_id"`
|
|
|
CheckSum string `json:"check_sum"`
|
|
|
}
|
|
|
var param Parameter
|
|
|
if err := json.Unmarshal(c.Ctx.Input.RequestBody, ¶m); err != nil {
|
|
|
log.Error("json 解析失败", err)
|
|
|
msg = protocol.BadRequestParam("1")
|
|
|
return
|
|
|
}
|
|
|
chanceId, _ := strconv.ParseInt(param.ChanceId, 10, 64)
|
|
|
var (
|
|
|
err error
|
|
|
chanceData *models.ChanceData
|
|
|
imageData []models.ChanceDataImage
|
|
|
speedchsData []models.ChanceDataSpeechs
|
|
|
videosData []models.ChanceDataVideos
|
|
|
)
|
|
|
chanceData, err = models.GetChanceDataByChanceId(chanceId)
|
|
|
rsp := []map[string]interface{}{}
|
|
|
if err != nil {
|
|
|
msg = protocol.NewReturnResponse(nil, nil)
|
|
|
return
|
|
|
}
|
|
|
json.Unmarshal([]byte(chanceData.Images), &imageData)
|
|
|
json.Unmarshal([]byte(chanceData.Speechs), &speedchsData)
|
|
|
json.Unmarshal([]byte(chanceData.Videos), &videosData)
|
|
|
videoMapData := []map[string]interface{}{}
|
|
|
for i := range videosData {
|
|
|
m := map[string]interface{}{
|
|
|
"path": videosData[i].Path,
|
|
|
"cover": map[string]string{
|
|
|
"path": videosData[i].Cover.Path,
|
|
|
},
|
|
|
}
|
|
|
videoMapData = append(videoMapData, m)
|
|
|
}
|
|
|
rsp = append(rsp, map[string]interface{}{
|
|
|
"type": 1, "data": videoMapData,
|
|
|
})
|
|
|
|
|
|
imgMapData := []map[string]interface{}{}
|
|
|
for i := range imageData {
|
|
|
m := map[string]interface{}{
|
|
|
"path": imageData[i].Path,
|
|
|
}
|
|
|
imgMapData = append(imgMapData, m)
|
|
|
}
|
|
|
rsp = append(rsp, map[string]interface{}{
|
|
|
"type": 2, "data": imgMapData,
|
|
|
})
|
|
|
speedchMapData := []map[string]interface{}{}
|
|
|
for i := range speedchsData {
|
|
|
m := map[string]interface{}{
|
|
|
"path": speedchsData[i].Path,
|
|
|
}
|
|
|
speedchMapData = append(speedchMapData, m)
|
|
|
}
|
|
|
rsp = append(rsp, map[string]interface{}{
|
|
|
"type": 3, "data": speedchMapData,
|
|
|
})
|
|
|
msg = protocol.NewReturnResponse(rsp, nil)
|
|
|
return
|
|
|
|
|
|
} |
...
|
...
|
|