82 lines
1.6 KiB
Go
82 lines
1.6 KiB
Go
package http
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"go-common/app/service/main/search/dao"
|
|
"go-common/app/service/main/search/model"
|
|
"go-common/library/ecode"
|
|
"go-common/library/log"
|
|
bm "go-common/library/net/http/blademaster"
|
|
)
|
|
|
|
// dmUpdate .
|
|
func dmUpdate(c *bm.Context) {
|
|
params := c.Request.Form
|
|
appid := params.Get("appid")
|
|
if appid == "" {
|
|
c.JSON(nil, ecode.RequestErr)
|
|
return
|
|
}
|
|
switch appid {
|
|
case "dm_search":
|
|
dmMediaUpdate(c)
|
|
default:
|
|
c.JSON(nil, ecode.RequestErr)
|
|
}
|
|
}
|
|
|
|
func dmMediaUpdate(c *bm.Context) {
|
|
var (
|
|
err error
|
|
bulkItem []dao.BulkMapItem
|
|
)
|
|
params := c.Request.Form
|
|
data := params.Get("data")
|
|
if data == "" {
|
|
return
|
|
}
|
|
var arr []map[string]interface{}
|
|
if err = json.Unmarshal([]byte(data), &arr); err != nil {
|
|
log.Error("json.Unmarshal error(%v)", err)
|
|
return
|
|
}
|
|
key := []string{"attr", "attr_format", "ctime", "mid", "mode", "msg", "mtime",
|
|
"pool", "progress", "state", "type", "oidstr"}
|
|
for _, v := range arr {
|
|
item := &model.DmUptParams{}
|
|
var (
|
|
ok bool
|
|
id float64
|
|
oid float64
|
|
)
|
|
if _, ok = v["id"]; !ok {
|
|
continue
|
|
}
|
|
if id, ok = v["id"].(float64); !ok {
|
|
continue
|
|
}
|
|
if _, ok = v["oid"]; !ok {
|
|
continue
|
|
}
|
|
if oid, ok = v["oid"].(float64); !ok {
|
|
continue
|
|
}
|
|
item.ID = int64(id)
|
|
item.Oid = int64(oid)
|
|
itemField := make(map[string]interface{})
|
|
for _, k := range key {
|
|
var it interface{}
|
|
if it, ok = v[k]; ok && v[k] != nil {
|
|
itemField[k] = it
|
|
}
|
|
}
|
|
item.Field = itemField
|
|
bulkItem = append(bulkItem, item)
|
|
}
|
|
if err = svr.UpdateMap(c, "dmExternal", bulkItem); err != nil {
|
|
log.Error("srv.Update erro(%v)", err)
|
|
}
|
|
c.JSON(nil, nil)
|
|
}
|