You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.6 KiB
81 lines
1.6 KiB
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) |
|
}
|
|
|