go-common/app/job/main/reply/dao/search/search.go
2019-04-22 18:49:16 +08:00

73 lines
1.7 KiB
Go

package search
import (
"context"
"encoding/json"
"fmt"
"net/url"
"go-common/app/job/main/reply/conf"
"go-common/library/ecode"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
const (
_appIDRecord = "reply_record"
_updateURL = "/x/internal/search/reply/update"
)
// Dao Dao
type Dao struct {
searchHTTPClient *bm.Client
searchUpdateURI string
}
// New New
func New(c *conf.Config) *Dao {
return &Dao{
searchHTTPClient: bm.NewClient(c.HTTPClient),
searchUpdateURI: c.Host.API + _updateURL,
}
}
// DelReply DelReply
func (dao *Dao) DelReply(c context.Context, rpid, oid, mid int64, state int8) (err error) {
return dao.update(c, rpid, oid, mid, state)
}
func (dao *Dao) update(c context.Context, rpid, oid, mid int64, state int8) (err error) {
type updateRecord struct {
ID int64 `json:"id"`
Oid int64 `json:"oid"`
Mid int64 `json:"mid"`
State int8 `json:"state"`
}
var (
res struct {
Code int `json:"code"`
Msg string `json:"message"`
}
)
records := make([]*updateRecord, 0)
record := &updateRecord{}
record.ID = rpid
record.Oid = oid
record.Mid = mid
record.State = state
records = append(records, record)
recordsStr, _ := json.Marshal(records)
params := url.Values{}
params.Set("appid", _appIDRecord)
params.Set("data", string(recordsStr))
if err = dao.searchHTTPClient.Post(c, dao.searchUpdateURI, "", params, &res); err != nil {
log.Error("bm.Post(%s) failed error(%v)", dao.searchUpdateURI+"?"+params.Encode(), err)
return
}
if res.Code != ecode.OK.Code() {
err = fmt.Errorf("update reply es records failed")
}
log.Info("updateSearch: %s post:%s ret:%v", dao.searchUpdateURI, params.Encode(), res)
return
}