123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- package http
- import (
- "encoding/json"
- "io/ioutil"
- "net/http"
- "strconv"
- "go-common/app/interface/main/videoup/model/archive"
- "go-common/library/ecode"
- "go-common/library/log"
- bm "go-common/library/net/http/blademaster"
- "go-common/library/time"
- )
- func appEdit(c *bm.Context) {
- var (
- aid int64
- ap = &archive.ArcParam{}
- cp = &archive.ArcParam{}
- err error
- )
- mobi := c.Request.Form.Get("mobi_app")
- build := c.Request.Form.Get("build")
- midI, _ := c.Get("mid")
- mid, ok := midI.(int64)
- if !ok || mid <= 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- bs, err := ioutil.ReadAll(c.Request.Body)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.Request.Body.Close()
- if mobi == "iphone" && (build == "4470" || build == "4430") {
- err = iosUnmarshal(bs, ap)
- err = iosUnmarshal(bs, cp)
- } else {
- err = json.Unmarshal(bs, ap)
- err = json.Unmarshal(bs, cp)
- }
- if err != nil {
- c.JSON(nil, ecode.VideoupParamErr)
- return
- }
- aid = ap.Aid
- ap.Mid = mid
- // 老的只编辑基础信息, 不需要按照平台自动转换
- ap.UpFrom = archive.UpFromAPP
- defer func() {
- cp.Aid = ap.Aid
- cp.Mid = ap.Mid
- cp.UpFrom = ap.UpFrom
- cp.IPv6 = ap.IPv6
- build, buvid := getBuildInfo(c)
- vdpSvc.SendArchiveLog(aid, build, buvid, "edit", "app", cp, err)
- }()
- err = vdpSvc.AppEdit(c, ap, mid)
- if err != nil {
- c.JSON(nil, err)
- log.Error("editErr err(%+v)|ap(%+v)", err, ap)
- return
- }
- c.JSON(map[string]interface{}{
- "aid": ap.Aid,
- }, nil)
- }
- func iosUnmarshal(bs []byte, ap *archive.ArcParam) (err error) {
- var apStr = struct {
- Aid string `json:"aid"`
- Copyright string `json:"copyright"`
- Cover string `json:"cover"`
- Title string `json:"title"`
- TypeID string `json:"tid"`
- Tag string `json:"tag"`
- Desc string `json:"desc"`
- MissionID string `json:"mission_id"`
- OpenElec string `json:"open_elec"`
- DTime string `json:"dtime"`
- }{}
- if err = json.Unmarshal(bs, &apStr); err != nil {
- return
- }
- aid, err := strconv.ParseInt(apStr.Aid, 10, 64)
- if err != nil {
- return
- }
- copyright, err := strconv.ParseInt(apStr.Copyright, 10, 8)
- if err != nil {
- return
- }
- typeID, err := strconv.ParseInt(apStr.TypeID, 10, 16)
- if err != nil {
- return
- }
- missionID, err := strconv.ParseInt(apStr.MissionID, 10, 10)
- if err != nil {
- return
- }
- openElec, err := strconv.ParseInt(apStr.OpenElec, 10, 8)
- if err != nil {
- return
- }
- dtime, err := strconv.ParseInt(apStr.DTime, 10, 64)
- if err != nil {
- return
- }
- ap.Aid = aid
- ap.Copyright = int8(copyright)
- ap.TypeID = int16(typeID)
- ap.MissionID = int(missionID)
- ap.OpenElec = int8(openElec)
- ap.DTime = time.Time(dtime)
- ap.Cover = apStr.Cover
- ap.Title = apStr.Title
- ap.Tag = apStr.Tag
- ap.Desc = apStr.Desc
- return
- }
- func appUpCover(c *bm.Context) {
- midI, _ := c.Get("mid")
- mid, ok := midI.(int64)
- if !ok || mid <= 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- file, _, err := c.Request.FormFile("file")
- if err != nil {
- log.Error("c.Request().FormFile(\"file\") error(%v) | ", err)
- c.JSON(nil, ecode.RequestErr)
- return
- }
- bs, err := ioutil.ReadAll(file)
- file.Close()
- if err != nil {
- log.Error("ioutil.ReadAll(c.Request().Body) error(%v)", err)
- c.JSON(nil, ecode.RequestErr)
- return
- }
- ftype := http.DetectContentType(bs)
- if ftype != "image/jpeg" && ftype != "image/png" && ftype != "image/webp" {
- log.Error("filetype not allow file type(%s)", ftype)
- c.JSON(nil, ecode.RequestErr)
- return
- }
- url, err := vdpSvc.AppUpCover(c, ftype, bs, mid)
- if err != nil {
- c.JSON(nil, err)
- return
- }
- c.JSON(map[string]interface{}{
- "url": url,
- }, nil)
- }
- func appAdd(c *bm.Context) {
- var (
- aid int64
- ap = &archive.ArcParam{}
- cp = &archive.ArcParam{}
- err error
- )
- form := c.Request.Form
- ar := &archive.AppRequest{
- Build: form.Get("build"),
- MobiApp: form.Get("mobi_app"),
- Platform: form.Get("platform"),
- Device: form.Get("device"),
- }
- midI, _ := c.Get("mid")
- mid, ok := midI.(int64)
- if !ok || mid <= 0 {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- bs, err := ioutil.ReadAll(c.Request.Body)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.Request.Body.Close()
- err = json.Unmarshal(bs, ap)
- err = json.Unmarshal(bs, cp)
- if err != nil {
- c.JSON(nil, ecode.VideoupParamErr)
- return
- }
- ap.Aid = 0
- ap.Mid = mid
- ap.UpFrom = appUpFrom(ar.Platform, ar.Device)
- defer func() {
- cp.Aid = ap.Aid
- cp.Mid = ap.Mid
- cp.UpFrom = ap.UpFrom
- cp.IPv6 = ap.IPv6
- build, buvid := getBuildInfo(c)
- vdpSvc.SendArchiveLog(aid, build, buvid, "add", ar.Platform, cp, err)
- }()
- if err == nil {
- aid, err = vdpSvc.AppAdd(c, mid, ap, ar)
- }
- if err != nil {
- log.Error("AppAdd Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
- c.JSON(nil, err)
- return
- }
- c.JSON(map[string]interface{}{
- "aid": aid,
- }, nil)
- }
- func appEditFull(c *bm.Context) {
- var (
- aid int64
- ap = &archive.ArcParam{}
- cp = &archive.ArcParam{}
- err error
- )
- form := c.Request.Form
- ar := &archive.AppRequest{
- Build: form.Get("build"),
- MobiApp: form.Get("mobi_app"),
- Platform: form.Get("platform"),
- Device: form.Get("device"),
- }
- buildStr := form.Get("build")
- buildNum, _ := strconv.ParseInt(buildStr, 10, 64)
- midI, _ := c.Get("mid")
- mid, _ := midI.(int64)
- ap = &archive.ArcParam{}
- bs, err := ioutil.ReadAll(c.Request.Body)
- if err != nil {
- c.JSON(nil, ecode.RequestErr)
- return
- }
- c.Request.Body.Close()
- err = json.Unmarshal(bs, ap)
- err = json.Unmarshal(bs, cp)
- if err != nil {
- c.JSON(nil, ecode.VideoupParamErr)
- return
- }
- aid = ap.Aid
- ap.Mid = mid
- ap.UpFrom = appUpFrom(ar.Platform, ar.Device)
- defer func() {
- cp.Aid = ap.Aid
- cp.Mid = ap.Mid
- cp.UpFrom = ap.UpFrom
- cp.IPv6 = ap.IPv6
- build, buvid := getBuildInfo(c)
- vdpSvc.SendArchiveLog(aid, build, buvid, "edit", ar.Platform, cp, err)
- }()
- err = vdpSvc.AppEditFull(c, ap, mid, buildNum, ar)
- if err != nil {
- log.Error("AppEditFull Err mid(%+d)|ap(%+v)|err(%+v)", mid, ap, err)
- c.JSON(nil, err)
- return
- }
- c.JSON(map[string]interface{}{
- "aid": ap.Aid,
- }, nil)
- }
- func appUpFrom(platfrom, device string) (res int8) {
- if platfrom == "ios" {
- if device == "pad" {
- res = archive.UpFromIpad
- } else {
- res = archive.UpFromAPPiOS
- }
- } else if platfrom == "android" {
- res = archive.UpFromAPPAndroid
- } else {
- res = archive.UpFromAPP
- }
- return
- }
|